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

#ifndef GOOGLE_PROTOBUF_INCLUDED_steamnetworkingsockets_5fmessages_5fudp_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_steamnetworkingsockets_5fmessages_5fudp_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>
#include "steamnetworkingsockets_messages_certs.pb.h"
#include "steamnetworkingsockets_messages.pb.h"
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_steamnetworkingsockets_5fmessages_5fudp_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_5fudp_2eproto {
  static const uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_steamnetworkingsockets_5fmessages_5fudp_2eproto;
class CMsgSteamSockets_UDP_ChallengeReply;
struct CMsgSteamSockets_UDP_ChallengeReplyDefaultTypeInternal;
extern CMsgSteamSockets_UDP_ChallengeReplyDefaultTypeInternal _CMsgSteamSockets_UDP_ChallengeReply_default_instance_;
class CMsgSteamSockets_UDP_ChallengeRequest;
struct CMsgSteamSockets_UDP_ChallengeRequestDefaultTypeInternal;
extern CMsgSteamSockets_UDP_ChallengeRequestDefaultTypeInternal _CMsgSteamSockets_UDP_ChallengeRequest_default_instance_;
class CMsgSteamSockets_UDP_ConnectOK;
struct CMsgSteamSockets_UDP_ConnectOKDefaultTypeInternal;
extern CMsgSteamSockets_UDP_ConnectOKDefaultTypeInternal _CMsgSteamSockets_UDP_ConnectOK_default_instance_;
class CMsgSteamSockets_UDP_ConnectRequest;
struct CMsgSteamSockets_UDP_ConnectRequestDefaultTypeInternal;
extern CMsgSteamSockets_UDP_ConnectRequestDefaultTypeInternal _CMsgSteamSockets_UDP_ConnectRequest_default_instance_;
class CMsgSteamSockets_UDP_ConnectionClosed;
struct CMsgSteamSockets_UDP_ConnectionClosedDefaultTypeInternal;
extern CMsgSteamSockets_UDP_ConnectionClosedDefaultTypeInternal _CMsgSteamSockets_UDP_ConnectionClosed_default_instance_;
class CMsgSteamSockets_UDP_NoConnection;
struct CMsgSteamSockets_UDP_NoConnectionDefaultTypeInternal;
extern CMsgSteamSockets_UDP_NoConnectionDefaultTypeInternal _CMsgSteamSockets_UDP_NoConnection_default_instance_;
class CMsgSteamSockets_UDP_Stats;
struct CMsgSteamSockets_UDP_StatsDefaultTypeInternal;
extern CMsgSteamSockets_UDP_StatsDefaultTypeInternal _CMsgSteamSockets_UDP_Stats_default_instance_;
PROTOBUF_NAMESPACE_OPEN
template<> ::CMsgSteamSockets_UDP_ChallengeReply* Arena::CreateMaybeMessage<::CMsgSteamSockets_UDP_ChallengeReply>(Arena*);
template<> ::CMsgSteamSockets_UDP_ChallengeRequest* Arena::CreateMaybeMessage<::CMsgSteamSockets_UDP_ChallengeRequest>(Arena*);
template<> ::CMsgSteamSockets_UDP_ConnectOK* Arena::CreateMaybeMessage<::CMsgSteamSockets_UDP_ConnectOK>(Arena*);
template<> ::CMsgSteamSockets_UDP_ConnectRequest* Arena::CreateMaybeMessage<::CMsgSteamSockets_UDP_ConnectRequest>(Arena*);
template<> ::CMsgSteamSockets_UDP_ConnectionClosed* Arena::CreateMaybeMessage<::CMsgSteamSockets_UDP_ConnectionClosed>(Arena*);
template<> ::CMsgSteamSockets_UDP_NoConnection* Arena::CreateMaybeMessage<::CMsgSteamSockets_UDP_NoConnection>(Arena*);
template<> ::CMsgSteamSockets_UDP_Stats* Arena::CreateMaybeMessage<::CMsgSteamSockets_UDP_Stats>(Arena*);
PROTOBUF_NAMESPACE_CLOSE

enum CMsgSteamSockets_UDP_Stats_Flags : int {
  CMsgSteamSockets_UDP_Stats_Flags_ACK_REQUEST_E2E = 2,
  CMsgSteamSockets_UDP_Stats_Flags_ACK_REQUEST_IMMEDIATE = 4,
  CMsgSteamSockets_UDP_Stats_Flags_NOT_PRIMARY_TRANSPORT_E2E = 16
};
bool CMsgSteamSockets_UDP_Stats_Flags_IsValid(int value);
constexpr CMsgSteamSockets_UDP_Stats_Flags CMsgSteamSockets_UDP_Stats_Flags_Flags_MIN = CMsgSteamSockets_UDP_Stats_Flags_ACK_REQUEST_E2E;
constexpr CMsgSteamSockets_UDP_Stats_Flags CMsgSteamSockets_UDP_Stats_Flags_Flags_MAX = CMsgSteamSockets_UDP_Stats_Flags_NOT_PRIMARY_TRANSPORT_E2E;
constexpr int CMsgSteamSockets_UDP_Stats_Flags_Flags_ARRAYSIZE = CMsgSteamSockets_UDP_Stats_Flags_Flags_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CMsgSteamSockets_UDP_Stats_Flags_descriptor();
template<typename T>
inline const std::string& CMsgSteamSockets_UDP_Stats_Flags_Name(T enum_t_value) {
  static_assert(::std::is_same<T, CMsgSteamSockets_UDP_Stats_Flags>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function CMsgSteamSockets_UDP_Stats_Flags_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    CMsgSteamSockets_UDP_Stats_Flags_descriptor(), enum_t_value);
}
inline bool CMsgSteamSockets_UDP_Stats_Flags_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, CMsgSteamSockets_UDP_Stats_Flags* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CMsgSteamSockets_UDP_Stats_Flags>(
    CMsgSteamSockets_UDP_Stats_Flags_descriptor(), name, value);
}
enum ESteamNetworkingUDPMsgID : int {
  k_ESteamNetworkingUDPMsg_ChallengeRequest = 32,
  k_ESteamNetworkingUDPMsg_ChallengeReply = 33,
  k_ESteamNetworkingUDPMsg_ConnectRequest = 34,
  k_ESteamNetworkingUDPMsg_ConnectOK = 35,
  k_ESteamNetworkingUDPMsg_ConnectionClosed = 36,
  k_ESteamNetworkingUDPMsg_NoConnection = 37
};
bool ESteamNetworkingUDPMsgID_IsValid(int value);
constexpr ESteamNetworkingUDPMsgID ESteamNetworkingUDPMsgID_MIN = k_ESteamNetworkingUDPMsg_ChallengeRequest;
constexpr ESteamNetworkingUDPMsgID ESteamNetworkingUDPMsgID_MAX = k_ESteamNetworkingUDPMsg_NoConnection;
constexpr int ESteamNetworkingUDPMsgID_ARRAYSIZE = ESteamNetworkingUDPMsgID_MAX + 1;

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

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

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

  inline CMsgSteamSockets_UDP_ChallengeRequest& operator=(const CMsgSteamSockets_UDP_ChallengeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamSockets_UDP_ChallengeRequest& operator=(CMsgSteamSockets_UDP_ChallengeRequest&& 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 CMsgSteamSockets_UDP_ChallengeRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamSockets_UDP_ChallengeRequest* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamSockets_UDP_ChallengeRequest*>(
               &_CMsgSteamSockets_UDP_ChallengeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(CMsgSteamSockets_UDP_ChallengeRequest& a, CMsgSteamSockets_UDP_ChallengeRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamSockets_UDP_ChallengeRequest* 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(CMsgSteamSockets_UDP_ChallengeRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamSockets_UDP_ChallengeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamSockets_UDP_ChallengeRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamSockets_UDP_ChallengeRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamSockets_UDP_ChallengeRequest& from) {
    CMsgSteamSockets_UDP_ChallengeRequest::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(CMsgSteamSockets_UDP_ChallengeRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamSockets_UDP_ChallengeRequest";
  }
  protected:
  explicit CMsgSteamSockets_UDP_ChallengeRequest(::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 {
    kConnectionIdFieldNumber = 1,
    kProtocolVersionFieldNumber = 4,
    kMyTimestampFieldNumber = 3,
  };
  // optional fixed32 connection_id = 1;
  bool has_connection_id() const;
  private:
  bool _internal_has_connection_id() const;
  public:
  void clear_connection_id();
  uint32_t connection_id() const;
  void set_connection_id(uint32_t value);
  private:
  uint32_t _internal_connection_id() const;
  void _internal_set_connection_id(uint32_t value);
  public:

  // optional uint32 protocol_version = 4;
  bool has_protocol_version() const;
  private:
  bool _internal_has_protocol_version() const;
  public:
  void clear_protocol_version();
  uint32_t protocol_version() const;
  void set_protocol_version(uint32_t value);
  private:
  uint32_t _internal_protocol_version() const;
  void _internal_set_protocol_version(uint32_t value);
  public:

  // optional fixed64 my_timestamp = 3;
  bool has_my_timestamp() const;
  private:
  bool _internal_has_my_timestamp() const;
  public:
  void clear_my_timestamp();
  uint64_t my_timestamp() const;
  void set_my_timestamp(uint64_t value);
  private:
  uint64_t _internal_my_timestamp() const;
  void _internal_set_my_timestamp(uint64_t value);
  public:

  // @@protoc_insertion_point(class_scope:CMsgSteamSockets_UDP_ChallengeRequest)
 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_;
    uint32_t connection_id_;
    uint32_t protocol_version_;
    uint64_t my_timestamp_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fudp_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline CMsgSteamSockets_UDP_ChallengeReply& operator=(const CMsgSteamSockets_UDP_ChallengeReply& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamSockets_UDP_ChallengeReply& operator=(CMsgSteamSockets_UDP_ChallengeReply&& 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 CMsgSteamSockets_UDP_ChallengeReply& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamSockets_UDP_ChallengeReply* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamSockets_UDP_ChallengeReply*>(
               &_CMsgSteamSockets_UDP_ChallengeReply_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(CMsgSteamSockets_UDP_ChallengeReply& a, CMsgSteamSockets_UDP_ChallengeReply& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamSockets_UDP_ChallengeReply* 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(CMsgSteamSockets_UDP_ChallengeReply* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamSockets_UDP_ChallengeReply* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamSockets_UDP_ChallengeReply>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamSockets_UDP_ChallengeReply& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamSockets_UDP_ChallengeReply& from) {
    CMsgSteamSockets_UDP_ChallengeReply::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(CMsgSteamSockets_UDP_ChallengeReply* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamSockets_UDP_ChallengeReply";
  }
  protected:
  explicit CMsgSteamSockets_UDP_ChallengeReply(::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 {
    kChallengeFieldNumber = 2,
    kConnectionIdFieldNumber = 1,
    kProtocolVersionFieldNumber = 4,
    kYourTimestampFieldNumber = 3,
  };
  // optional fixed64 challenge = 2;
  bool has_challenge() const;
  private:
  bool _internal_has_challenge() const;
  public:
  void clear_challenge();
  uint64_t challenge() const;
  void set_challenge(uint64_t value);
  private:
  uint64_t _internal_challenge() const;
  void _internal_set_challenge(uint64_t value);
  public:

  // optional fixed32 connection_id = 1;
  bool has_connection_id() const;
  private:
  bool _internal_has_connection_id() const;
  public:
  void clear_connection_id();
  uint32_t connection_id() const;
  void set_connection_id(uint32_t value);
  private:
  uint32_t _internal_connection_id() const;
  void _internal_set_connection_id(uint32_t value);
  public:

  // optional uint32 protocol_version = 4;
  bool has_protocol_version() const;
  private:
  bool _internal_has_protocol_version() const;
  public:
  void clear_protocol_version();
  uint32_t protocol_version() const;
  void set_protocol_version(uint32_t value);
  private:
  uint32_t _internal_protocol_version() const;
  void _internal_set_protocol_version(uint32_t value);
  public:

  // optional fixed64 your_timestamp = 3;
  bool has_your_timestamp() const;
  private:
  bool _internal_has_your_timestamp() const;
  public:
  void clear_your_timestamp();
  uint64_t your_timestamp() const;
  void set_your_timestamp(uint64_t value);
  private:
  uint64_t _internal_your_timestamp() const;
  void _internal_set_your_timestamp(uint64_t value);
  public:

  // @@protoc_insertion_point(class_scope:CMsgSteamSockets_UDP_ChallengeReply)
 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_;
    uint64_t challenge_;
    uint32_t connection_id_;
    uint32_t protocol_version_;
    uint64_t your_timestamp_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fudp_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline CMsgSteamSockets_UDP_ConnectRequest& operator=(const CMsgSteamSockets_UDP_ConnectRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamSockets_UDP_ConnectRequest& operator=(CMsgSteamSockets_UDP_ConnectRequest&& 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 CMsgSteamSockets_UDP_ConnectRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamSockets_UDP_ConnectRequest* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamSockets_UDP_ConnectRequest*>(
               &_CMsgSteamSockets_UDP_ConnectRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(CMsgSteamSockets_UDP_ConnectRequest& a, CMsgSteamSockets_UDP_ConnectRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamSockets_UDP_ConnectRequest* 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(CMsgSteamSockets_UDP_ConnectRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamSockets_UDP_ConnectRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamSockets_UDP_ConnectRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamSockets_UDP_ConnectRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamSockets_UDP_ConnectRequest& from) {
    CMsgSteamSockets_UDP_ConnectRequest::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(CMsgSteamSockets_UDP_ConnectRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamSockets_UDP_ConnectRequest";
  }
  protected:
  explicit CMsgSteamSockets_UDP_ConnectRequest(::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 {
    kIdentityStringFieldNumber = 10,
    kCertFieldNumber = 4,
    kCryptFieldNumber = 7,
    kLegacyIdentityBinaryFieldNumber = 9,
    kChallengeFieldNumber = 2,
    kLegacyClientSteamIdFieldNumber = 3,
    kClientConnectionIdFieldNumber = 1,
    kPingEstMsFieldNumber = 6,
    kMyTimestampFieldNumber = 5,
    kLegacyProtocolVersionFieldNumber = 8,
  };
  // optional string identity_string = 10;
  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 .CMsgSteamDatagramCertificateSigned cert = 4;
  bool has_cert() const;
  private:
  bool _internal_has_cert() const;
  public:
  void clear_cert();
  const ::CMsgSteamDatagramCertificateSigned& cert() const;
  PROTOBUF_NODISCARD ::CMsgSteamDatagramCertificateSigned* release_cert();
  ::CMsgSteamDatagramCertificateSigned* mutable_cert();
  void set_allocated_cert(::CMsgSteamDatagramCertificateSigned* cert);
  private:
  const ::CMsgSteamDatagramCertificateSigned& _internal_cert() const;
  ::CMsgSteamDatagramCertificateSigned* _internal_mutable_cert();
  public:
  void unsafe_arena_set_allocated_cert(
      ::CMsgSteamDatagramCertificateSigned* cert);
  ::CMsgSteamDatagramCertificateSigned* unsafe_arena_release_cert();

  // optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
  bool has_crypt() const;
  private:
  bool _internal_has_crypt() const;
  public:
  void clear_crypt();
  const ::CMsgSteamDatagramSessionCryptInfoSigned& crypt() const;
  PROTOBUF_NODISCARD ::CMsgSteamDatagramSessionCryptInfoSigned* release_crypt();
  ::CMsgSteamDatagramSessionCryptInfoSigned* mutable_crypt();
  void set_allocated_crypt(::CMsgSteamDatagramSessionCryptInfoSigned* crypt);
  private:
  const ::CMsgSteamDatagramSessionCryptInfoSigned& _internal_crypt() const;
  ::CMsgSteamDatagramSessionCryptInfoSigned* _internal_mutable_crypt();
  public:
  void unsafe_arena_set_allocated_crypt(
      ::CMsgSteamDatagramSessionCryptInfoSigned* crypt);
  ::CMsgSteamDatagramSessionCryptInfoSigned* unsafe_arena_release_crypt();

  // optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 9;
  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 challenge = 2;
  bool has_challenge() const;
  private:
  bool _internal_has_challenge() const;
  public:
  void clear_challenge();
  uint64_t challenge() const;
  void set_challenge(uint64_t value);
  private:
  uint64_t _internal_challenge() const;
  void _internal_set_challenge(uint64_t value);
  public:

  // optional fixed64 legacy_client_steam_id = 3;
  bool has_legacy_client_steam_id() const;
  private:
  bool _internal_has_legacy_client_steam_id() const;
  public:
  void clear_legacy_client_steam_id();
  uint64_t legacy_client_steam_id() const;
  void set_legacy_client_steam_id(uint64_t value);
  private:
  uint64_t _internal_legacy_client_steam_id() const;
  void _internal_set_legacy_client_steam_id(uint64_t value);
  public:

  // optional fixed32 client_connection_id = 1;
  bool has_client_connection_id() const;
  private:
  bool _internal_has_client_connection_id() const;
  public:
  void clear_client_connection_id();
  uint32_t client_connection_id() const;
  void set_client_connection_id(uint32_t value);
  private:
  uint32_t _internal_client_connection_id() const;
  void _internal_set_client_connection_id(uint32_t value);
  public:

  // optional uint32 ping_est_ms = 6;
  bool has_ping_est_ms() const;
  private:
  bool _internal_has_ping_est_ms() const;
  public:
  void clear_ping_est_ms();
  uint32_t ping_est_ms() const;
  void set_ping_est_ms(uint32_t value);
  private:
  uint32_t _internal_ping_est_ms() const;
  void _internal_set_ping_est_ms(uint32_t value);
  public:

  // optional fixed64 my_timestamp = 5;
  bool has_my_timestamp() const;
  private:
  bool _internal_has_my_timestamp() const;
  public:
  void clear_my_timestamp();
  uint64_t my_timestamp() const;
  void set_my_timestamp(uint64_t value);
  private:
  uint64_t _internal_my_timestamp() const;
  void _internal_set_my_timestamp(uint64_t value);
  public:

  // optional uint32 legacy_protocol_version = 8;
  bool has_legacy_protocol_version() const;
  private:
  bool _internal_has_legacy_protocol_version() const;
  public:
  void clear_legacy_protocol_version();
  uint32_t legacy_protocol_version() const;
  void set_legacy_protocol_version(uint32_t value);
  private:
  uint32_t _internal_legacy_protocol_version() const;
  void _internal_set_legacy_protocol_version(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:CMsgSteamSockets_UDP_ConnectRequest)
 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 identity_string_;
    ::CMsgSteamDatagramCertificateSigned* cert_;
    ::CMsgSteamDatagramSessionCryptInfoSigned* crypt_;
    ::CMsgSteamNetworkingIdentityLegacyBinary* legacy_identity_binary_;
    uint64_t challenge_;
    uint64_t legacy_client_steam_id_;
    uint32_t client_connection_id_;
    uint32_t ping_est_ms_;
    uint64_t my_timestamp_;
    uint32_t legacy_protocol_version_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fudp_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline CMsgSteamSockets_UDP_ConnectOK& operator=(const CMsgSteamSockets_UDP_ConnectOK& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamSockets_UDP_ConnectOK& operator=(CMsgSteamSockets_UDP_ConnectOK&& 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 CMsgSteamSockets_UDP_ConnectOK& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamSockets_UDP_ConnectOK* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamSockets_UDP_ConnectOK*>(
               &_CMsgSteamSockets_UDP_ConnectOK_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(CMsgSteamSockets_UDP_ConnectOK& a, CMsgSteamSockets_UDP_ConnectOK& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamSockets_UDP_ConnectOK* 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(CMsgSteamSockets_UDP_ConnectOK* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamSockets_UDP_ConnectOK* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamSockets_UDP_ConnectOK>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamSockets_UDP_ConnectOK& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamSockets_UDP_ConnectOK& from) {
    CMsgSteamSockets_UDP_ConnectOK::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(CMsgSteamSockets_UDP_ConnectOK* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamSockets_UDP_ConnectOK";
  }
  protected:
  explicit CMsgSteamSockets_UDP_ConnectOK(::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 {
    kIdentityStringFieldNumber = 11,
    kCryptFieldNumber = 7,
    kCertFieldNumber = 8,
    kLegacyIdentityBinaryFieldNumber = 10,
    kLegacyServerSteamIdFieldNumber = 2,
    kClientConnectionIdFieldNumber = 1,
    kDelayTimeUsecFieldNumber = 4,
    kYourTimestampFieldNumber = 3,
    kServerConnectionIdFieldNumber = 5,
  };
  // optional string identity_string = 11;
  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 .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
  bool has_crypt() const;
  private:
  bool _internal_has_crypt() const;
  public:
  void clear_crypt();
  const ::CMsgSteamDatagramSessionCryptInfoSigned& crypt() const;
  PROTOBUF_NODISCARD ::CMsgSteamDatagramSessionCryptInfoSigned* release_crypt();
  ::CMsgSteamDatagramSessionCryptInfoSigned* mutable_crypt();
  void set_allocated_crypt(::CMsgSteamDatagramSessionCryptInfoSigned* crypt);
  private:
  const ::CMsgSteamDatagramSessionCryptInfoSigned& _internal_crypt() const;
  ::CMsgSteamDatagramSessionCryptInfoSigned* _internal_mutable_crypt();
  public:
  void unsafe_arena_set_allocated_crypt(
      ::CMsgSteamDatagramSessionCryptInfoSigned* crypt);
  ::CMsgSteamDatagramSessionCryptInfoSigned* unsafe_arena_release_crypt();

  // optional .CMsgSteamDatagramCertificateSigned cert = 8;
  bool has_cert() const;
  private:
  bool _internal_has_cert() const;
  public:
  void clear_cert();
  const ::CMsgSteamDatagramCertificateSigned& cert() const;
  PROTOBUF_NODISCARD ::CMsgSteamDatagramCertificateSigned* release_cert();
  ::CMsgSteamDatagramCertificateSigned* mutable_cert();
  void set_allocated_cert(::CMsgSteamDatagramCertificateSigned* cert);
  private:
  const ::CMsgSteamDatagramCertificateSigned& _internal_cert() const;
  ::CMsgSteamDatagramCertificateSigned* _internal_mutable_cert();
  public:
  void unsafe_arena_set_allocated_cert(
      ::CMsgSteamDatagramCertificateSigned* cert);
  ::CMsgSteamDatagramCertificateSigned* unsafe_arena_release_cert();

  // optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 10;
  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_server_steam_id = 2;
  bool has_legacy_server_steam_id() const;
  private:
  bool _internal_has_legacy_server_steam_id() const;
  public:
  void clear_legacy_server_steam_id();
  uint64_t legacy_server_steam_id() const;
  void set_legacy_server_steam_id(uint64_t value);
  private:
  uint64_t _internal_legacy_server_steam_id() const;
  void _internal_set_legacy_server_steam_id(uint64_t value);
  public:

  // optional fixed32 client_connection_id = 1;
  bool has_client_connection_id() const;
  private:
  bool _internal_has_client_connection_id() const;
  public:
  void clear_client_connection_id();
  uint32_t client_connection_id() const;
  void set_client_connection_id(uint32_t value);
  private:
  uint32_t _internal_client_connection_id() const;
  void _internal_set_client_connection_id(uint32_t value);
  public:

  // optional uint32 delay_time_usec = 4;
  bool has_delay_time_usec() const;
  private:
  bool _internal_has_delay_time_usec() const;
  public:
  void clear_delay_time_usec();
  uint32_t delay_time_usec() const;
  void set_delay_time_usec(uint32_t value);
  private:
  uint32_t _internal_delay_time_usec() const;
  void _internal_set_delay_time_usec(uint32_t value);
  public:

  // optional fixed64 your_timestamp = 3;
  bool has_your_timestamp() const;
  private:
  bool _internal_has_your_timestamp() const;
  public:
  void clear_your_timestamp();
  uint64_t your_timestamp() const;
  void set_your_timestamp(uint64_t value);
  private:
  uint64_t _internal_your_timestamp() const;
  void _internal_set_your_timestamp(uint64_t value);
  public:

  // optional fixed32 server_connection_id = 5;
  bool has_server_connection_id() const;
  private:
  bool _internal_has_server_connection_id() const;
  public:
  void clear_server_connection_id();
  uint32_t server_connection_id() const;
  void set_server_connection_id(uint32_t value);
  private:
  uint32_t _internal_server_connection_id() const;
  void _internal_set_server_connection_id(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:CMsgSteamSockets_UDP_ConnectOK)
 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 identity_string_;
    ::CMsgSteamDatagramSessionCryptInfoSigned* crypt_;
    ::CMsgSteamDatagramCertificateSigned* cert_;
    ::CMsgSteamNetworkingIdentityLegacyBinary* legacy_identity_binary_;
    uint64_t legacy_server_steam_id_;
    uint32_t client_connection_id_;
    uint32_t delay_time_usec_;
    uint64_t your_timestamp_;
    uint32_t server_connection_id_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fudp_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline CMsgSteamSockets_UDP_ConnectionClosed& operator=(const CMsgSteamSockets_UDP_ConnectionClosed& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamSockets_UDP_ConnectionClosed& operator=(CMsgSteamSockets_UDP_ConnectionClosed&& 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 CMsgSteamSockets_UDP_ConnectionClosed& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamSockets_UDP_ConnectionClosed* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamSockets_UDP_ConnectionClosed*>(
               &_CMsgSteamSockets_UDP_ConnectionClosed_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(CMsgSteamSockets_UDP_ConnectionClosed& a, CMsgSteamSockets_UDP_ConnectionClosed& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamSockets_UDP_ConnectionClosed* 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(CMsgSteamSockets_UDP_ConnectionClosed* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamSockets_UDP_ConnectionClosed* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamSockets_UDP_ConnectionClosed>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamSockets_UDP_ConnectionClosed& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamSockets_UDP_ConnectionClosed& from) {
    CMsgSteamSockets_UDP_ConnectionClosed::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(CMsgSteamSockets_UDP_ConnectionClosed* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamSockets_UDP_ConnectionClosed";
  }
  protected:
  explicit CMsgSteamSockets_UDP_ConnectionClosed(::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 {
    kDebugFieldNumber = 2,
    kReasonCodeFieldNumber = 3,
    kToConnectionIdFieldNumber = 4,
    kFromConnectionIdFieldNumber = 5,
  };
  // optional string debug = 2;
  bool has_debug() const;
  private:
  bool _internal_has_debug() const;
  public:
  void clear_debug();
  const std::string& debug() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_debug(ArgT0&& arg0, ArgT... args);
  std::string* mutable_debug();
  PROTOBUF_NODISCARD std::string* release_debug();
  void set_allocated_debug(std::string* debug);
  private:
  const std::string& _internal_debug() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_debug(const std::string& value);
  std::string* _internal_mutable_debug();
  public:

  // optional uint32 reason_code = 3;
  bool has_reason_code() const;
  private:
  bool _internal_has_reason_code() const;
  public:
  void clear_reason_code();
  uint32_t reason_code() const;
  void set_reason_code(uint32_t value);
  private:
  uint32_t _internal_reason_code() const;
  void _internal_set_reason_code(uint32_t value);
  public:

  // optional fixed32 to_connection_id = 4;
  bool has_to_connection_id() const;
  private:
  bool _internal_has_to_connection_id() const;
  public:
  void clear_to_connection_id();
  uint32_t to_connection_id() const;
  void set_to_connection_id(uint32_t value);
  private:
  uint32_t _internal_to_connection_id() const;
  void _internal_set_to_connection_id(uint32_t value);
  public:

  // optional fixed32 from_connection_id = 5;
  bool has_from_connection_id() const;
  private:
  bool _internal_has_from_connection_id() const;
  public:
  void clear_from_connection_id();
  uint32_t from_connection_id() const;
  void set_from_connection_id(uint32_t value);
  private:
  uint32_t _internal_from_connection_id() const;
  void _internal_set_from_connection_id(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:CMsgSteamSockets_UDP_ConnectionClosed)
 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 debug_;
    uint32_t reason_code_;
    uint32_t to_connection_id_;
    uint32_t from_connection_id_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fudp_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline CMsgSteamSockets_UDP_NoConnection& operator=(const CMsgSteamSockets_UDP_NoConnection& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamSockets_UDP_NoConnection& operator=(CMsgSteamSockets_UDP_NoConnection&& 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 CMsgSteamSockets_UDP_NoConnection& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamSockets_UDP_NoConnection* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamSockets_UDP_NoConnection*>(
               &_CMsgSteamSockets_UDP_NoConnection_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(CMsgSteamSockets_UDP_NoConnection& a, CMsgSteamSockets_UDP_NoConnection& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamSockets_UDP_NoConnection* 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(CMsgSteamSockets_UDP_NoConnection* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamSockets_UDP_NoConnection* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamSockets_UDP_NoConnection>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamSockets_UDP_NoConnection& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamSockets_UDP_NoConnection& from) {
    CMsgSteamSockets_UDP_NoConnection::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(CMsgSteamSockets_UDP_NoConnection* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamSockets_UDP_NoConnection";
  }
  protected:
  explicit CMsgSteamSockets_UDP_NoConnection(::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 {
    kFromConnectionIdFieldNumber = 2,
    kToConnectionIdFieldNumber = 3,
  };
  // optional fixed32 from_connection_id = 2;
  bool has_from_connection_id() const;
  private:
  bool _internal_has_from_connection_id() const;
  public:
  void clear_from_connection_id();
  uint32_t from_connection_id() const;
  void set_from_connection_id(uint32_t value);
  private:
  uint32_t _internal_from_connection_id() const;
  void _internal_set_from_connection_id(uint32_t value);
  public:

  // optional fixed32 to_connection_id = 3;
  bool has_to_connection_id() const;
  private:
  bool _internal_has_to_connection_id() const;
  public:
  void clear_to_connection_id();
  uint32_t to_connection_id() const;
  void set_to_connection_id(uint32_t value);
  private:
  uint32_t _internal_to_connection_id() const;
  void _internal_set_to_connection_id(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:CMsgSteamSockets_UDP_NoConnection)
 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_;
    uint32_t from_connection_id_;
    uint32_t to_connection_id_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fudp_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline CMsgSteamSockets_UDP_Stats& operator=(const CMsgSteamSockets_UDP_Stats& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamSockets_UDP_Stats& operator=(CMsgSteamSockets_UDP_Stats&& 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 CMsgSteamSockets_UDP_Stats& default_instance() {
    return *internal_default_instance();
  }
  static inline const CMsgSteamSockets_UDP_Stats* internal_default_instance() {
    return reinterpret_cast<const CMsgSteamSockets_UDP_Stats*>(
               &_CMsgSteamSockets_UDP_Stats_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(CMsgSteamSockets_UDP_Stats& a, CMsgSteamSockets_UDP_Stats& b) {
    a.Swap(&b);
  }
  inline void Swap(CMsgSteamSockets_UDP_Stats* 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(CMsgSteamSockets_UDP_Stats* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CMsgSteamSockets_UDP_Stats* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CMsgSteamSockets_UDP_Stats>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CMsgSteamSockets_UDP_Stats& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const CMsgSteamSockets_UDP_Stats& from) {
    CMsgSteamSockets_UDP_Stats::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(CMsgSteamSockets_UDP_Stats* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CMsgSteamSockets_UDP_Stats";
  }
  protected:
  explicit CMsgSteamSockets_UDP_Stats(::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 CMsgSteamSockets_UDP_Stats_Flags Flags;
  static constexpr Flags ACK_REQUEST_E2E =
    CMsgSteamSockets_UDP_Stats_Flags_ACK_REQUEST_E2E;
  static constexpr Flags ACK_REQUEST_IMMEDIATE =
    CMsgSteamSockets_UDP_Stats_Flags_ACK_REQUEST_IMMEDIATE;
  static constexpr Flags NOT_PRIMARY_TRANSPORT_E2E =
    CMsgSteamSockets_UDP_Stats_Flags_NOT_PRIMARY_TRANSPORT_E2E;
  static inline bool Flags_IsValid(int value) {
    return CMsgSteamSockets_UDP_Stats_Flags_IsValid(value);
  }
  static constexpr Flags Flags_MIN =
    CMsgSteamSockets_UDP_Stats_Flags_Flags_MIN;
  static constexpr Flags Flags_MAX =
    CMsgSteamSockets_UDP_Stats_Flags_Flags_MAX;
  static constexpr int Flags_ARRAYSIZE =
    CMsgSteamSockets_UDP_Stats_Flags_Flags_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  Flags_descriptor() {
    return CMsgSteamSockets_UDP_Stats_Flags_descriptor();
  }
  template<typename T>
  static inline const std::string& Flags_Name(T enum_t_value) {
    static_assert(::std::is_same<T, Flags>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function Flags_Name.");
    return CMsgSteamSockets_UDP_Stats_Flags_Name(enum_t_value);
  }
  static inline bool Flags_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      Flags* value) {
    return CMsgSteamSockets_UDP_Stats_Flags_Parse(name, value);
  }

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

  enum : int {
    kStatsFieldNumber = 1,
    kFlagsFieldNumber = 3,
  };
  // optional .CMsgSteamDatagramConnectionQuality stats = 1;
  bool has_stats() const;
  private:
  bool _internal_has_stats() const;
  public:
  void clear_stats();
  const ::CMsgSteamDatagramConnectionQuality& stats() const;
  PROTOBUF_NODISCARD ::CMsgSteamDatagramConnectionQuality* release_stats();
  ::CMsgSteamDatagramConnectionQuality* mutable_stats();
  void set_allocated_stats(::CMsgSteamDatagramConnectionQuality* stats);
  private:
  const ::CMsgSteamDatagramConnectionQuality& _internal_stats() const;
  ::CMsgSteamDatagramConnectionQuality* _internal_mutable_stats();
  public:
  void unsafe_arena_set_allocated_stats(
      ::CMsgSteamDatagramConnectionQuality* stats);
  ::CMsgSteamDatagramConnectionQuality* unsafe_arena_release_stats();

  // optional uint32 flags = 3;
  bool has_flags() const;
  private:
  bool _internal_has_flags() const;
  public:
  void clear_flags();
  uint32_t flags() const;
  void set_flags(uint32_t value);
  private:
  uint32_t _internal_flags() const;
  void _internal_set_flags(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:CMsgSteamSockets_UDP_Stats)
 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_;
    ::CMsgSteamDatagramConnectionQuality* stats_;
    uint32_t flags_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_5fudp_2eproto;
};
// ===================================================================


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

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

// optional fixed32 connection_id = 1;
inline bool CMsgSteamSockets_UDP_ChallengeRequest::_internal_has_connection_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ChallengeRequest::has_connection_id() const {
  return _internal_has_connection_id();
}
inline void CMsgSteamSockets_UDP_ChallengeRequest::clear_connection_id() {
  _impl_.connection_id_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline uint32_t CMsgSteamSockets_UDP_ChallengeRequest::_internal_connection_id() const {
  return _impl_.connection_id_;
}
inline uint32_t CMsgSteamSockets_UDP_ChallengeRequest::connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ChallengeRequest.connection_id)
  return _internal_connection_id();
}
inline void CMsgSteamSockets_UDP_ChallengeRequest::_internal_set_connection_id(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.connection_id_ = value;
}
inline void CMsgSteamSockets_UDP_ChallengeRequest::set_connection_id(uint32_t value) {
  _internal_set_connection_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ChallengeRequest.connection_id)
}

// optional fixed64 my_timestamp = 3;
inline bool CMsgSteamSockets_UDP_ChallengeRequest::_internal_has_my_timestamp() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ChallengeRequest::has_my_timestamp() const {
  return _internal_has_my_timestamp();
}
inline void CMsgSteamSockets_UDP_ChallengeRequest::clear_my_timestamp() {
  _impl_.my_timestamp_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000004u;
}
inline uint64_t CMsgSteamSockets_UDP_ChallengeRequest::_internal_my_timestamp() const {
  return _impl_.my_timestamp_;
}
inline uint64_t CMsgSteamSockets_UDP_ChallengeRequest::my_timestamp() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ChallengeRequest.my_timestamp)
  return _internal_my_timestamp();
}
inline void CMsgSteamSockets_UDP_ChallengeRequest::_internal_set_my_timestamp(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000004u;
  _impl_.my_timestamp_ = value;
}
inline void CMsgSteamSockets_UDP_ChallengeRequest::set_my_timestamp(uint64_t value) {
  _internal_set_my_timestamp(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ChallengeRequest.my_timestamp)
}

// optional uint32 protocol_version = 4;
inline bool CMsgSteamSockets_UDP_ChallengeRequest::_internal_has_protocol_version() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ChallengeRequest::has_protocol_version() const {
  return _internal_has_protocol_version();
}
inline void CMsgSteamSockets_UDP_ChallengeRequest::clear_protocol_version() {
  _impl_.protocol_version_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline uint32_t CMsgSteamSockets_UDP_ChallengeRequest::_internal_protocol_version() const {
  return _impl_.protocol_version_;
}
inline uint32_t CMsgSteamSockets_UDP_ChallengeRequest::protocol_version() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ChallengeRequest.protocol_version)
  return _internal_protocol_version();
}
inline void CMsgSteamSockets_UDP_ChallengeRequest::_internal_set_protocol_version(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000002u;
  _impl_.protocol_version_ = value;
}
inline void CMsgSteamSockets_UDP_ChallengeRequest::set_protocol_version(uint32_t value) {
  _internal_set_protocol_version(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ChallengeRequest.protocol_version)
}

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

// CMsgSteamSockets_UDP_ChallengeReply

// optional fixed32 connection_id = 1;
inline bool CMsgSteamSockets_UDP_ChallengeReply::_internal_has_connection_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ChallengeReply::has_connection_id() const {
  return _internal_has_connection_id();
}
inline void CMsgSteamSockets_UDP_ChallengeReply::clear_connection_id() {
  _impl_.connection_id_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline uint32_t CMsgSteamSockets_UDP_ChallengeReply::_internal_connection_id() const {
  return _impl_.connection_id_;
}
inline uint32_t CMsgSteamSockets_UDP_ChallengeReply::connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ChallengeReply.connection_id)
  return _internal_connection_id();
}
inline void CMsgSteamSockets_UDP_ChallengeReply::_internal_set_connection_id(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000002u;
  _impl_.connection_id_ = value;
}
inline void CMsgSteamSockets_UDP_ChallengeReply::set_connection_id(uint32_t value) {
  _internal_set_connection_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ChallengeReply.connection_id)
}

// optional fixed64 challenge = 2;
inline bool CMsgSteamSockets_UDP_ChallengeReply::_internal_has_challenge() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ChallengeReply::has_challenge() const {
  return _internal_has_challenge();
}
inline void CMsgSteamSockets_UDP_ChallengeReply::clear_challenge() {
  _impl_.challenge_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline uint64_t CMsgSteamSockets_UDP_ChallengeReply::_internal_challenge() const {
  return _impl_.challenge_;
}
inline uint64_t CMsgSteamSockets_UDP_ChallengeReply::challenge() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ChallengeReply.challenge)
  return _internal_challenge();
}
inline void CMsgSteamSockets_UDP_ChallengeReply::_internal_set_challenge(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.challenge_ = value;
}
inline void CMsgSteamSockets_UDP_ChallengeReply::set_challenge(uint64_t value) {
  _internal_set_challenge(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ChallengeReply.challenge)
}

// optional fixed64 your_timestamp = 3;
inline bool CMsgSteamSockets_UDP_ChallengeReply::_internal_has_your_timestamp() const {
  bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ChallengeReply::has_your_timestamp() const {
  return _internal_has_your_timestamp();
}
inline void CMsgSteamSockets_UDP_ChallengeReply::clear_your_timestamp() {
  _impl_.your_timestamp_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000008u;
}
inline uint64_t CMsgSteamSockets_UDP_ChallengeReply::_internal_your_timestamp() const {
  return _impl_.your_timestamp_;
}
inline uint64_t CMsgSteamSockets_UDP_ChallengeReply::your_timestamp() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ChallengeReply.your_timestamp)
  return _internal_your_timestamp();
}
inline void CMsgSteamSockets_UDP_ChallengeReply::_internal_set_your_timestamp(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000008u;
  _impl_.your_timestamp_ = value;
}
inline void CMsgSteamSockets_UDP_ChallengeReply::set_your_timestamp(uint64_t value) {
  _internal_set_your_timestamp(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ChallengeReply.your_timestamp)
}

// optional uint32 protocol_version = 4;
inline bool CMsgSteamSockets_UDP_ChallengeReply::_internal_has_protocol_version() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ChallengeReply::has_protocol_version() const {
  return _internal_has_protocol_version();
}
inline void CMsgSteamSockets_UDP_ChallengeReply::clear_protocol_version() {
  _impl_.protocol_version_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000004u;
}
inline uint32_t CMsgSteamSockets_UDP_ChallengeReply::_internal_protocol_version() const {
  return _impl_.protocol_version_;
}
inline uint32_t CMsgSteamSockets_UDP_ChallengeReply::protocol_version() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ChallengeReply.protocol_version)
  return _internal_protocol_version();
}
inline void CMsgSteamSockets_UDP_ChallengeReply::_internal_set_protocol_version(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000004u;
  _impl_.protocol_version_ = value;
}
inline void CMsgSteamSockets_UDP_ChallengeReply::set_protocol_version(uint32_t value) {
  _internal_set_protocol_version(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ChallengeReply.protocol_version)
}

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

// CMsgSteamSockets_UDP_ConnectRequest

// optional fixed32 client_connection_id = 1;
inline bool CMsgSteamSockets_UDP_ConnectRequest::_internal_has_client_connection_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectRequest::has_client_connection_id() const {
  return _internal_has_client_connection_id();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::clear_client_connection_id() {
  _impl_.client_connection_id_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000040u;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectRequest::_internal_client_connection_id() const {
  return _impl_.client_connection_id_;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectRequest::client_connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectRequest.client_connection_id)
  return _internal_client_connection_id();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::_internal_set_client_connection_id(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000040u;
  _impl_.client_connection_id_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectRequest::set_client_connection_id(uint32_t value) {
  _internal_set_client_connection_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectRequest.client_connection_id)
}

// optional fixed64 challenge = 2;
inline bool CMsgSteamSockets_UDP_ConnectRequest::_internal_has_challenge() const {
  bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectRequest::has_challenge() const {
  return _internal_has_challenge();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::clear_challenge() {
  _impl_.challenge_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000010u;
}
inline uint64_t CMsgSteamSockets_UDP_ConnectRequest::_internal_challenge() const {
  return _impl_.challenge_;
}
inline uint64_t CMsgSteamSockets_UDP_ConnectRequest::challenge() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectRequest.challenge)
  return _internal_challenge();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::_internal_set_challenge(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000010u;
  _impl_.challenge_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectRequest::set_challenge(uint64_t value) {
  _internal_set_challenge(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectRequest.challenge)
}

// optional fixed64 my_timestamp = 5;
inline bool CMsgSteamSockets_UDP_ConnectRequest::_internal_has_my_timestamp() const {
  bool value = (_impl_._has_bits_[0] & 0x00000100u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectRequest::has_my_timestamp() const {
  return _internal_has_my_timestamp();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::clear_my_timestamp() {
  _impl_.my_timestamp_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000100u;
}
inline uint64_t CMsgSteamSockets_UDP_ConnectRequest::_internal_my_timestamp() const {
  return _impl_.my_timestamp_;
}
inline uint64_t CMsgSteamSockets_UDP_ConnectRequest::my_timestamp() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectRequest.my_timestamp)
  return _internal_my_timestamp();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::_internal_set_my_timestamp(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000100u;
  _impl_.my_timestamp_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectRequest::set_my_timestamp(uint64_t value) {
  _internal_set_my_timestamp(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectRequest.my_timestamp)
}

// optional uint32 ping_est_ms = 6;
inline bool CMsgSteamSockets_UDP_ConnectRequest::_internal_has_ping_est_ms() const {
  bool value = (_impl_._has_bits_[0] & 0x00000080u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectRequest::has_ping_est_ms() const {
  return _internal_has_ping_est_ms();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::clear_ping_est_ms() {
  _impl_.ping_est_ms_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000080u;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectRequest::_internal_ping_est_ms() const {
  return _impl_.ping_est_ms_;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectRequest::ping_est_ms() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectRequest.ping_est_ms)
  return _internal_ping_est_ms();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::_internal_set_ping_est_ms(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000080u;
  _impl_.ping_est_ms_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectRequest::set_ping_est_ms(uint32_t value) {
  _internal_set_ping_est_ms(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectRequest.ping_est_ms)
}

// optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
inline bool CMsgSteamSockets_UDP_ConnectRequest::_internal_has_crypt() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.crypt_ != nullptr);
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectRequest::has_crypt() const {
  return _internal_has_crypt();
}
inline const ::CMsgSteamDatagramSessionCryptInfoSigned& CMsgSteamSockets_UDP_ConnectRequest::_internal_crypt() const {
  const ::CMsgSteamDatagramSessionCryptInfoSigned* p = _impl_.crypt_;
  return p != nullptr ? *p : reinterpret_cast<const ::CMsgSteamDatagramSessionCryptInfoSigned&>(
      ::_CMsgSteamDatagramSessionCryptInfoSigned_default_instance_);
}
inline const ::CMsgSteamDatagramSessionCryptInfoSigned& CMsgSteamSockets_UDP_ConnectRequest::crypt() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectRequest.crypt)
  return _internal_crypt();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::unsafe_arena_set_allocated_crypt(
    ::CMsgSteamDatagramSessionCryptInfoSigned* crypt) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.crypt_);
  }
  _impl_.crypt_ = crypt;
  if (crypt) {
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamSockets_UDP_ConnectRequest.crypt)
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* CMsgSteamSockets_UDP_ConnectRequest::release_crypt() {
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::CMsgSteamDatagramSessionCryptInfoSigned* temp = _impl_.crypt_;
  _impl_.crypt_ = 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 ::CMsgSteamDatagramSessionCryptInfoSigned* CMsgSteamSockets_UDP_ConnectRequest::unsafe_arena_release_crypt() {
  // @@protoc_insertion_point(field_release:CMsgSteamSockets_UDP_ConnectRequest.crypt)
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::CMsgSteamDatagramSessionCryptInfoSigned* temp = _impl_.crypt_;
  _impl_.crypt_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* CMsgSteamSockets_UDP_ConnectRequest::_internal_mutable_crypt() {
  _impl_._has_bits_[0] |= 0x00000004u;
  if (_impl_.crypt_ == nullptr) {
    auto* p = CreateMaybeMessage<::CMsgSteamDatagramSessionCryptInfoSigned>(GetArenaForAllocation());
    _impl_.crypt_ = p;
  }
  return _impl_.crypt_;
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* CMsgSteamSockets_UDP_ConnectRequest::mutable_crypt() {
  ::CMsgSteamDatagramSessionCryptInfoSigned* _msg = _internal_mutable_crypt();
  // @@protoc_insertion_point(field_mutable:CMsgSteamSockets_UDP_ConnectRequest.crypt)
  return _msg;
}
inline void CMsgSteamSockets_UDP_ConnectRequest::set_allocated_crypt(::CMsgSteamDatagramSessionCryptInfoSigned* crypt) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.crypt_);
  }
  if (crypt) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(crypt));
    if (message_arena != submessage_arena) {
      crypt = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, crypt, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  _impl_.crypt_ = crypt;
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamSockets_UDP_ConnectRequest.crypt)
}

// optional .CMsgSteamDatagramCertificateSigned cert = 4;
inline bool CMsgSteamSockets_UDP_ConnectRequest::_internal_has_cert() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.cert_ != nullptr);
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectRequest::has_cert() const {
  return _internal_has_cert();
}
inline const ::CMsgSteamDatagramCertificateSigned& CMsgSteamSockets_UDP_ConnectRequest::_internal_cert() const {
  const ::CMsgSteamDatagramCertificateSigned* p = _impl_.cert_;
  return p != nullptr ? *p : reinterpret_cast<const ::CMsgSteamDatagramCertificateSigned&>(
      ::_CMsgSteamDatagramCertificateSigned_default_instance_);
}
inline const ::CMsgSteamDatagramCertificateSigned& CMsgSteamSockets_UDP_ConnectRequest::cert() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectRequest.cert)
  return _internal_cert();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::unsafe_arena_set_allocated_cert(
    ::CMsgSteamDatagramCertificateSigned* cert) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.cert_);
  }
  _impl_.cert_ = cert;
  if (cert) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamSockets_UDP_ConnectRequest.cert)
}
inline ::CMsgSteamDatagramCertificateSigned* CMsgSteamSockets_UDP_ConnectRequest::release_cert() {
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::CMsgSteamDatagramCertificateSigned* 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 ::CMsgSteamDatagramCertificateSigned* CMsgSteamSockets_UDP_ConnectRequest::unsafe_arena_release_cert() {
  // @@protoc_insertion_point(field_release:CMsgSteamSockets_UDP_ConnectRequest.cert)
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::CMsgSteamDatagramCertificateSigned* temp = _impl_.cert_;
  _impl_.cert_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramCertificateSigned* CMsgSteamSockets_UDP_ConnectRequest::_internal_mutable_cert() {
  _impl_._has_bits_[0] |= 0x00000002u;
  if (_impl_.cert_ == nullptr) {
    auto* p = CreateMaybeMessage<::CMsgSteamDatagramCertificateSigned>(GetArenaForAllocation());
    _impl_.cert_ = p;
  }
  return _impl_.cert_;
}
inline ::CMsgSteamDatagramCertificateSigned* CMsgSteamSockets_UDP_ConnectRequest::mutable_cert() {
  ::CMsgSteamDatagramCertificateSigned* _msg = _internal_mutable_cert();
  // @@protoc_insertion_point(field_mutable:CMsgSteamSockets_UDP_ConnectRequest.cert)
  return _msg;
}
inline void CMsgSteamSockets_UDP_ConnectRequest::set_allocated_cert(::CMsgSteamDatagramCertificateSigned* cert) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.cert_);
  }
  if (cert) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(cert));
    if (message_arena != submessage_arena) {
      cert = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cert, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.cert_ = cert;
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamSockets_UDP_ConnectRequest.cert)
}

// optional uint32 legacy_protocol_version = 8;
inline bool CMsgSteamSockets_UDP_ConnectRequest::_internal_has_legacy_protocol_version() const {
  bool value = (_impl_._has_bits_[0] & 0x00000200u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectRequest::has_legacy_protocol_version() const {
  return _internal_has_legacy_protocol_version();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::clear_legacy_protocol_version() {
  _impl_.legacy_protocol_version_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000200u;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectRequest::_internal_legacy_protocol_version() const {
  return _impl_.legacy_protocol_version_;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectRequest::legacy_protocol_version() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectRequest.legacy_protocol_version)
  return _internal_legacy_protocol_version();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::_internal_set_legacy_protocol_version(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000200u;
  _impl_.legacy_protocol_version_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectRequest::set_legacy_protocol_version(uint32_t value) {
  _internal_set_legacy_protocol_version(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectRequest.legacy_protocol_version)
}

// optional string identity_string = 10;
inline bool CMsgSteamSockets_UDP_ConnectRequest::_internal_has_identity_string() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectRequest::has_identity_string() const {
  return _internal_has_identity_string();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::clear_identity_string() {
  _impl_.identity_string_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const std::string& CMsgSteamSockets_UDP_ConnectRequest::identity_string() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectRequest.identity_string)
  return _internal_identity_string();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamSockets_UDP_ConnectRequest::set_identity_string(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000001u;
 _impl_.identity_string_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectRequest.identity_string)
}
inline std::string* CMsgSteamSockets_UDP_ConnectRequest::mutable_identity_string() {
  std::string* _s = _internal_mutable_identity_string();
  // @@protoc_insertion_point(field_mutable:CMsgSteamSockets_UDP_ConnectRequest.identity_string)
  return _s;
}
inline const std::string& CMsgSteamSockets_UDP_ConnectRequest::_internal_identity_string() const {
  return _impl_.identity_string_.Get();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::_internal_set_identity_string(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.identity_string_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamSockets_UDP_ConnectRequest::_internal_mutable_identity_string() {
  _impl_._has_bits_[0] |= 0x00000001u;
  return _impl_.identity_string_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamSockets_UDP_ConnectRequest::release_identity_string() {
  // @@protoc_insertion_point(field_release:CMsgSteamSockets_UDP_ConnectRequest.identity_string)
  if (!_internal_has_identity_string()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000001u;
  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 CMsgSteamSockets_UDP_ConnectRequest::set_allocated_identity_string(std::string* identity_string) {
  if (identity_string != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _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:CMsgSteamSockets_UDP_ConnectRequest.identity_string)
}

// optional fixed64 legacy_client_steam_id = 3;
inline bool CMsgSteamSockets_UDP_ConnectRequest::_internal_has_legacy_client_steam_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectRequest::has_legacy_client_steam_id() const {
  return _internal_has_legacy_client_steam_id();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::clear_legacy_client_steam_id() {
  _impl_.legacy_client_steam_id_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000020u;
}
inline uint64_t CMsgSteamSockets_UDP_ConnectRequest::_internal_legacy_client_steam_id() const {
  return _impl_.legacy_client_steam_id_;
}
inline uint64_t CMsgSteamSockets_UDP_ConnectRequest::legacy_client_steam_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectRequest.legacy_client_steam_id)
  return _internal_legacy_client_steam_id();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::_internal_set_legacy_client_steam_id(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000020u;
  _impl_.legacy_client_steam_id_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectRequest::set_legacy_client_steam_id(uint64_t value) {
  _internal_set_legacy_client_steam_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectRequest.legacy_client_steam_id)
}

// optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 9;
inline bool CMsgSteamSockets_UDP_ConnectRequest::_internal_has_legacy_identity_binary() const {
  bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.legacy_identity_binary_ != nullptr);
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectRequest::has_legacy_identity_binary() const {
  return _internal_has_legacy_identity_binary();
}
inline const ::CMsgSteamNetworkingIdentityLegacyBinary& CMsgSteamSockets_UDP_ConnectRequest::_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& CMsgSteamSockets_UDP_ConnectRequest::legacy_identity_binary() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectRequest.legacy_identity_binary)
  return _internal_legacy_identity_binary();
}
inline void CMsgSteamSockets_UDP_ConnectRequest::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] |= 0x00000008u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000008u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamSockets_UDP_ConnectRequest.legacy_identity_binary)
}
inline ::CMsgSteamNetworkingIdentityLegacyBinary* CMsgSteamSockets_UDP_ConnectRequest::release_legacy_identity_binary() {
  _impl_._has_bits_[0] &= ~0x00000008u;
  ::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* CMsgSteamSockets_UDP_ConnectRequest::unsafe_arena_release_legacy_identity_binary() {
  // @@protoc_insertion_point(field_release:CMsgSteamSockets_UDP_ConnectRequest.legacy_identity_binary)
  _impl_._has_bits_[0] &= ~0x00000008u;
  ::CMsgSteamNetworkingIdentityLegacyBinary* temp = _impl_.legacy_identity_binary_;
  _impl_.legacy_identity_binary_ = nullptr;
  return temp;
}
inline ::CMsgSteamNetworkingIdentityLegacyBinary* CMsgSteamSockets_UDP_ConnectRequest::_internal_mutable_legacy_identity_binary() {
  _impl_._has_bits_[0] |= 0x00000008u;
  if (_impl_.legacy_identity_binary_ == nullptr) {
    auto* p = CreateMaybeMessage<::CMsgSteamNetworkingIdentityLegacyBinary>(GetArenaForAllocation());
    _impl_.legacy_identity_binary_ = p;
  }
  return _impl_.legacy_identity_binary_;
}
inline ::CMsgSteamNetworkingIdentityLegacyBinary* CMsgSteamSockets_UDP_ConnectRequest::mutable_legacy_identity_binary() {
  ::CMsgSteamNetworkingIdentityLegacyBinary* _msg = _internal_mutable_legacy_identity_binary();
  // @@protoc_insertion_point(field_mutable:CMsgSteamSockets_UDP_ConnectRequest.legacy_identity_binary)
  return _msg;
}
inline void CMsgSteamSockets_UDP_ConnectRequest::set_allocated_legacy_identity_binary(::CMsgSteamNetworkingIdentityLegacyBinary* legacy_identity_binary) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.legacy_identity_binary_);
  }
  if (legacy_identity_binary) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(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] |= 0x00000008u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000008u;
  }
  _impl_.legacy_identity_binary_ = legacy_identity_binary;
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamSockets_UDP_ConnectRequest.legacy_identity_binary)
}

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

// CMsgSteamSockets_UDP_ConnectOK

// optional fixed32 client_connection_id = 1;
inline bool CMsgSteamSockets_UDP_ConnectOK::_internal_has_client_connection_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectOK::has_client_connection_id() const {
  return _internal_has_client_connection_id();
}
inline void CMsgSteamSockets_UDP_ConnectOK::clear_client_connection_id() {
  _impl_.client_connection_id_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000020u;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectOK::_internal_client_connection_id() const {
  return _impl_.client_connection_id_;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectOK::client_connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectOK.client_connection_id)
  return _internal_client_connection_id();
}
inline void CMsgSteamSockets_UDP_ConnectOK::_internal_set_client_connection_id(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000020u;
  _impl_.client_connection_id_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectOK::set_client_connection_id(uint32_t value) {
  _internal_set_client_connection_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectOK.client_connection_id)
}

// optional fixed32 server_connection_id = 5;
inline bool CMsgSteamSockets_UDP_ConnectOK::_internal_has_server_connection_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000100u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectOK::has_server_connection_id() const {
  return _internal_has_server_connection_id();
}
inline void CMsgSteamSockets_UDP_ConnectOK::clear_server_connection_id() {
  _impl_.server_connection_id_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000100u;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectOK::_internal_server_connection_id() const {
  return _impl_.server_connection_id_;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectOK::server_connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectOK.server_connection_id)
  return _internal_server_connection_id();
}
inline void CMsgSteamSockets_UDP_ConnectOK::_internal_set_server_connection_id(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000100u;
  _impl_.server_connection_id_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectOK::set_server_connection_id(uint32_t value) {
  _internal_set_server_connection_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectOK.server_connection_id)
}

// optional fixed64 your_timestamp = 3;
inline bool CMsgSteamSockets_UDP_ConnectOK::_internal_has_your_timestamp() const {
  bool value = (_impl_._has_bits_[0] & 0x00000080u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectOK::has_your_timestamp() const {
  return _internal_has_your_timestamp();
}
inline void CMsgSteamSockets_UDP_ConnectOK::clear_your_timestamp() {
  _impl_.your_timestamp_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000080u;
}
inline uint64_t CMsgSteamSockets_UDP_ConnectOK::_internal_your_timestamp() const {
  return _impl_.your_timestamp_;
}
inline uint64_t CMsgSteamSockets_UDP_ConnectOK::your_timestamp() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectOK.your_timestamp)
  return _internal_your_timestamp();
}
inline void CMsgSteamSockets_UDP_ConnectOK::_internal_set_your_timestamp(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000080u;
  _impl_.your_timestamp_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectOK::set_your_timestamp(uint64_t value) {
  _internal_set_your_timestamp(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectOK.your_timestamp)
}

// optional uint32 delay_time_usec = 4;
inline bool CMsgSteamSockets_UDP_ConnectOK::_internal_has_delay_time_usec() const {
  bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectOK::has_delay_time_usec() const {
  return _internal_has_delay_time_usec();
}
inline void CMsgSteamSockets_UDP_ConnectOK::clear_delay_time_usec() {
  _impl_.delay_time_usec_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000040u;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectOK::_internal_delay_time_usec() const {
  return _impl_.delay_time_usec_;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectOK::delay_time_usec() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectOK.delay_time_usec)
  return _internal_delay_time_usec();
}
inline void CMsgSteamSockets_UDP_ConnectOK::_internal_set_delay_time_usec(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000040u;
  _impl_.delay_time_usec_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectOK::set_delay_time_usec(uint32_t value) {
  _internal_set_delay_time_usec(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectOK.delay_time_usec)
}

// optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
inline bool CMsgSteamSockets_UDP_ConnectOK::_internal_has_crypt() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.crypt_ != nullptr);
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectOK::has_crypt() const {
  return _internal_has_crypt();
}
inline const ::CMsgSteamDatagramSessionCryptInfoSigned& CMsgSteamSockets_UDP_ConnectOK::_internal_crypt() const {
  const ::CMsgSteamDatagramSessionCryptInfoSigned* p = _impl_.crypt_;
  return p != nullptr ? *p : reinterpret_cast<const ::CMsgSteamDatagramSessionCryptInfoSigned&>(
      ::_CMsgSteamDatagramSessionCryptInfoSigned_default_instance_);
}
inline const ::CMsgSteamDatagramSessionCryptInfoSigned& CMsgSteamSockets_UDP_ConnectOK::crypt() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectOK.crypt)
  return _internal_crypt();
}
inline void CMsgSteamSockets_UDP_ConnectOK::unsafe_arena_set_allocated_crypt(
    ::CMsgSteamDatagramSessionCryptInfoSigned* crypt) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.crypt_);
  }
  _impl_.crypt_ = crypt;
  if (crypt) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamSockets_UDP_ConnectOK.crypt)
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* CMsgSteamSockets_UDP_ConnectOK::release_crypt() {
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::CMsgSteamDatagramSessionCryptInfoSigned* temp = _impl_.crypt_;
  _impl_.crypt_ = 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 ::CMsgSteamDatagramSessionCryptInfoSigned* CMsgSteamSockets_UDP_ConnectOK::unsafe_arena_release_crypt() {
  // @@protoc_insertion_point(field_release:CMsgSteamSockets_UDP_ConnectOK.crypt)
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::CMsgSteamDatagramSessionCryptInfoSigned* temp = _impl_.crypt_;
  _impl_.crypt_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* CMsgSteamSockets_UDP_ConnectOK::_internal_mutable_crypt() {
  _impl_._has_bits_[0] |= 0x00000002u;
  if (_impl_.crypt_ == nullptr) {
    auto* p = CreateMaybeMessage<::CMsgSteamDatagramSessionCryptInfoSigned>(GetArenaForAllocation());
    _impl_.crypt_ = p;
  }
  return _impl_.crypt_;
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* CMsgSteamSockets_UDP_ConnectOK::mutable_crypt() {
  ::CMsgSteamDatagramSessionCryptInfoSigned* _msg = _internal_mutable_crypt();
  // @@protoc_insertion_point(field_mutable:CMsgSteamSockets_UDP_ConnectOK.crypt)
  return _msg;
}
inline void CMsgSteamSockets_UDP_ConnectOK::set_allocated_crypt(::CMsgSteamDatagramSessionCryptInfoSigned* crypt) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.crypt_);
  }
  if (crypt) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(crypt));
    if (message_arena != submessage_arena) {
      crypt = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, crypt, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.crypt_ = crypt;
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamSockets_UDP_ConnectOK.crypt)
}

// optional .CMsgSteamDatagramCertificateSigned cert = 8;
inline bool CMsgSteamSockets_UDP_ConnectOK::_internal_has_cert() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.cert_ != nullptr);
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectOK::has_cert() const {
  return _internal_has_cert();
}
inline const ::CMsgSteamDatagramCertificateSigned& CMsgSteamSockets_UDP_ConnectOK::_internal_cert() const {
  const ::CMsgSteamDatagramCertificateSigned* p = _impl_.cert_;
  return p != nullptr ? *p : reinterpret_cast<const ::CMsgSteamDatagramCertificateSigned&>(
      ::_CMsgSteamDatagramCertificateSigned_default_instance_);
}
inline const ::CMsgSteamDatagramCertificateSigned& CMsgSteamSockets_UDP_ConnectOK::cert() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectOK.cert)
  return _internal_cert();
}
inline void CMsgSteamSockets_UDP_ConnectOK::unsafe_arena_set_allocated_cert(
    ::CMsgSteamDatagramCertificateSigned* cert) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.cert_);
  }
  _impl_.cert_ = cert;
  if (cert) {
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamSockets_UDP_ConnectOK.cert)
}
inline ::CMsgSteamDatagramCertificateSigned* CMsgSteamSockets_UDP_ConnectOK::release_cert() {
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::CMsgSteamDatagramCertificateSigned* 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 ::CMsgSteamDatagramCertificateSigned* CMsgSteamSockets_UDP_ConnectOK::unsafe_arena_release_cert() {
  // @@protoc_insertion_point(field_release:CMsgSteamSockets_UDP_ConnectOK.cert)
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::CMsgSteamDatagramCertificateSigned* temp = _impl_.cert_;
  _impl_.cert_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramCertificateSigned* CMsgSteamSockets_UDP_ConnectOK::_internal_mutable_cert() {
  _impl_._has_bits_[0] |= 0x00000004u;
  if (_impl_.cert_ == nullptr) {
    auto* p = CreateMaybeMessage<::CMsgSteamDatagramCertificateSigned>(GetArenaForAllocation());
    _impl_.cert_ = p;
  }
  return _impl_.cert_;
}
inline ::CMsgSteamDatagramCertificateSigned* CMsgSteamSockets_UDP_ConnectOK::mutable_cert() {
  ::CMsgSteamDatagramCertificateSigned* _msg = _internal_mutable_cert();
  // @@protoc_insertion_point(field_mutable:CMsgSteamSockets_UDP_ConnectOK.cert)
  return _msg;
}
inline void CMsgSteamSockets_UDP_ConnectOK::set_allocated_cert(::CMsgSteamDatagramCertificateSigned* cert) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.cert_);
  }
  if (cert) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(cert));
    if (message_arena != submessage_arena) {
      cert = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cert, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  _impl_.cert_ = cert;
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamSockets_UDP_ConnectOK.cert)
}

// optional string identity_string = 11;
inline bool CMsgSteamSockets_UDP_ConnectOK::_internal_has_identity_string() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectOK::has_identity_string() const {
  return _internal_has_identity_string();
}
inline void CMsgSteamSockets_UDP_ConnectOK::clear_identity_string() {
  _impl_.identity_string_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const std::string& CMsgSteamSockets_UDP_ConnectOK::identity_string() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectOK.identity_string)
  return _internal_identity_string();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamSockets_UDP_ConnectOK::set_identity_string(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000001u;
 _impl_.identity_string_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectOK.identity_string)
}
inline std::string* CMsgSteamSockets_UDP_ConnectOK::mutable_identity_string() {
  std::string* _s = _internal_mutable_identity_string();
  // @@protoc_insertion_point(field_mutable:CMsgSteamSockets_UDP_ConnectOK.identity_string)
  return _s;
}
inline const std::string& CMsgSteamSockets_UDP_ConnectOK::_internal_identity_string() const {
  return _impl_.identity_string_.Get();
}
inline void CMsgSteamSockets_UDP_ConnectOK::_internal_set_identity_string(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.identity_string_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamSockets_UDP_ConnectOK::_internal_mutable_identity_string() {
  _impl_._has_bits_[0] |= 0x00000001u;
  return _impl_.identity_string_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamSockets_UDP_ConnectOK::release_identity_string() {
  // @@protoc_insertion_point(field_release:CMsgSteamSockets_UDP_ConnectOK.identity_string)
  if (!_internal_has_identity_string()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000001u;
  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 CMsgSteamSockets_UDP_ConnectOK::set_allocated_identity_string(std::string* identity_string) {
  if (identity_string != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _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:CMsgSteamSockets_UDP_ConnectOK.identity_string)
}

// optional fixed64 legacy_server_steam_id = 2;
inline bool CMsgSteamSockets_UDP_ConnectOK::_internal_has_legacy_server_steam_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectOK::has_legacy_server_steam_id() const {
  return _internal_has_legacy_server_steam_id();
}
inline void CMsgSteamSockets_UDP_ConnectOK::clear_legacy_server_steam_id() {
  _impl_.legacy_server_steam_id_ = uint64_t{0u};
  _impl_._has_bits_[0] &= ~0x00000010u;
}
inline uint64_t CMsgSteamSockets_UDP_ConnectOK::_internal_legacy_server_steam_id() const {
  return _impl_.legacy_server_steam_id_;
}
inline uint64_t CMsgSteamSockets_UDP_ConnectOK::legacy_server_steam_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectOK.legacy_server_steam_id)
  return _internal_legacy_server_steam_id();
}
inline void CMsgSteamSockets_UDP_ConnectOK::_internal_set_legacy_server_steam_id(uint64_t value) {
  _impl_._has_bits_[0] |= 0x00000010u;
  _impl_.legacy_server_steam_id_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectOK::set_legacy_server_steam_id(uint64_t value) {
  _internal_set_legacy_server_steam_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectOK.legacy_server_steam_id)
}

// optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 10;
inline bool CMsgSteamSockets_UDP_ConnectOK::_internal_has_legacy_identity_binary() const {
  bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.legacy_identity_binary_ != nullptr);
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectOK::has_legacy_identity_binary() const {
  return _internal_has_legacy_identity_binary();
}
inline const ::CMsgSteamNetworkingIdentityLegacyBinary& CMsgSteamSockets_UDP_ConnectOK::_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& CMsgSteamSockets_UDP_ConnectOK::legacy_identity_binary() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectOK.legacy_identity_binary)
  return _internal_legacy_identity_binary();
}
inline void CMsgSteamSockets_UDP_ConnectOK::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] |= 0x00000008u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000008u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamSockets_UDP_ConnectOK.legacy_identity_binary)
}
inline ::CMsgSteamNetworkingIdentityLegacyBinary* CMsgSteamSockets_UDP_ConnectOK::release_legacy_identity_binary() {
  _impl_._has_bits_[0] &= ~0x00000008u;
  ::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* CMsgSteamSockets_UDP_ConnectOK::unsafe_arena_release_legacy_identity_binary() {
  // @@protoc_insertion_point(field_release:CMsgSteamSockets_UDP_ConnectOK.legacy_identity_binary)
  _impl_._has_bits_[0] &= ~0x00000008u;
  ::CMsgSteamNetworkingIdentityLegacyBinary* temp = _impl_.legacy_identity_binary_;
  _impl_.legacy_identity_binary_ = nullptr;
  return temp;
}
inline ::CMsgSteamNetworkingIdentityLegacyBinary* CMsgSteamSockets_UDP_ConnectOK::_internal_mutable_legacy_identity_binary() {
  _impl_._has_bits_[0] |= 0x00000008u;
  if (_impl_.legacy_identity_binary_ == nullptr) {
    auto* p = CreateMaybeMessage<::CMsgSteamNetworkingIdentityLegacyBinary>(GetArenaForAllocation());
    _impl_.legacy_identity_binary_ = p;
  }
  return _impl_.legacy_identity_binary_;
}
inline ::CMsgSteamNetworkingIdentityLegacyBinary* CMsgSteamSockets_UDP_ConnectOK::mutable_legacy_identity_binary() {
  ::CMsgSteamNetworkingIdentityLegacyBinary* _msg = _internal_mutable_legacy_identity_binary();
  // @@protoc_insertion_point(field_mutable:CMsgSteamSockets_UDP_ConnectOK.legacy_identity_binary)
  return _msg;
}
inline void CMsgSteamSockets_UDP_ConnectOK::set_allocated_legacy_identity_binary(::CMsgSteamNetworkingIdentityLegacyBinary* legacy_identity_binary) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.legacy_identity_binary_);
  }
  if (legacy_identity_binary) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(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] |= 0x00000008u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000008u;
  }
  _impl_.legacy_identity_binary_ = legacy_identity_binary;
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamSockets_UDP_ConnectOK.legacy_identity_binary)
}

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

// CMsgSteamSockets_UDP_ConnectionClosed

// optional fixed32 to_connection_id = 4;
inline bool CMsgSteamSockets_UDP_ConnectionClosed::_internal_has_to_connection_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectionClosed::has_to_connection_id() const {
  return _internal_has_to_connection_id();
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::clear_to_connection_id() {
  _impl_.to_connection_id_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000004u;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectionClosed::_internal_to_connection_id() const {
  return _impl_.to_connection_id_;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectionClosed::to_connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectionClosed.to_connection_id)
  return _internal_to_connection_id();
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::_internal_set_to_connection_id(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000004u;
  _impl_.to_connection_id_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::set_to_connection_id(uint32_t value) {
  _internal_set_to_connection_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectionClosed.to_connection_id)
}

// optional fixed32 from_connection_id = 5;
inline bool CMsgSteamSockets_UDP_ConnectionClosed::_internal_has_from_connection_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectionClosed::has_from_connection_id() const {
  return _internal_has_from_connection_id();
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::clear_from_connection_id() {
  _impl_.from_connection_id_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000008u;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectionClosed::_internal_from_connection_id() const {
  return _impl_.from_connection_id_;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectionClosed::from_connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectionClosed.from_connection_id)
  return _internal_from_connection_id();
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::_internal_set_from_connection_id(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000008u;
  _impl_.from_connection_id_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::set_from_connection_id(uint32_t value) {
  _internal_set_from_connection_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectionClosed.from_connection_id)
}

// optional string debug = 2;
inline bool CMsgSteamSockets_UDP_ConnectionClosed::_internal_has_debug() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectionClosed::has_debug() const {
  return _internal_has_debug();
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::clear_debug() {
  _impl_.debug_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const std::string& CMsgSteamSockets_UDP_ConnectionClosed::debug() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectionClosed.debug)
  return _internal_debug();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CMsgSteamSockets_UDP_ConnectionClosed::set_debug(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000001u;
 _impl_.debug_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectionClosed.debug)
}
inline std::string* CMsgSteamSockets_UDP_ConnectionClosed::mutable_debug() {
  std::string* _s = _internal_mutable_debug();
  // @@protoc_insertion_point(field_mutable:CMsgSteamSockets_UDP_ConnectionClosed.debug)
  return _s;
}
inline const std::string& CMsgSteamSockets_UDP_ConnectionClosed::_internal_debug() const {
  return _impl_.debug_.Get();
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::_internal_set_debug(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.debug_.Set(value, GetArenaForAllocation());
}
inline std::string* CMsgSteamSockets_UDP_ConnectionClosed::_internal_mutable_debug() {
  _impl_._has_bits_[0] |= 0x00000001u;
  return _impl_.debug_.Mutable(GetArenaForAllocation());
}
inline std::string* CMsgSteamSockets_UDP_ConnectionClosed::release_debug() {
  // @@protoc_insertion_point(field_release:CMsgSteamSockets_UDP_ConnectionClosed.debug)
  if (!_internal_has_debug()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000001u;
  auto* p = _impl_.debug_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.debug_.IsDefault()) {
    _impl_.debug_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::set_allocated_debug(std::string* debug) {
  if (debug != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.debug_.SetAllocated(debug, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.debug_.IsDefault()) {
    _impl_.debug_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamSockets_UDP_ConnectionClosed.debug)
}

// optional uint32 reason_code = 3;
inline bool CMsgSteamSockets_UDP_ConnectionClosed::_internal_has_reason_code() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_ConnectionClosed::has_reason_code() const {
  return _internal_has_reason_code();
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::clear_reason_code() {
  _impl_.reason_code_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectionClosed::_internal_reason_code() const {
  return _impl_.reason_code_;
}
inline uint32_t CMsgSteamSockets_UDP_ConnectionClosed::reason_code() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_ConnectionClosed.reason_code)
  return _internal_reason_code();
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::_internal_set_reason_code(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000002u;
  _impl_.reason_code_ = value;
}
inline void CMsgSteamSockets_UDP_ConnectionClosed::set_reason_code(uint32_t value) {
  _internal_set_reason_code(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_ConnectionClosed.reason_code)
}

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

// CMsgSteamSockets_UDP_NoConnection

// optional fixed32 from_connection_id = 2;
inline bool CMsgSteamSockets_UDP_NoConnection::_internal_has_from_connection_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_NoConnection::has_from_connection_id() const {
  return _internal_has_from_connection_id();
}
inline void CMsgSteamSockets_UDP_NoConnection::clear_from_connection_id() {
  _impl_.from_connection_id_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline uint32_t CMsgSteamSockets_UDP_NoConnection::_internal_from_connection_id() const {
  return _impl_.from_connection_id_;
}
inline uint32_t CMsgSteamSockets_UDP_NoConnection::from_connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_NoConnection.from_connection_id)
  return _internal_from_connection_id();
}
inline void CMsgSteamSockets_UDP_NoConnection::_internal_set_from_connection_id(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.from_connection_id_ = value;
}
inline void CMsgSteamSockets_UDP_NoConnection::set_from_connection_id(uint32_t value) {
  _internal_set_from_connection_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_NoConnection.from_connection_id)
}

// optional fixed32 to_connection_id = 3;
inline bool CMsgSteamSockets_UDP_NoConnection::_internal_has_to_connection_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_NoConnection::has_to_connection_id() const {
  return _internal_has_to_connection_id();
}
inline void CMsgSteamSockets_UDP_NoConnection::clear_to_connection_id() {
  _impl_.to_connection_id_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline uint32_t CMsgSteamSockets_UDP_NoConnection::_internal_to_connection_id() const {
  return _impl_.to_connection_id_;
}
inline uint32_t CMsgSteamSockets_UDP_NoConnection::to_connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_NoConnection.to_connection_id)
  return _internal_to_connection_id();
}
inline void CMsgSteamSockets_UDP_NoConnection::_internal_set_to_connection_id(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000002u;
  _impl_.to_connection_id_ = value;
}
inline void CMsgSteamSockets_UDP_NoConnection::set_to_connection_id(uint32_t value) {
  _internal_set_to_connection_id(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_NoConnection.to_connection_id)
}

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

// CMsgSteamSockets_UDP_Stats

// optional .CMsgSteamDatagramConnectionQuality stats = 1;
inline bool CMsgSteamSockets_UDP_Stats::_internal_has_stats() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.stats_ != nullptr);
  return value;
}
inline bool CMsgSteamSockets_UDP_Stats::has_stats() const {
  return _internal_has_stats();
}
inline const ::CMsgSteamDatagramConnectionQuality& CMsgSteamSockets_UDP_Stats::_internal_stats() const {
  const ::CMsgSteamDatagramConnectionQuality* p = _impl_.stats_;
  return p != nullptr ? *p : reinterpret_cast<const ::CMsgSteamDatagramConnectionQuality&>(
      ::_CMsgSteamDatagramConnectionQuality_default_instance_);
}
inline const ::CMsgSteamDatagramConnectionQuality& CMsgSteamSockets_UDP_Stats::stats() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_Stats.stats)
  return _internal_stats();
}
inline void CMsgSteamSockets_UDP_Stats::unsafe_arena_set_allocated_stats(
    ::CMsgSteamDatagramConnectionQuality* stats) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.stats_);
  }
  _impl_.stats_ = stats;
  if (stats) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamSockets_UDP_Stats.stats)
}
inline ::CMsgSteamDatagramConnectionQuality* CMsgSteamSockets_UDP_Stats::release_stats() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::CMsgSteamDatagramConnectionQuality* temp = _impl_.stats_;
  _impl_.stats_ = 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 ::CMsgSteamDatagramConnectionQuality* CMsgSteamSockets_UDP_Stats::unsafe_arena_release_stats() {
  // @@protoc_insertion_point(field_release:CMsgSteamSockets_UDP_Stats.stats)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::CMsgSteamDatagramConnectionQuality* temp = _impl_.stats_;
  _impl_.stats_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramConnectionQuality* CMsgSteamSockets_UDP_Stats::_internal_mutable_stats() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.stats_ == nullptr) {
    auto* p = CreateMaybeMessage<::CMsgSteamDatagramConnectionQuality>(GetArenaForAllocation());
    _impl_.stats_ = p;
  }
  return _impl_.stats_;
}
inline ::CMsgSteamDatagramConnectionQuality* CMsgSteamSockets_UDP_Stats::mutable_stats() {
  ::CMsgSteamDatagramConnectionQuality* _msg = _internal_mutable_stats();
  // @@protoc_insertion_point(field_mutable:CMsgSteamSockets_UDP_Stats.stats)
  return _msg;
}
inline void CMsgSteamSockets_UDP_Stats::set_allocated_stats(::CMsgSteamDatagramConnectionQuality* stats) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.stats_);
  }
  if (stats) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(stats));
    if (message_arena != submessage_arena) {
      stats = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, stats, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.stats_ = stats;
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamSockets_UDP_Stats.stats)
}

// optional uint32 flags = 3;
inline bool CMsgSteamSockets_UDP_Stats::_internal_has_flags() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool CMsgSteamSockets_UDP_Stats::has_flags() const {
  return _internal_has_flags();
}
inline void CMsgSteamSockets_UDP_Stats::clear_flags() {
  _impl_.flags_ = 0u;
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline uint32_t CMsgSteamSockets_UDP_Stats::_internal_flags() const {
  return _impl_.flags_;
}
inline uint32_t CMsgSteamSockets_UDP_Stats::flags() const {
  // @@protoc_insertion_point(field_get:CMsgSteamSockets_UDP_Stats.flags)
  return _internal_flags();
}
inline void CMsgSteamSockets_UDP_Stats::_internal_set_flags(uint32_t value) {
  _impl_._has_bits_[0] |= 0x00000002u;
  _impl_.flags_ = value;
}
inline void CMsgSteamSockets_UDP_Stats::set_flags(uint32_t value) {
  _internal_set_flags(value);
  // @@protoc_insertion_point(field_set:CMsgSteamSockets_UDP_Stats.flags)
}

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)


PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::CMsgSteamSockets_UDP_Stats_Flags> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::CMsgSteamSockets_UDP_Stats_Flags>() {
  return ::CMsgSteamSockets_UDP_Stats_Flags_descriptor();
}
template <> struct is_proto_enum< ::ESteamNetworkingUDPMsgID> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::ESteamNetworkingUDPMsgID>() {
  return ::ESteamNetworkingUDPMsgID_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

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