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

#ifndef PROTOBUF_account_5fservice_2eproto__INCLUDED
#define PROTOBUF_account_5fservice_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 2006000
#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 2006001 < GOOGLE_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/generated_message_util.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/unknown_field_set.h>
#include "account_types.pb.h"
#include "entity_types.pb.h"
#include "rpc_types.pb.h"
#include "ServiceBase.h"
#include "MessageBuffer.h"
#include <functional>
#include <type_traits>
// @@protoc_insertion_point(includes)

namespace bgs {
namespace protocol {
namespace account {
namespace v1 {

// Internal implementation detail -- do not call these.
void protobuf_AddDesc_account_5fservice_2eproto();
void protobuf_AssignDesc_account_5fservice_2eproto();
void protobuf_ShutdownFile_account_5fservice_2eproto();

class GetAccountRequest;
class GetAccountResponse;
class CreateGameAccountRequest;
class CreateGameAccountResponse;
class CacheExpireRequest;
class CredentialUpdateRequest;
class CredentialUpdateResponse;
class AccountFlagUpdateRequest;
class GameAccountFlagUpdateRequest;
class SubscriptionUpdateRequest;
class SubscriptionUpdateResponse;
class IsIgrAddressRequest;
class AccountServiceRegion;
class AccountServiceConfig;
class GetAccountStateRequest;
class GetAccountStateResponse;
class GetGameAccountStateRequest;
class GetGameAccountStateResponse;
class GetLicensesRequest;
class GetLicensesResponse;
class GetGameSessionInfoRequest;
class GetGameSessionInfoResponse;
class GetGameTimeRemainingInfoRequest;
class GetGameTimeRemainingInfoResponse;
class GetCAISInfoRequest;
class GetCAISInfoResponse;
class ForwardCacheExpireRequest;
class GetAuthorizedDataRequest;
class GetAuthorizedDataResponse;
class UpdateParentalControlsAndCAISRequest;
class QueueDeductRecordRequest;
class GetGameAccountRequest;
class GetGameAccountResponse;
class AccountStateNotification;
class GameAccountStateNotification;
class GameAccountNotification;
class GameAccountSessionNotification;

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

class GetAccountRequest : public ::google::protobuf::Message {
 public:
  GetAccountRequest();
  virtual ~GetAccountRequest();

  GetAccountRequest(const GetAccountRequest& from);

  inline GetAccountRequest& operator=(const GetAccountRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetAccountRequest& default_instance();

  void Swap(GetAccountRequest* other);

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

  GetAccountRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetAccountRequest& from);
  void MergeFrom(const GetAccountRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.AccountReference ref = 1;
  inline bool has_ref() const;
  inline void clear_ref();
  static const int kRefFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountReference& ref() const;
  inline ::bgs::protocol::account::v1::AccountReference* mutable_ref();
  inline ::bgs::protocol::account::v1::AccountReference* release_ref();
  inline void set_allocated_ref(::bgs::protocol::account::v1::AccountReference* ref);

  // optional bool reload = 2 [default = false];
  inline bool has_reload() const;
  inline void clear_reload();
  static const int kReloadFieldNumber = 2;
  inline bool reload() const;
  inline void set_reload(bool value);

  // optional bool fetch_all = 10 [default = false];
  inline bool has_fetch_all() const;
  inline void clear_fetch_all();
  static const int kFetchAllFieldNumber = 10;
  inline bool fetch_all() const;
  inline void set_fetch_all(bool value);

  // optional bool fetch_blob = 11 [default = false];
  inline bool has_fetch_blob() const;
  inline void clear_fetch_blob();
  static const int kFetchBlobFieldNumber = 11;
  inline bool fetch_blob() const;
  inline void set_fetch_blob(bool value);

  // optional bool fetch_id = 12 [default = false];
  inline bool has_fetch_id() const;
  inline void clear_fetch_id();
  static const int kFetchIdFieldNumber = 12;
  inline bool fetch_id() const;
  inline void set_fetch_id(bool value);

  // optional bool fetch_email = 13 [default = false];
  inline bool has_fetch_email() const;
  inline void clear_fetch_email();
  static const int kFetchEmailFieldNumber = 13;
  inline bool fetch_email() const;
  inline void set_fetch_email(bool value);

  // optional bool fetch_battle_tag = 14 [default = false];
  inline bool has_fetch_battle_tag() const;
  inline void clear_fetch_battle_tag();
  static const int kFetchBattleTagFieldNumber = 14;
  inline bool fetch_battle_tag() const;
  inline void set_fetch_battle_tag(bool value);

  // optional bool fetch_full_name = 15 [default = false];
  inline bool has_fetch_full_name() const;
  inline void clear_fetch_full_name();
  static const int kFetchFullNameFieldNumber = 15;
  inline bool fetch_full_name() const;
  inline void set_fetch_full_name(bool value);

  // optional bool fetch_links = 16 [default = false];
  inline bool has_fetch_links() const;
  inline void clear_fetch_links();
  static const int kFetchLinksFieldNumber = 16;
  inline bool fetch_links() const;
  inline void set_fetch_links(bool value);

  // optional bool fetch_parental_controls = 17 [default = false];
  inline bool has_fetch_parental_controls() const;
  inline void clear_fetch_parental_controls();
  static const int kFetchParentalControlsFieldNumber = 17;
  inline bool fetch_parental_controls() const;
  inline void set_fetch_parental_controls(bool value);

  // optional bool fetch_cais_id = 18 [default = false];
  inline bool has_fetch_cais_id() const;
  inline void clear_fetch_cais_id();
  static const int kFetchCaisIdFieldNumber = 18;
  inline bool fetch_cais_id() const;
  inline void set_fetch_cais_id(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetAccountRequest)
 private:
  inline void set_has_ref();
  inline void clear_has_ref();
  inline void set_has_reload();
  inline void clear_has_reload();
  inline void set_has_fetch_all();
  inline void clear_has_fetch_all();
  inline void set_has_fetch_blob();
  inline void clear_has_fetch_blob();
  inline void set_has_fetch_id();
  inline void clear_has_fetch_id();
  inline void set_has_fetch_email();
  inline void clear_has_fetch_email();
  inline void set_has_fetch_battle_tag();
  inline void clear_has_fetch_battle_tag();
  inline void set_has_fetch_full_name();
  inline void clear_has_fetch_full_name();
  inline void set_has_fetch_links();
  inline void clear_has_fetch_links();
  inline void set_has_fetch_parental_controls();
  inline void clear_has_fetch_parental_controls();
  inline void set_has_fetch_cais_id();
  inline void clear_has_fetch_cais_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountReference* ref_;
  bool reload_;
  bool fetch_all_;
  bool fetch_blob_;
  bool fetch_id_;
  bool fetch_email_;
  bool fetch_battle_tag_;
  bool fetch_full_name_;
  bool fetch_links_;
  bool fetch_parental_controls_;
  bool fetch_cais_id_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetAccountRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetAccountResponse : public ::google::protobuf::Message {
 public:
  GetAccountResponse();
  virtual ~GetAccountResponse();

  GetAccountResponse(const GetAccountResponse& from);

  inline GetAccountResponse& operator=(const GetAccountResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetAccountResponse& default_instance();

  void Swap(GetAccountResponse* other);

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

  GetAccountResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetAccountResponse& from);
  void MergeFrom(const GetAccountResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.AccountBlob blob = 11;
  inline bool has_blob() const;
  inline void clear_blob();
  static const int kBlobFieldNumber = 11;
  inline const ::bgs::protocol::account::v1::AccountBlob& blob() const;
  inline ::bgs::protocol::account::v1::AccountBlob* mutable_blob();
  inline ::bgs::protocol::account::v1::AccountBlob* release_blob();
  inline void set_allocated_blob(::bgs::protocol::account::v1::AccountBlob* blob);

  // optional .bgs.protocol.account.v1.AccountId id = 12;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 12;
  inline const ::bgs::protocol::account::v1::AccountId& id() const;
  inline ::bgs::protocol::account::v1::AccountId* mutable_id();
  inline ::bgs::protocol::account::v1::AccountId* release_id();
  inline void set_allocated_id(::bgs::protocol::account::v1::AccountId* id);

  // repeated string email = 13;
  inline int email_size() const;
  inline void clear_email();
  static const int kEmailFieldNumber = 13;
  inline const ::std::string& email(int index) const;
  inline ::std::string* mutable_email(int index);
  inline void set_email(int index, const ::std::string& value);
  inline void set_email(int index, const char* value);
  inline void set_email(int index, const char* value, size_t size);
  inline ::std::string* add_email();
  inline void add_email(const ::std::string& value);
  inline void add_email(const char* value);
  inline void add_email(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& email() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_email();

  // optional string battle_tag = 14;
  inline bool has_battle_tag() const;
  inline void clear_battle_tag();
  static const int kBattleTagFieldNumber = 14;
  inline const ::std::string& battle_tag() const;
  inline void set_battle_tag(const ::std::string& value);
  inline void set_battle_tag(const char* value);
  inline void set_battle_tag(const char* value, size_t size);
  inline ::std::string* mutable_battle_tag();
  inline ::std::string* release_battle_tag();
  inline void set_allocated_battle_tag(::std::string* battle_tag);

  // optional string full_name = 15;
  inline bool has_full_name() const;
  inline void clear_full_name();
  static const int kFullNameFieldNumber = 15;
  inline const ::std::string& full_name() const;
  inline void set_full_name(const ::std::string& value);
  inline void set_full_name(const char* value);
  inline void set_full_name(const char* value, size_t size);
  inline ::std::string* mutable_full_name();
  inline ::std::string* release_full_name();
  inline void set_allocated_full_name(::std::string* full_name);

  // repeated .bgs.protocol.account.v1.GameAccountLink links = 16;
  inline int links_size() const;
  inline void clear_links();
  static const int kLinksFieldNumber = 16;
  inline const ::bgs::protocol::account::v1::GameAccountLink& links(int index) const;
  inline ::bgs::protocol::account::v1::GameAccountLink* mutable_links(int index);
  inline ::bgs::protocol::account::v1::GameAccountLink* add_links();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountLink >&
      links() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountLink >*
      mutable_links();

  // optional .bgs.protocol.account.v1.ParentalControlInfo parental_control_info = 17;
  inline bool has_parental_control_info() const;
  inline void clear_parental_control_info();
  static const int kParentalControlInfoFieldNumber = 17;
  inline const ::bgs::protocol::account::v1::ParentalControlInfo& parental_control_info() const;
  inline ::bgs::protocol::account::v1::ParentalControlInfo* mutable_parental_control_info();
  inline ::bgs::protocol::account::v1::ParentalControlInfo* release_parental_control_info();
  inline void set_allocated_parental_control_info(::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info);

  // optional string cais_id = 18;
  inline bool has_cais_id() const;
  inline void clear_cais_id();
  static const int kCaisIdFieldNumber = 18;
  inline const ::std::string& cais_id() const;
  inline void set_cais_id(const ::std::string& value);
  inline void set_cais_id(const char* value);
  inline void set_cais_id(const char* value, size_t size);
  inline ::std::string* mutable_cais_id();
  inline ::std::string* release_cais_id();
  inline void set_allocated_cais_id(::std::string* cais_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetAccountResponse)
 private:
  inline void set_has_blob();
  inline void clear_has_blob();
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_battle_tag();
  inline void clear_has_battle_tag();
  inline void set_has_full_name();
  inline void clear_has_full_name();
  inline void set_has_parental_control_info();
  inline void clear_has_parental_control_info();
  inline void set_has_cais_id();
  inline void clear_has_cais_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountBlob* blob_;
  ::bgs::protocol::account::v1::AccountId* id_;
  ::google::protobuf::RepeatedPtrField< ::std::string> email_;
  ::std::string* battle_tag_;
  ::std::string* full_name_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountLink > links_;
  ::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info_;
  ::std::string* cais_id_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetAccountResponse* default_instance_;
};
// -------------------------------------------------------------------

class CreateGameAccountRequest : public ::google::protobuf::Message {
 public:
  CreateGameAccountRequest();
  virtual ~CreateGameAccountRequest();

  CreateGameAccountRequest(const CreateGameAccountRequest& from);

  inline CreateGameAccountRequest& operator=(const CreateGameAccountRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const CreateGameAccountRequest& default_instance();

  void Swap(CreateGameAccountRequest* other);

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

  CreateGameAccountRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const CreateGameAccountRequest& from);
  void MergeFrom(const CreateGameAccountRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.AccountId account = 1;
  inline bool has_account() const;
  inline void clear_account();
  static const int kAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountId& account() const;
  inline ::bgs::protocol::account::v1::AccountId* mutable_account();
  inline ::bgs::protocol::account::v1::AccountId* release_account();
  inline void set_allocated_account(::bgs::protocol::account::v1::AccountId* account);

  // optional uint32 region = 2;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 2;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // optional fixed32 program = 3;
  inline bool has_program() const;
  inline void clear_program();
  static const int kProgramFieldNumber = 3;
  inline ::google::protobuf::uint32 program() const;
  inline void set_program(::google::protobuf::uint32 value);

  // optional uint32 realm_permissions = 4 [default = 0];
  inline bool has_realm_permissions() const;
  inline void clear_realm_permissions();
  static const int kRealmPermissionsFieldNumber = 4;
  inline ::google::protobuf::uint32 realm_permissions() const;
  inline void set_realm_permissions(::google::protobuf::uint32 value);

  // optional uint32 account_region = 5;
  inline bool has_account_region() const;
  inline void clear_account_region();
  static const int kAccountRegionFieldNumber = 5;
  inline ::google::protobuf::uint32 account_region() const;
  inline void set_account_region(::google::protobuf::uint32 value);

  // optional fixed32 platform = 6;
  inline bool has_platform() const;
  inline void clear_platform();
  static const int kPlatformFieldNumber = 6;
  inline ::google::protobuf::uint32 platform() const;
  inline void set_platform(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.CreateGameAccountRequest)
 private:
  inline void set_has_account();
  inline void clear_has_account();
  inline void set_has_region();
  inline void clear_has_region();
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_realm_permissions();
  inline void clear_has_realm_permissions();
  inline void set_has_account_region();
  inline void clear_has_account_region();
  inline void set_has_platform();
  inline void clear_has_platform();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountId* account_;
  ::google::protobuf::uint32 region_;
  ::google::protobuf::uint32 program_;
  ::google::protobuf::uint32 realm_permissions_;
  ::google::protobuf::uint32 account_region_;
  ::google::protobuf::uint32 platform_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static CreateGameAccountRequest* default_instance_;
};
// -------------------------------------------------------------------

class CreateGameAccountResponse : public ::google::protobuf::Message {
 public:
  CreateGameAccountResponse();
  virtual ~CreateGameAccountResponse();

  CreateGameAccountResponse(const CreateGameAccountResponse& from);

  inline CreateGameAccountResponse& operator=(const CreateGameAccountResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const CreateGameAccountResponse& default_instance();

  void Swap(CreateGameAccountResponse* other);

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

  CreateGameAccountResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const CreateGameAccountResponse& from);
  void MergeFrom(const CreateGameAccountResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
  inline bool has_game_account() const;
  inline void clear_game_account();
  static const int kGameAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& game_account() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_game_account();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_game_account();
  inline void set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.CreateGameAccountResponse)
 private:
  inline void set_has_game_account();
  inline void clear_has_game_account();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountHandle* game_account_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static CreateGameAccountResponse* default_instance_;
};
// -------------------------------------------------------------------

class CacheExpireRequest : public ::google::protobuf::Message {
 public:
  CacheExpireRequest();
  virtual ~CacheExpireRequest();

  CacheExpireRequest(const CacheExpireRequest& from);

  inline CacheExpireRequest& operator=(const CacheExpireRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const CacheExpireRequest& default_instance();

  void Swap(CacheExpireRequest* other);

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

  CacheExpireRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const CacheExpireRequest& from);
  void MergeFrom(const CacheExpireRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // repeated .bgs.protocol.account.v1.AccountId account = 1;
  inline int account_size() const;
  inline void clear_account();
  static const int kAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountId& account(int index) const;
  inline ::bgs::protocol::account::v1::AccountId* mutable_account(int index);
  inline ::bgs::protocol::account::v1::AccountId* add_account();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountId >&
      account() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountId >*
      mutable_account();

  // repeated .bgs.protocol.account.v1.GameAccountHandle game_account = 2;
  inline int game_account_size() const;
  inline void clear_game_account();
  static const int kGameAccountFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& game_account(int index) const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_game_account(int index);
  inline ::bgs::protocol::account::v1::GameAccountHandle* add_game_account();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountHandle >&
      game_account() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountHandle >*
      mutable_game_account();

  // repeated string email = 3;
  inline int email_size() const;
  inline void clear_email();
  static const int kEmailFieldNumber = 3;
  inline const ::std::string& email(int index) const;
  inline ::std::string* mutable_email(int index);
  inline void set_email(int index, const ::std::string& value);
  inline void set_email(int index, const char* value);
  inline void set_email(int index, const char* value, size_t size);
  inline ::std::string* add_email();
  inline void add_email(const ::std::string& value);
  inline void add_email(const char* value);
  inline void add_email(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& email() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_email();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.CacheExpireRequest)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountId > account_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountHandle > game_account_;
  ::google::protobuf::RepeatedPtrField< ::std::string> email_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static CacheExpireRequest* default_instance_;
};
// -------------------------------------------------------------------

class CredentialUpdateRequest : public ::google::protobuf::Message {
 public:
  CredentialUpdateRequest();
  virtual ~CredentialUpdateRequest();

  CredentialUpdateRequest(const CredentialUpdateRequest& from);

  inline CredentialUpdateRequest& operator=(const CredentialUpdateRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const CredentialUpdateRequest& default_instance();

  void Swap(CredentialUpdateRequest* other);

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

  CredentialUpdateRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const CredentialUpdateRequest& from);
  void MergeFrom(const CredentialUpdateRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required .bgs.protocol.account.v1.AccountId account = 1;
  inline bool has_account() const;
  inline void clear_account();
  static const int kAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountId& account() const;
  inline ::bgs::protocol::account::v1::AccountId* mutable_account();
  inline ::bgs::protocol::account::v1::AccountId* release_account();
  inline void set_allocated_account(::bgs::protocol::account::v1::AccountId* account);

  // repeated .bgs.protocol.account.v1.AccountCredential old_credentials = 2;
  inline int old_credentials_size() const;
  inline void clear_old_credentials();
  static const int kOldCredentialsFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::AccountCredential& old_credentials(int index) const;
  inline ::bgs::protocol::account::v1::AccountCredential* mutable_old_credentials(int index);
  inline ::bgs::protocol::account::v1::AccountCredential* add_old_credentials();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >&
      old_credentials() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >*
      mutable_old_credentials();

  // repeated .bgs.protocol.account.v1.AccountCredential new_credentials = 3;
  inline int new_credentials_size() const;
  inline void clear_new_credentials();
  static const int kNewCredentialsFieldNumber = 3;
  inline const ::bgs::protocol::account::v1::AccountCredential& new_credentials(int index) const;
  inline ::bgs::protocol::account::v1::AccountCredential* mutable_new_credentials(int index);
  inline ::bgs::protocol::account::v1::AccountCredential* add_new_credentials();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >&
      new_credentials() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >*
      mutable_new_credentials();

  // optional uint32 region = 4;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 4;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.CredentialUpdateRequest)
 private:
  inline void set_has_account();
  inline void clear_has_account();
  inline void set_has_region();
  inline void clear_has_region();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountId* account_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential > old_credentials_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential > new_credentials_;
  ::google::protobuf::uint32 region_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static CredentialUpdateRequest* default_instance_;
};
// -------------------------------------------------------------------

class CredentialUpdateResponse : public ::google::protobuf::Message {
 public:
  CredentialUpdateResponse();
  virtual ~CredentialUpdateResponse();

  CredentialUpdateResponse(const CredentialUpdateResponse& from);

  inline CredentialUpdateResponse& operator=(const CredentialUpdateResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const CredentialUpdateResponse& default_instance();

  void Swap(CredentialUpdateResponse* other);

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

  CredentialUpdateResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const CredentialUpdateResponse& from);
  void MergeFrom(const CredentialUpdateResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.CredentialUpdateResponse)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static CredentialUpdateResponse* default_instance_;
};
// -------------------------------------------------------------------

class AccountFlagUpdateRequest : public ::google::protobuf::Message {
 public:
  AccountFlagUpdateRequest();
  virtual ~AccountFlagUpdateRequest();

  AccountFlagUpdateRequest(const AccountFlagUpdateRequest& from);

  inline AccountFlagUpdateRequest& operator=(const AccountFlagUpdateRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountFlagUpdateRequest& default_instance();

  void Swap(AccountFlagUpdateRequest* other);

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

  AccountFlagUpdateRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountFlagUpdateRequest& from);
  void MergeFrom(const AccountFlagUpdateRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.AccountId account = 1;
  inline bool has_account() const;
  inline void clear_account();
  static const int kAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountId& account() const;
  inline ::bgs::protocol::account::v1::AccountId* mutable_account();
  inline ::bgs::protocol::account::v1::AccountId* release_account();
  inline void set_allocated_account(::bgs::protocol::account::v1::AccountId* account);

  // optional uint32 region = 2;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 2;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // optional uint64 flag = 3;
  inline bool has_flag() const;
  inline void clear_flag();
  static const int kFlagFieldNumber = 3;
  inline ::google::protobuf::uint64 flag() const;
  inline void set_flag(::google::protobuf::uint64 value);

  // optional bool active = 4;
  inline bool has_active() const;
  inline void clear_active();
  static const int kActiveFieldNumber = 4;
  inline bool active() const;
  inline void set_active(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountFlagUpdateRequest)
 private:
  inline void set_has_account();
  inline void clear_has_account();
  inline void set_has_region();
  inline void clear_has_region();
  inline void set_has_flag();
  inline void clear_has_flag();
  inline void set_has_active();
  inline void clear_has_active();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountId* account_;
  ::google::protobuf::uint64 flag_;
  ::google::protobuf::uint32 region_;
  bool active_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static AccountFlagUpdateRequest* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountFlagUpdateRequest : public ::google::protobuf::Message {
 public:
  GameAccountFlagUpdateRequest();
  virtual ~GameAccountFlagUpdateRequest();

  GameAccountFlagUpdateRequest(const GameAccountFlagUpdateRequest& from);

  inline GameAccountFlagUpdateRequest& operator=(const GameAccountFlagUpdateRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountFlagUpdateRequest& default_instance();

  void Swap(GameAccountFlagUpdateRequest* other);

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

  GameAccountFlagUpdateRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountFlagUpdateRequest& from);
  void MergeFrom(const GameAccountFlagUpdateRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
  inline bool has_game_account() const;
  inline void clear_game_account();
  static const int kGameAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& game_account() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_game_account();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_game_account();
  inline void set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account);

  // optional uint64 flag = 2;
  inline bool has_flag() const;
  inline void clear_flag();
  static const int kFlagFieldNumber = 2;
  inline ::google::protobuf::uint64 flag() const;
  inline void set_flag(::google::protobuf::uint64 value);

  // optional bool active = 3;
  inline bool has_active() const;
  inline void clear_active();
  static const int kActiveFieldNumber = 3;
  inline bool active() const;
  inline void set_active(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountFlagUpdateRequest)
 private:
  inline void set_has_game_account();
  inline void clear_has_game_account();
  inline void set_has_flag();
  inline void clear_has_flag();
  inline void set_has_active();
  inline void clear_has_active();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountHandle* game_account_;
  ::google::protobuf::uint64 flag_;
  bool active_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GameAccountFlagUpdateRequest* default_instance_;
};
// -------------------------------------------------------------------

class SubscriptionUpdateRequest : public ::google::protobuf::Message {
 public:
  SubscriptionUpdateRequest();
  virtual ~SubscriptionUpdateRequest();

  SubscriptionUpdateRequest(const SubscriptionUpdateRequest& from);

  inline SubscriptionUpdateRequest& operator=(const SubscriptionUpdateRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const SubscriptionUpdateRequest& default_instance();

  void Swap(SubscriptionUpdateRequest* other);

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

  SubscriptionUpdateRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SubscriptionUpdateRequest& from);
  void MergeFrom(const SubscriptionUpdateRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // repeated .bgs.protocol.account.v1.SubscriberReference ref = 2;
  inline int ref_size() const;
  inline void clear_ref();
  static const int kRefFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::SubscriberReference& ref(int index) const;
  inline ::bgs::protocol::account::v1::SubscriberReference* mutable_ref(int index);
  inline ::bgs::protocol::account::v1::SubscriberReference* add_ref();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::SubscriberReference >&
      ref() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::SubscriberReference >*
      mutable_ref();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.SubscriptionUpdateRequest)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::SubscriberReference > ref_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static SubscriptionUpdateRequest* default_instance_;
};
// -------------------------------------------------------------------

class SubscriptionUpdateResponse : public ::google::protobuf::Message {
 public:
  SubscriptionUpdateResponse();
  virtual ~SubscriptionUpdateResponse();

  SubscriptionUpdateResponse(const SubscriptionUpdateResponse& from);

  inline SubscriptionUpdateResponse& operator=(const SubscriptionUpdateResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const SubscriptionUpdateResponse& default_instance();

  void Swap(SubscriptionUpdateResponse* other);

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

  SubscriptionUpdateResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SubscriptionUpdateResponse& from);
  void MergeFrom(const SubscriptionUpdateResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // repeated .bgs.protocol.account.v1.SubscriberReference ref = 1;
  inline int ref_size() const;
  inline void clear_ref();
  static const int kRefFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::SubscriberReference& ref(int index) const;
  inline ::bgs::protocol::account::v1::SubscriberReference* mutable_ref(int index);
  inline ::bgs::protocol::account::v1::SubscriberReference* add_ref();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::SubscriberReference >&
      ref() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::SubscriberReference >*
      mutable_ref();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.SubscriptionUpdateResponse)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::SubscriberReference > ref_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static SubscriptionUpdateResponse* default_instance_;
};
// -------------------------------------------------------------------

class IsIgrAddressRequest : public ::google::protobuf::Message {
 public:
  IsIgrAddressRequest();
  virtual ~IsIgrAddressRequest();

  IsIgrAddressRequest(const IsIgrAddressRequest& from);

  inline IsIgrAddressRequest& operator=(const IsIgrAddressRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const IsIgrAddressRequest& default_instance();

  void Swap(IsIgrAddressRequest* other);

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

  IsIgrAddressRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const IsIgrAddressRequest& from);
  void MergeFrom(const IsIgrAddressRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional string client_address = 1;
  inline bool has_client_address() const;
  inline void clear_client_address();
  static const int kClientAddressFieldNumber = 1;
  inline const ::std::string& client_address() const;
  inline void set_client_address(const ::std::string& value);
  inline void set_client_address(const char* value);
  inline void set_client_address(const char* value, size_t size);
  inline ::std::string* mutable_client_address();
  inline ::std::string* release_client_address();
  inline void set_allocated_client_address(::std::string* client_address);

  // optional uint32 region = 2;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 2;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.IsIgrAddressRequest)
 private:
  inline void set_has_client_address();
  inline void clear_has_client_address();
  inline void set_has_region();
  inline void clear_has_region();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* client_address_;
  ::google::protobuf::uint32 region_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static IsIgrAddressRequest* default_instance_;
};
// -------------------------------------------------------------------

class AccountServiceRegion : public ::google::protobuf::Message {
 public:
  AccountServiceRegion();
  virtual ~AccountServiceRegion();

  AccountServiceRegion(const AccountServiceRegion& from);

  inline AccountServiceRegion& operator=(const AccountServiceRegion& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountServiceRegion& default_instance();

  void Swap(AccountServiceRegion* other);

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

  AccountServiceRegion* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountServiceRegion& from);
  void MergeFrom(const AccountServiceRegion& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required uint32 id = 1;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 1;
  inline ::google::protobuf::uint32 id() const;
  inline void set_id(::google::protobuf::uint32 value);

  // required string shard = 2;
  inline bool has_shard() const;
  inline void clear_shard();
  static const int kShardFieldNumber = 2;
  inline const ::std::string& shard() const;
  inline void set_shard(const ::std::string& value);
  inline void set_shard(const char* value);
  inline void set_shard(const char* value, size_t size);
  inline ::std::string* mutable_shard();
  inline ::std::string* release_shard();
  inline void set_allocated_shard(::std::string* shard);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountServiceRegion)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_shard();
  inline void clear_has_shard();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* shard_;
  ::google::protobuf::uint32 id_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static AccountServiceRegion* default_instance_;
};
// -------------------------------------------------------------------

class AccountServiceConfig : public ::google::protobuf::Message {
 public:
  AccountServiceConfig();
  virtual ~AccountServiceConfig();

  AccountServiceConfig(const AccountServiceConfig& from);

  inline AccountServiceConfig& operator=(const AccountServiceConfig& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountServiceConfig& default_instance();

  void Swap(AccountServiceConfig* other);

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

  AccountServiceConfig* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountServiceConfig& from);
  void MergeFrom(const AccountServiceConfig& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // repeated .bgs.protocol.account.v1.AccountServiceRegion region = 1;
  inline int region_size() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountServiceRegion& region(int index) const;
  inline ::bgs::protocol::account::v1::AccountServiceRegion* mutable_region(int index);
  inline ::bgs::protocol::account::v1::AccountServiceRegion* add_region();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountServiceRegion >&
      region() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountServiceRegion >*
      mutable_region();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountServiceConfig)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountServiceRegion > region_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static AccountServiceConfig* default_instance_;
};
// -------------------------------------------------------------------

class GetAccountStateRequest : public ::google::protobuf::Message {
 public:
  GetAccountStateRequest();
  virtual ~GetAccountStateRequest();

  GetAccountStateRequest(const GetAccountStateRequest& from);

  inline GetAccountStateRequest& operator=(const GetAccountStateRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetAccountStateRequest& default_instance();

  void Swap(GetAccountStateRequest* other);

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

  GetAccountStateRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetAccountStateRequest& from);
  void MergeFrom(const GetAccountStateRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.EntityId entity_id = 1;
  inline bool has_entity_id() const;
  inline void clear_entity_id();
  static const int kEntityIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& entity_id() const;
  inline ::bgs::protocol::EntityId* mutable_entity_id();
  inline ::bgs::protocol::EntityId* release_entity_id();
  inline void set_allocated_entity_id(::bgs::protocol::EntityId* entity_id);

  // optional uint32 program = 2;
  inline bool has_program() const;
  inline void clear_program();
  static const int kProgramFieldNumber = 2;
  inline ::google::protobuf::uint32 program() const;
  inline void set_program(::google::protobuf::uint32 value);

  // optional uint32 region = 3;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 3;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // optional .bgs.protocol.account.v1.AccountFieldOptions options = 10;
  inline bool has_options() const;
  inline void clear_options();
  static const int kOptionsFieldNumber = 10;
  inline const ::bgs::protocol::account::v1::AccountFieldOptions& options() const;
  inline ::bgs::protocol::account::v1::AccountFieldOptions* mutable_options();
  inline ::bgs::protocol::account::v1::AccountFieldOptions* release_options();
  inline void set_allocated_options(::bgs::protocol::account::v1::AccountFieldOptions* options);

  // optional .bgs.protocol.account.v1.AccountFieldTags tags = 11;
  inline bool has_tags() const;
  inline void clear_tags();
  static const int kTagsFieldNumber = 11;
  inline const ::bgs::protocol::account::v1::AccountFieldTags& tags() const;
  inline ::bgs::protocol::account::v1::AccountFieldTags* mutable_tags();
  inline ::bgs::protocol::account::v1::AccountFieldTags* release_tags();
  inline void set_allocated_tags(::bgs::protocol::account::v1::AccountFieldTags* tags);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetAccountStateRequest)
 private:
  inline void set_has_entity_id();
  inline void clear_has_entity_id();
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_region();
  inline void clear_has_region();
  inline void set_has_options();
  inline void clear_has_options();
  inline void set_has_tags();
  inline void clear_has_tags();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* entity_id_;
  ::google::protobuf::uint32 program_;
  ::google::protobuf::uint32 region_;
  ::bgs::protocol::account::v1::AccountFieldOptions* options_;
  ::bgs::protocol::account::v1::AccountFieldTags* tags_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetAccountStateRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetAccountStateResponse : public ::google::protobuf::Message {
 public:
  GetAccountStateResponse();
  virtual ~GetAccountStateResponse();

  GetAccountStateResponse(const GetAccountStateResponse& from);

  inline GetAccountStateResponse& operator=(const GetAccountStateResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetAccountStateResponse& default_instance();

  void Swap(GetAccountStateResponse* other);

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

  GetAccountStateResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetAccountStateResponse& from);
  void MergeFrom(const GetAccountStateResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.AccountState state = 1;
  inline bool has_state() const;
  inline void clear_state();
  static const int kStateFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountState& state() const;
  inline ::bgs::protocol::account::v1::AccountState* mutable_state();
  inline ::bgs::protocol::account::v1::AccountState* release_state();
  inline void set_allocated_state(::bgs::protocol::account::v1::AccountState* state);

  // optional .bgs.protocol.account.v1.AccountFieldTags tags = 2;
  inline bool has_tags() const;
  inline void clear_tags();
  static const int kTagsFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::AccountFieldTags& tags() const;
  inline ::bgs::protocol::account::v1::AccountFieldTags* mutable_tags();
  inline ::bgs::protocol::account::v1::AccountFieldTags* release_tags();
  inline void set_allocated_tags(::bgs::protocol::account::v1::AccountFieldTags* tags);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetAccountStateResponse)
 private:
  inline void set_has_state();
  inline void clear_has_state();
  inline void set_has_tags();
  inline void clear_has_tags();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountState* state_;
  ::bgs::protocol::account::v1::AccountFieldTags* tags_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetAccountStateResponse* default_instance_;
};
// -------------------------------------------------------------------

class GetGameAccountStateRequest : public ::google::protobuf::Message {
 public:
  GetGameAccountStateRequest();
  virtual ~GetGameAccountStateRequest();

  GetGameAccountStateRequest(const GetGameAccountStateRequest& from);

  inline GetGameAccountStateRequest& operator=(const GetGameAccountStateRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetGameAccountStateRequest& default_instance();

  void Swap(GetGameAccountStateRequest* other);

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

  GetGameAccountStateRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetGameAccountStateRequest& from);
  void MergeFrom(const GetGameAccountStateRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.EntityId account_id = 1 [deprecated = true];
  inline bool has_account_id() const PROTOBUF_DEPRECATED;
  inline void clear_account_id() PROTOBUF_DEPRECATED;
  static const int kAccountIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& account_id() const PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::EntityId* mutable_account_id() PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::EntityId* release_account_id() PROTOBUF_DEPRECATED;
  inline void set_allocated_account_id(::bgs::protocol::EntityId* account_id) PROTOBUF_DEPRECATED;

  // optional .bgs.protocol.EntityId game_account_id = 2;
  inline bool has_game_account_id() const;
  inline void clear_game_account_id();
  static const int kGameAccountIdFieldNumber = 2;
  inline const ::bgs::protocol::EntityId& game_account_id() const;
  inline ::bgs::protocol::EntityId* mutable_game_account_id();
  inline ::bgs::protocol::EntityId* release_game_account_id();
  inline void set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id);

  // optional .bgs.protocol.account.v1.GameAccountFieldOptions options = 10;
  inline bool has_options() const;
  inline void clear_options();
  static const int kOptionsFieldNumber = 10;
  inline const ::bgs::protocol::account::v1::GameAccountFieldOptions& options() const;
  inline ::bgs::protocol::account::v1::GameAccountFieldOptions* mutable_options();
  inline ::bgs::protocol::account::v1::GameAccountFieldOptions* release_options();
  inline void set_allocated_options(::bgs::protocol::account::v1::GameAccountFieldOptions* options);

  // optional .bgs.protocol.account.v1.GameAccountFieldTags tags = 11;
  inline bool has_tags() const;
  inline void clear_tags();
  static const int kTagsFieldNumber = 11;
  inline const ::bgs::protocol::account::v1::GameAccountFieldTags& tags() const;
  inline ::bgs::protocol::account::v1::GameAccountFieldTags* mutable_tags();
  inline ::bgs::protocol::account::v1::GameAccountFieldTags* release_tags();
  inline void set_allocated_tags(::bgs::protocol::account::v1::GameAccountFieldTags* tags);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetGameAccountStateRequest)
 private:
  inline void set_has_account_id();
  inline void clear_has_account_id();
  inline void set_has_game_account_id();
  inline void clear_has_game_account_id();
  inline void set_has_options();
  inline void clear_has_options();
  inline void set_has_tags();
  inline void clear_has_tags();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* account_id_;
  ::bgs::protocol::EntityId* game_account_id_;
  ::bgs::protocol::account::v1::GameAccountFieldOptions* options_;
  ::bgs::protocol::account::v1::GameAccountFieldTags* tags_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetGameAccountStateRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetGameAccountStateResponse : public ::google::protobuf::Message {
 public:
  GetGameAccountStateResponse();
  virtual ~GetGameAccountStateResponse();

  GetGameAccountStateResponse(const GetGameAccountStateResponse& from);

  inline GetGameAccountStateResponse& operator=(const GetGameAccountStateResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetGameAccountStateResponse& default_instance();

  void Swap(GetGameAccountStateResponse* other);

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

  GetGameAccountStateResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetGameAccountStateResponse& from);
  void MergeFrom(const GetGameAccountStateResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.GameAccountState state = 1;
  inline bool has_state() const;
  inline void clear_state();
  static const int kStateFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountState& state() const;
  inline ::bgs::protocol::account::v1::GameAccountState* mutable_state();
  inline ::bgs::protocol::account::v1::GameAccountState* release_state();
  inline void set_allocated_state(::bgs::protocol::account::v1::GameAccountState* state);

  // optional .bgs.protocol.account.v1.GameAccountFieldTags tags = 2;
  inline bool has_tags() const;
  inline void clear_tags();
  static const int kTagsFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::GameAccountFieldTags& tags() const;
  inline ::bgs::protocol::account::v1::GameAccountFieldTags* mutable_tags();
  inline ::bgs::protocol::account::v1::GameAccountFieldTags* release_tags();
  inline void set_allocated_tags(::bgs::protocol::account::v1::GameAccountFieldTags* tags);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetGameAccountStateResponse)
 private:
  inline void set_has_state();
  inline void clear_has_state();
  inline void set_has_tags();
  inline void clear_has_tags();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountState* state_;
  ::bgs::protocol::account::v1::GameAccountFieldTags* tags_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetGameAccountStateResponse* default_instance_;
};
// -------------------------------------------------------------------

class GetLicensesRequest : public ::google::protobuf::Message {
 public:
  GetLicensesRequest();
  virtual ~GetLicensesRequest();

  GetLicensesRequest(const GetLicensesRequest& from);

  inline GetLicensesRequest& operator=(const GetLicensesRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetLicensesRequest& default_instance();

  void Swap(GetLicensesRequest* other);

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

  GetLicensesRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetLicensesRequest& from);
  void MergeFrom(const GetLicensesRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.EntityId target_id = 1;
  inline bool has_target_id() const;
  inline void clear_target_id();
  static const int kTargetIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& target_id() const;
  inline ::bgs::protocol::EntityId* mutable_target_id();
  inline ::bgs::protocol::EntityId* release_target_id();
  inline void set_allocated_target_id(::bgs::protocol::EntityId* target_id);

  // optional bool fetch_account_licenses = 2;
  inline bool has_fetch_account_licenses() const;
  inline void clear_fetch_account_licenses();
  static const int kFetchAccountLicensesFieldNumber = 2;
  inline bool fetch_account_licenses() const;
  inline void set_fetch_account_licenses(bool value);

  // optional bool fetch_game_account_licenses = 3;
  inline bool has_fetch_game_account_licenses() const;
  inline void clear_fetch_game_account_licenses();
  static const int kFetchGameAccountLicensesFieldNumber = 3;
  inline bool fetch_game_account_licenses() const;
  inline void set_fetch_game_account_licenses(bool value);

  // optional bool fetch_dynamic_account_licenses = 4;
  inline bool has_fetch_dynamic_account_licenses() const;
  inline void clear_fetch_dynamic_account_licenses();
  static const int kFetchDynamicAccountLicensesFieldNumber = 4;
  inline bool fetch_dynamic_account_licenses() const;
  inline void set_fetch_dynamic_account_licenses(bool value);

  // optional fixed32 program = 5;
  inline bool has_program() const;
  inline void clear_program();
  static const int kProgramFieldNumber = 5;
  inline ::google::protobuf::uint32 program() const;
  inline void set_program(::google::protobuf::uint32 value);

  // optional bool exclude_unknown_program = 6 [default = false];
  inline bool has_exclude_unknown_program() const;
  inline void clear_exclude_unknown_program();
  static const int kExcludeUnknownProgramFieldNumber = 6;
  inline bool exclude_unknown_program() const;
  inline void set_exclude_unknown_program(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetLicensesRequest)
 private:
  inline void set_has_target_id();
  inline void clear_has_target_id();
  inline void set_has_fetch_account_licenses();
  inline void clear_has_fetch_account_licenses();
  inline void set_has_fetch_game_account_licenses();
  inline void clear_has_fetch_game_account_licenses();
  inline void set_has_fetch_dynamic_account_licenses();
  inline void clear_has_fetch_dynamic_account_licenses();
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_exclude_unknown_program();
  inline void clear_has_exclude_unknown_program();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* target_id_;
  bool fetch_account_licenses_;
  bool fetch_game_account_licenses_;
  bool fetch_dynamic_account_licenses_;
  bool exclude_unknown_program_;
  ::google::protobuf::uint32 program_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetLicensesRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetLicensesResponse : public ::google::protobuf::Message {
 public:
  GetLicensesResponse();
  virtual ~GetLicensesResponse();

  GetLicensesResponse(const GetLicensesResponse& from);

  inline GetLicensesResponse& operator=(const GetLicensesResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetLicensesResponse& default_instance();

  void Swap(GetLicensesResponse* other);

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

  GetLicensesResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetLicensesResponse& from);
  void MergeFrom(const GetLicensesResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // repeated .bgs.protocol.account.v1.AccountLicense licenses = 1;
  inline int licenses_size() const;
  inline void clear_licenses();
  static const int kLicensesFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountLicense& licenses(int index) const;
  inline ::bgs::protocol::account::v1::AccountLicense* mutable_licenses(int index);
  inline ::bgs::protocol::account::v1::AccountLicense* add_licenses();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >&
      licenses() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >*
      mutable_licenses();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetLicensesResponse)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense > licenses_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetLicensesResponse* default_instance_;
};
// -------------------------------------------------------------------

class GetGameSessionInfoRequest : public ::google::protobuf::Message {
 public:
  GetGameSessionInfoRequest();
  virtual ~GetGameSessionInfoRequest();

  GetGameSessionInfoRequest(const GetGameSessionInfoRequest& from);

  inline GetGameSessionInfoRequest& operator=(const GetGameSessionInfoRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetGameSessionInfoRequest& default_instance();

  void Swap(GetGameSessionInfoRequest* other);

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

  GetGameSessionInfoRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetGameSessionInfoRequest& from);
  void MergeFrom(const GetGameSessionInfoRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.EntityId entity_id = 1;
  inline bool has_entity_id() const;
  inline void clear_entity_id();
  static const int kEntityIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& entity_id() const;
  inline ::bgs::protocol::EntityId* mutable_entity_id();
  inline ::bgs::protocol::EntityId* release_entity_id();
  inline void set_allocated_entity_id(::bgs::protocol::EntityId* entity_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetGameSessionInfoRequest)
 private:
  inline void set_has_entity_id();
  inline void clear_has_entity_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* entity_id_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetGameSessionInfoRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetGameSessionInfoResponse : public ::google::protobuf::Message {
 public:
  GetGameSessionInfoResponse();
  virtual ~GetGameSessionInfoResponse();

  GetGameSessionInfoResponse(const GetGameSessionInfoResponse& from);

  inline GetGameSessionInfoResponse& operator=(const GetGameSessionInfoResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetGameSessionInfoResponse& default_instance();

  void Swap(GetGameSessionInfoResponse* other);

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

  GetGameSessionInfoResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetGameSessionInfoResponse& from);
  void MergeFrom(const GetGameSessionInfoResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.GameSessionInfo session_info = 2;
  inline bool has_session_info() const;
  inline void clear_session_info();
  static const int kSessionInfoFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::GameSessionInfo& session_info() const;
  inline ::bgs::protocol::account::v1::GameSessionInfo* mutable_session_info();
  inline ::bgs::protocol::account::v1::GameSessionInfo* release_session_info();
  inline void set_allocated_session_info(::bgs::protocol::account::v1::GameSessionInfo* session_info);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetGameSessionInfoResponse)
 private:
  inline void set_has_session_info();
  inline void clear_has_session_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameSessionInfo* session_info_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetGameSessionInfoResponse* default_instance_;
};
// -------------------------------------------------------------------

class GetGameTimeRemainingInfoRequest : public ::google::protobuf::Message {
 public:
  GetGameTimeRemainingInfoRequest();
  virtual ~GetGameTimeRemainingInfoRequest();

  GetGameTimeRemainingInfoRequest(const GetGameTimeRemainingInfoRequest& from);

  inline GetGameTimeRemainingInfoRequest& operator=(const GetGameTimeRemainingInfoRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetGameTimeRemainingInfoRequest& default_instance();

  void Swap(GetGameTimeRemainingInfoRequest* other);

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

  GetGameTimeRemainingInfoRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetGameTimeRemainingInfoRequest& from);
  void MergeFrom(const GetGameTimeRemainingInfoRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.EntityId game_account_id = 1;
  inline bool has_game_account_id() const;
  inline void clear_game_account_id();
  static const int kGameAccountIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& game_account_id() const;
  inline ::bgs::protocol::EntityId* mutable_game_account_id();
  inline ::bgs::protocol::EntityId* release_game_account_id();
  inline void set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id);

  // optional .bgs.protocol.EntityId account_id = 2;
  inline bool has_account_id() const;
  inline void clear_account_id();
  static const int kAccountIdFieldNumber = 2;
  inline const ::bgs::protocol::EntityId& account_id() const;
  inline ::bgs::protocol::EntityId* mutable_account_id();
  inline ::bgs::protocol::EntityId* release_account_id();
  inline void set_allocated_account_id(::bgs::protocol::EntityId* account_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetGameTimeRemainingInfoRequest)
 private:
  inline void set_has_game_account_id();
  inline void clear_has_game_account_id();
  inline void set_has_account_id();
  inline void clear_has_account_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* game_account_id_;
  ::bgs::protocol::EntityId* account_id_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetGameTimeRemainingInfoRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetGameTimeRemainingInfoResponse : public ::google::protobuf::Message {
 public:
  GetGameTimeRemainingInfoResponse();
  virtual ~GetGameTimeRemainingInfoResponse();

  GetGameTimeRemainingInfoResponse(const GetGameTimeRemainingInfoResponse& from);

  inline GetGameTimeRemainingInfoResponse& operator=(const GetGameTimeRemainingInfoResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetGameTimeRemainingInfoResponse& default_instance();

  void Swap(GetGameTimeRemainingInfoResponse* other);

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

  GetGameTimeRemainingInfoResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetGameTimeRemainingInfoResponse& from);
  void MergeFrom(const GetGameTimeRemainingInfoResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.GameTimeRemainingInfo game_time_remaining_info = 1;
  inline bool has_game_time_remaining_info() const;
  inline void clear_game_time_remaining_info();
  static const int kGameTimeRemainingInfoFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameTimeRemainingInfo& game_time_remaining_info() const;
  inline ::bgs::protocol::account::v1::GameTimeRemainingInfo* mutable_game_time_remaining_info();
  inline ::bgs::protocol::account::v1::GameTimeRemainingInfo* release_game_time_remaining_info();
  inline void set_allocated_game_time_remaining_info(::bgs::protocol::account::v1::GameTimeRemainingInfo* game_time_remaining_info);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetGameTimeRemainingInfoResponse)
 private:
  inline void set_has_game_time_remaining_info();
  inline void clear_has_game_time_remaining_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameTimeRemainingInfo* game_time_remaining_info_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetGameTimeRemainingInfoResponse* default_instance_;
};
// -------------------------------------------------------------------

class GetCAISInfoRequest : public ::google::protobuf::Message {
 public:
  GetCAISInfoRequest();
  virtual ~GetCAISInfoRequest();

  GetCAISInfoRequest(const GetCAISInfoRequest& from);

  inline GetCAISInfoRequest& operator=(const GetCAISInfoRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetCAISInfoRequest& default_instance();

  void Swap(GetCAISInfoRequest* other);

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

  GetCAISInfoRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetCAISInfoRequest& from);
  void MergeFrom(const GetCAISInfoRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.EntityId entity_id = 1;
  inline bool has_entity_id() const;
  inline void clear_entity_id();
  static const int kEntityIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& entity_id() const;
  inline ::bgs::protocol::EntityId* mutable_entity_id();
  inline ::bgs::protocol::EntityId* release_entity_id();
  inline void set_allocated_entity_id(::bgs::protocol::EntityId* entity_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetCAISInfoRequest)
 private:
  inline void set_has_entity_id();
  inline void clear_has_entity_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* entity_id_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetCAISInfoRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetCAISInfoResponse : public ::google::protobuf::Message {
 public:
  GetCAISInfoResponse();
  virtual ~GetCAISInfoResponse();

  GetCAISInfoResponse(const GetCAISInfoResponse& from);

  inline GetCAISInfoResponse& operator=(const GetCAISInfoResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetCAISInfoResponse& default_instance();

  void Swap(GetCAISInfoResponse* other);

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

  GetCAISInfoResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetCAISInfoResponse& from);
  void MergeFrom(const GetCAISInfoResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.CAIS cais_info = 1;
  inline bool has_cais_info() const;
  inline void clear_cais_info();
  static const int kCaisInfoFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::CAIS& cais_info() const;
  inline ::bgs::protocol::account::v1::CAIS* mutable_cais_info();
  inline ::bgs::protocol::account::v1::CAIS* release_cais_info();
  inline void set_allocated_cais_info(::bgs::protocol::account::v1::CAIS* cais_info);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetCAISInfoResponse)
 private:
  inline void set_has_cais_info();
  inline void clear_has_cais_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::CAIS* cais_info_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetCAISInfoResponse* default_instance_;
};
// -------------------------------------------------------------------

class ForwardCacheExpireRequest : public ::google::protobuf::Message {
 public:
  ForwardCacheExpireRequest();
  virtual ~ForwardCacheExpireRequest();

  ForwardCacheExpireRequest(const ForwardCacheExpireRequest& from);

  inline ForwardCacheExpireRequest& operator=(const ForwardCacheExpireRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ForwardCacheExpireRequest& default_instance();

  void Swap(ForwardCacheExpireRequest* other);

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

  ForwardCacheExpireRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ForwardCacheExpireRequest& from);
  void MergeFrom(const ForwardCacheExpireRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.EntityId entity_id = 1;
  inline bool has_entity_id() const;
  inline void clear_entity_id();
  static const int kEntityIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& entity_id() const;
  inline ::bgs::protocol::EntityId* mutable_entity_id();
  inline ::bgs::protocol::EntityId* release_entity_id();
  inline void set_allocated_entity_id(::bgs::protocol::EntityId* entity_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.ForwardCacheExpireRequest)
 private:
  inline void set_has_entity_id();
  inline void clear_has_entity_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* entity_id_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static ForwardCacheExpireRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetAuthorizedDataRequest : public ::google::protobuf::Message {
 public:
  GetAuthorizedDataRequest();
  virtual ~GetAuthorizedDataRequest();

  GetAuthorizedDataRequest(const GetAuthorizedDataRequest& from);

  inline GetAuthorizedDataRequest& operator=(const GetAuthorizedDataRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetAuthorizedDataRequest& default_instance();

  void Swap(GetAuthorizedDataRequest* other);

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

  GetAuthorizedDataRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetAuthorizedDataRequest& from);
  void MergeFrom(const GetAuthorizedDataRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.EntityId entity_id = 1;
  inline bool has_entity_id() const;
  inline void clear_entity_id();
  static const int kEntityIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& entity_id() const;
  inline ::bgs::protocol::EntityId* mutable_entity_id();
  inline ::bgs::protocol::EntityId* release_entity_id();
  inline void set_allocated_entity_id(::bgs::protocol::EntityId* entity_id);

  // repeated string tag = 2;
  inline int tag_size() const;
  inline void clear_tag();
  static const int kTagFieldNumber = 2;
  inline const ::std::string& tag(int index) const;
  inline ::std::string* mutable_tag(int index);
  inline void set_tag(int index, const ::std::string& value);
  inline void set_tag(int index, const char* value);
  inline void set_tag(int index, const char* value, size_t size);
  inline ::std::string* add_tag();
  inline void add_tag(const ::std::string& value);
  inline void add_tag(const char* value);
  inline void add_tag(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& tag() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_tag();

  // optional bool privileged_network = 3;
  inline bool has_privileged_network() const;
  inline void clear_privileged_network();
  static const int kPrivilegedNetworkFieldNumber = 3;
  inline bool privileged_network() const;
  inline void set_privileged_network(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetAuthorizedDataRequest)
 private:
  inline void set_has_entity_id();
  inline void clear_has_entity_id();
  inline void set_has_privileged_network();
  inline void clear_has_privileged_network();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* entity_id_;
  ::google::protobuf::RepeatedPtrField< ::std::string> tag_;
  bool privileged_network_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetAuthorizedDataRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetAuthorizedDataResponse : public ::google::protobuf::Message {
 public:
  GetAuthorizedDataResponse();
  virtual ~GetAuthorizedDataResponse();

  GetAuthorizedDataResponse(const GetAuthorizedDataResponse& from);

  inline GetAuthorizedDataResponse& operator=(const GetAuthorizedDataResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetAuthorizedDataResponse& default_instance();

  void Swap(GetAuthorizedDataResponse* other);

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

  GetAuthorizedDataResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetAuthorizedDataResponse& from);
  void MergeFrom(const GetAuthorizedDataResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // repeated .bgs.protocol.account.v1.AuthorizedData data = 1;
  inline int data_size() const;
  inline void clear_data();
  static const int kDataFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AuthorizedData& data(int index) const;
  inline ::bgs::protocol::account::v1::AuthorizedData* mutable_data(int index);
  inline ::bgs::protocol::account::v1::AuthorizedData* add_data();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AuthorizedData >&
      data() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AuthorizedData >*
      mutable_data();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetAuthorizedDataResponse)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AuthorizedData > data_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetAuthorizedDataResponse* default_instance_;
};
// -------------------------------------------------------------------

class UpdateParentalControlsAndCAISRequest : public ::google::protobuf::Message {
 public:
  UpdateParentalControlsAndCAISRequest();
  virtual ~UpdateParentalControlsAndCAISRequest();

  UpdateParentalControlsAndCAISRequest(const UpdateParentalControlsAndCAISRequest& from);

  inline UpdateParentalControlsAndCAISRequest& operator=(const UpdateParentalControlsAndCAISRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const UpdateParentalControlsAndCAISRequest& default_instance();

  void Swap(UpdateParentalControlsAndCAISRequest* other);

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

  UpdateParentalControlsAndCAISRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const UpdateParentalControlsAndCAISRequest& from);
  void MergeFrom(const UpdateParentalControlsAndCAISRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.AccountId account = 1;
  inline bool has_account() const;
  inline void clear_account();
  static const int kAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountId& account() const;
  inline ::bgs::protocol::account::v1::AccountId* mutable_account();
  inline ::bgs::protocol::account::v1::AccountId* release_account();
  inline void set_allocated_account(::bgs::protocol::account::v1::AccountId* account);

  // optional .bgs.protocol.account.v1.ParentalControlInfo parental_control_info = 2;
  inline bool has_parental_control_info() const;
  inline void clear_parental_control_info();
  static const int kParentalControlInfoFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::ParentalControlInfo& parental_control_info() const;
  inline ::bgs::protocol::account::v1::ParentalControlInfo* mutable_parental_control_info();
  inline ::bgs::protocol::account::v1::ParentalControlInfo* release_parental_control_info();
  inline void set_allocated_parental_control_info(::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info);

  // optional string cais_id = 3;
  inline bool has_cais_id() const;
  inline void clear_cais_id();
  static const int kCaisIdFieldNumber = 3;
  inline const ::std::string& cais_id() const;
  inline void set_cais_id(const ::std::string& value);
  inline void set_cais_id(const char* value);
  inline void set_cais_id(const char* value, size_t size);
  inline ::std::string* mutable_cais_id();
  inline ::std::string* release_cais_id();
  inline void set_allocated_cais_id(::std::string* cais_id);

  // optional uint64 session_start_time = 4;
  inline bool has_session_start_time() const;
  inline void clear_session_start_time();
  static const int kSessionStartTimeFieldNumber = 4;
  inline ::google::protobuf::uint64 session_start_time() const;
  inline void set_session_start_time(::google::protobuf::uint64 value);

  // optional uint64 start_time = 5;
  inline bool has_start_time() const;
  inline void clear_start_time();
  static const int kStartTimeFieldNumber = 5;
  inline ::google::protobuf::uint64 start_time() const;
  inline void set_start_time(::google::protobuf::uint64 value);

  // optional uint64 end_time = 6;
  inline bool has_end_time() const;
  inline void clear_end_time();
  static const int kEndTimeFieldNumber = 6;
  inline ::google::protobuf::uint64 end_time() const;
  inline void set_end_time(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest)
 private:
  inline void set_has_account();
  inline void clear_has_account();
  inline void set_has_parental_control_info();
  inline void clear_has_parental_control_info();
  inline void set_has_cais_id();
  inline void clear_has_cais_id();
  inline void set_has_session_start_time();
  inline void clear_has_session_start_time();
  inline void set_has_start_time();
  inline void clear_has_start_time();
  inline void set_has_end_time();
  inline void clear_has_end_time();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountId* account_;
  ::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info_;
  ::std::string* cais_id_;
  ::google::protobuf::uint64 session_start_time_;
  ::google::protobuf::uint64 start_time_;
  ::google::protobuf::uint64 end_time_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static UpdateParentalControlsAndCAISRequest* default_instance_;
};
// -------------------------------------------------------------------

class QueueDeductRecordRequest : public ::google::protobuf::Message {
 public:
  QueueDeductRecordRequest();
  virtual ~QueueDeductRecordRequest();

  QueueDeductRecordRequest(const QueueDeductRecordRequest& from);

  inline QueueDeductRecordRequest& operator=(const QueueDeductRecordRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const QueueDeductRecordRequest& default_instance();

  void Swap(QueueDeductRecordRequest* other);

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

  QueueDeductRecordRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const QueueDeductRecordRequest& from);
  void MergeFrom(const QueueDeductRecordRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.DeductRecord deduct_record = 1;
  inline bool has_deduct_record() const;
  inline void clear_deduct_record();
  static const int kDeductRecordFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::DeductRecord& deduct_record() const;
  inline ::bgs::protocol::account::v1::DeductRecord* mutable_deduct_record();
  inline ::bgs::protocol::account::v1::DeductRecord* release_deduct_record();
  inline void set_allocated_deduct_record(::bgs::protocol::account::v1::DeductRecord* deduct_record);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.QueueDeductRecordRequest)
 private:
  inline void set_has_deduct_record();
  inline void clear_has_deduct_record();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::DeductRecord* deduct_record_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static QueueDeductRecordRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetGameAccountRequest : public ::google::protobuf::Message {
 public:
  GetGameAccountRequest();
  virtual ~GetGameAccountRequest();

  GetGameAccountRequest(const GetGameAccountRequest& from);

  inline GetGameAccountRequest& operator=(const GetGameAccountRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetGameAccountRequest& default_instance();

  void Swap(GetGameAccountRequest* other);

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

  GetGameAccountRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetGameAccountRequest& from);
  void MergeFrom(const GetGameAccountRequest& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
  inline bool has_game_account() const;
  inline void clear_game_account();
  static const int kGameAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& game_account() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_game_account();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_game_account();
  inline void set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account);

  // optional bool reload = 2 [default = false];
  inline bool has_reload() const;
  inline void clear_reload();
  static const int kReloadFieldNumber = 2;
  inline bool reload() const;
  inline void set_reload(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetGameAccountRequest)
 private:
  inline void set_has_game_account();
  inline void clear_has_game_account();
  inline void set_has_reload();
  inline void clear_has_reload();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountHandle* game_account_;
  bool reload_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetGameAccountRequest* default_instance_;
};
// -------------------------------------------------------------------

class GetGameAccountResponse : public ::google::protobuf::Message {
 public:
  GetGameAccountResponse();
  virtual ~GetGameAccountResponse();

  GetGameAccountResponse(const GetGameAccountResponse& from);

  inline GetGameAccountResponse& operator=(const GetGameAccountResponse& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GetGameAccountResponse& default_instance();

  void Swap(GetGameAccountResponse* other);

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

  GetGameAccountResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetGameAccountResponse& from);
  void MergeFrom(const GetGameAccountResponse& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.GameAccountBlob blob = 1;
  inline bool has_blob() const;
  inline void clear_blob();
  static const int kBlobFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountBlob& blob() const;
  inline ::bgs::protocol::account::v1::GameAccountBlob* mutable_blob();
  inline ::bgs::protocol::account::v1::GameAccountBlob* release_blob();
  inline void set_allocated_blob(::bgs::protocol::account::v1::GameAccountBlob* blob);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GetGameAccountResponse)
 private:
  inline void set_has_blob();
  inline void clear_has_blob();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountBlob* blob_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GetGameAccountResponse* default_instance_;
};
// -------------------------------------------------------------------

class AccountStateNotification : public ::google::protobuf::Message {
 public:
  AccountStateNotification();
  virtual ~AccountStateNotification();

  AccountStateNotification(const AccountStateNotification& from);

  inline AccountStateNotification& operator=(const AccountStateNotification& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountStateNotification& default_instance();

  void Swap(AccountStateNotification* other);

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

  AccountStateNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountStateNotification& from);
  void MergeFrom(const AccountStateNotification& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.AccountState account_state = 1;
  inline bool has_account_state() const;
  inline void clear_account_state();
  static const int kAccountStateFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountState& account_state() const;
  inline ::bgs::protocol::account::v1::AccountState* mutable_account_state();
  inline ::bgs::protocol::account::v1::AccountState* release_account_state();
  inline void set_allocated_account_state(::bgs::protocol::account::v1::AccountState* account_state);

  // optional uint64 subscriber_id = 2;
  inline bool has_subscriber_id() const;
  inline void clear_subscriber_id();
  static const int kSubscriberIdFieldNumber = 2;
  inline ::google::protobuf::uint64 subscriber_id() const;
  inline void set_subscriber_id(::google::protobuf::uint64 value);

  // optional .bgs.protocol.account.v1.AccountFieldTags account_tags = 3;
  inline bool has_account_tags() const;
  inline void clear_account_tags();
  static const int kAccountTagsFieldNumber = 3;
  inline const ::bgs::protocol::account::v1::AccountFieldTags& account_tags() const;
  inline ::bgs::protocol::account::v1::AccountFieldTags* mutable_account_tags();
  inline ::bgs::protocol::account::v1::AccountFieldTags* release_account_tags();
  inline void set_allocated_account_tags(::bgs::protocol::account::v1::AccountFieldTags* account_tags);

  // optional bool subscription_completed = 4;
  inline bool has_subscription_completed() const;
  inline void clear_subscription_completed();
  static const int kSubscriptionCompletedFieldNumber = 4;
  inline bool subscription_completed() const;
  inline void set_subscription_completed(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountStateNotification)
 private:
  inline void set_has_account_state();
  inline void clear_has_account_state();
  inline void set_has_subscriber_id();
  inline void clear_has_subscriber_id();
  inline void set_has_account_tags();
  inline void clear_has_account_tags();
  inline void set_has_subscription_completed();
  inline void clear_has_subscription_completed();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountState* account_state_;
  ::google::protobuf::uint64 subscriber_id_;
  ::bgs::protocol::account::v1::AccountFieldTags* account_tags_;
  bool subscription_completed_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static AccountStateNotification* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountStateNotification : public ::google::protobuf::Message {
 public:
  GameAccountStateNotification();
  virtual ~GameAccountStateNotification();

  GameAccountStateNotification(const GameAccountStateNotification& from);

  inline GameAccountStateNotification& operator=(const GameAccountStateNotification& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountStateNotification& default_instance();

  void Swap(GameAccountStateNotification* other);

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

  GameAccountStateNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountStateNotification& from);
  void MergeFrom(const GameAccountStateNotification& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.GameAccountState game_account_state = 1;
  inline bool has_game_account_state() const;
  inline void clear_game_account_state();
  static const int kGameAccountStateFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountState& game_account_state() const;
  inline ::bgs::protocol::account::v1::GameAccountState* mutable_game_account_state();
  inline ::bgs::protocol::account::v1::GameAccountState* release_game_account_state();
  inline void set_allocated_game_account_state(::bgs::protocol::account::v1::GameAccountState* game_account_state);

  // optional uint64 subscriber_id = 2;
  inline bool has_subscriber_id() const;
  inline void clear_subscriber_id();
  static const int kSubscriberIdFieldNumber = 2;
  inline ::google::protobuf::uint64 subscriber_id() const;
  inline void set_subscriber_id(::google::protobuf::uint64 value);

  // optional .bgs.protocol.account.v1.GameAccountFieldTags game_account_tags = 3;
  inline bool has_game_account_tags() const;
  inline void clear_game_account_tags();
  static const int kGameAccountTagsFieldNumber = 3;
  inline const ::bgs::protocol::account::v1::GameAccountFieldTags& game_account_tags() const;
  inline ::bgs::protocol::account::v1::GameAccountFieldTags* mutable_game_account_tags();
  inline ::bgs::protocol::account::v1::GameAccountFieldTags* release_game_account_tags();
  inline void set_allocated_game_account_tags(::bgs::protocol::account::v1::GameAccountFieldTags* game_account_tags);

  // optional bool subscription_completed = 4;
  inline bool has_subscription_completed() const;
  inline void clear_subscription_completed();
  static const int kSubscriptionCompletedFieldNumber = 4;
  inline bool subscription_completed() const;
  inline void set_subscription_completed(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountStateNotification)
 private:
  inline void set_has_game_account_state();
  inline void clear_has_game_account_state();
  inline void set_has_subscriber_id();
  inline void clear_has_subscriber_id();
  inline void set_has_game_account_tags();
  inline void clear_has_game_account_tags();
  inline void set_has_subscription_completed();
  inline void clear_has_subscription_completed();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountState* game_account_state_;
  ::google::protobuf::uint64 subscriber_id_;
  ::bgs::protocol::account::v1::GameAccountFieldTags* game_account_tags_;
  bool subscription_completed_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GameAccountStateNotification* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountNotification : public ::google::protobuf::Message {
 public:
  GameAccountNotification();
  virtual ~GameAccountNotification();

  GameAccountNotification(const GameAccountNotification& from);

  inline GameAccountNotification& operator=(const GameAccountNotification& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountNotification& default_instance();

  void Swap(GameAccountNotification* other);

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

  GameAccountNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountNotification& from);
  void MergeFrom(const GameAccountNotification& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // repeated .bgs.protocol.account.v1.GameAccountList game_accounts = 1;
  inline int game_accounts_size() const;
  inline void clear_game_accounts();
  static const int kGameAccountsFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountList& game_accounts(int index) const;
  inline ::bgs::protocol::account::v1::GameAccountList* mutable_game_accounts(int index);
  inline ::bgs::protocol::account::v1::GameAccountList* add_game_accounts();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountList >&
      game_accounts() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountList >*
      mutable_game_accounts();

  // optional uint64 subscriber_id = 2;
  inline bool has_subscriber_id() const;
  inline void clear_subscriber_id();
  static const int kSubscriberIdFieldNumber = 2;
  inline ::google::protobuf::uint64 subscriber_id() const;
  inline void set_subscriber_id(::google::protobuf::uint64 value);

  // optional .bgs.protocol.account.v1.AccountFieldTags account_tags = 3;
  inline bool has_account_tags() const;
  inline void clear_account_tags();
  static const int kAccountTagsFieldNumber = 3;
  inline const ::bgs::protocol::account::v1::AccountFieldTags& account_tags() const;
  inline ::bgs::protocol::account::v1::AccountFieldTags* mutable_account_tags();
  inline ::bgs::protocol::account::v1::AccountFieldTags* release_account_tags();
  inline void set_allocated_account_tags(::bgs::protocol::account::v1::AccountFieldTags* account_tags);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountNotification)
 private:
  inline void set_has_subscriber_id();
  inline void clear_has_subscriber_id();
  inline void set_has_account_tags();
  inline void clear_has_account_tags();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountList > game_accounts_;
  ::google::protobuf::uint64 subscriber_id_;
  ::bgs::protocol::account::v1::AccountFieldTags* account_tags_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GameAccountNotification* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountSessionNotification : public ::google::protobuf::Message {
 public:
  GameAccountSessionNotification();
  virtual ~GameAccountSessionNotification();

  GameAccountSessionNotification(const GameAccountSessionNotification& from);

  inline GameAccountSessionNotification& operator=(const GameAccountSessionNotification& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountSessionNotification& default_instance();

  void Swap(GameAccountSessionNotification* other);

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

  GameAccountSessionNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountSessionNotification& from);
  void MergeFrom(const GameAccountSessionNotification& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
  inline bool has_game_account() const;
  inline void clear_game_account();
  static const int kGameAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& game_account() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_game_account();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_game_account();
  inline void set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account);

  // optional .bgs.protocol.account.v1.GameSessionUpdateInfo session_info = 2;
  inline bool has_session_info() const;
  inline void clear_session_info();
  static const int kSessionInfoFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::GameSessionUpdateInfo& session_info() const;
  inline ::bgs::protocol::account::v1::GameSessionUpdateInfo* mutable_session_info();
  inline ::bgs::protocol::account::v1::GameSessionUpdateInfo* release_session_info();
  inline void set_allocated_session_info(::bgs::protocol::account::v1::GameSessionUpdateInfo* session_info);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountSessionNotification)
 private:
  inline void set_has_game_account();
  inline void clear_has_game_account();
  inline void set_has_session_info();
  inline void clear_has_session_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountHandle* game_account_;
  ::bgs::protocol::account::v1::GameSessionUpdateInfo* session_info_;
  friend void protobuf_AddDesc_account_5fservice_2eproto();
  friend void protobuf_AssignDesc_account_5fservice_2eproto();
  friend void protobuf_ShutdownFile_account_5fservice_2eproto();

  void InitAsDefaultInstance();
  static GameAccountSessionNotification* default_instance_;
};
// ===================================================================

class AccountService : public ServiceBase
{
 public:

  explicit AccountService(bool use_original_hash);
  virtual ~AccountService();

  typedef std::integral_constant<uint32, 0x62DA0891u> OriginalHash;
  typedef std::integral_constant<uint32, 0x1E4DC42Fu> NameHash;

  static google::protobuf::ServiceDescriptor const* descriptor();

  // client methods --------------------------------------------------

  void GetGameAccountBlob(::bgs::protocol::account::v1::GameAccountHandle const* request, std::function<void(::bgs::protocol::account::v1::GameAccountBlob const*)> responseCallback);
  void GetAccount(::bgs::protocol::account::v1::GetAccountRequest const* request, std::function<void(::bgs::protocol::account::v1::GetAccountResponse const*)> responseCallback);
  void CreateGameAccount(::bgs::protocol::account::v1::CreateGameAccountRequest const* request, std::function<void(::bgs::protocol::account::v1::GameAccountHandle const*)> responseCallback);
  void IsIgrAddress(::bgs::protocol::account::v1::IsIgrAddressRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void CacheExpire(::bgs::protocol::account::v1::CacheExpireRequest const* request);
  void CredentialUpdate(::bgs::protocol::account::v1::CredentialUpdateRequest const* request, std::function<void(::bgs::protocol::account::v1::CredentialUpdateResponse const*)> responseCallback);
  void Subscribe(::bgs::protocol::account::v1::SubscriptionUpdateRequest const* request, std::function<void(::bgs::protocol::account::v1::SubscriptionUpdateResponse const*)> responseCallback);
  void Unsubscribe(::bgs::protocol::account::v1::SubscriptionUpdateRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void GetAccountState(::bgs::protocol::account::v1::GetAccountStateRequest const* request, std::function<void(::bgs::protocol::account::v1::GetAccountStateResponse const*)> responseCallback);
  void GetGameAccountState(::bgs::protocol::account::v1::GetGameAccountStateRequest const* request, std::function<void(::bgs::protocol::account::v1::GetGameAccountStateResponse const*)> responseCallback);
  void GetLicenses(::bgs::protocol::account::v1::GetLicensesRequest const* request, std::function<void(::bgs::protocol::account::v1::GetLicensesResponse const*)> responseCallback);
  void GetGameTimeRemainingInfo(::bgs::protocol::account::v1::GetGameTimeRemainingInfoRequest const* request, std::function<void(::bgs::protocol::account::v1::GetGameTimeRemainingInfoResponse const*)> responseCallback);
  void GetGameSessionInfo(::bgs::protocol::account::v1::GetGameSessionInfoRequest const* request, std::function<void(::bgs::protocol::account::v1::GetGameSessionInfoResponse const*)> responseCallback);
  void GetCAISInfo(::bgs::protocol::account::v1::GetCAISInfoRequest const* request, std::function<void(::bgs::protocol::account::v1::GetCAISInfoResponse const*)> responseCallback);
  void ForwardCacheExpire(::bgs::protocol::account::v1::ForwardCacheExpireRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void GetAuthorizedData(::bgs::protocol::account::v1::GetAuthorizedDataRequest const* request, std::function<void(::bgs::protocol::account::v1::GetAuthorizedDataResponse const*)> responseCallback);
  void AccountFlagUpdate(::bgs::protocol::account::v1::AccountFlagUpdateRequest const* request);
  void GameAccountFlagUpdate(::bgs::protocol::account::v1::GameAccountFlagUpdateRequest const* request);
  void UpdateParentalControlsAndCAIS(::bgs::protocol::account::v1::UpdateParentalControlsAndCAISRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void CreateGameAccount2(::bgs::protocol::account::v1::CreateGameAccountRequest const* request, std::function<void(::bgs::protocol::account::v1::CreateGameAccountResponse const*)> responseCallback);
  void GetGameAccount(::bgs::protocol::account::v1::GetGameAccountRequest const* request, std::function<void(::bgs::protocol::account::v1::GetGameAccountResponse const*)> responseCallback);
  void QueueDeductRecord(::bgs::protocol::account::v1::QueueDeductRecordRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  // server methods --------------------------------------------------

  void CallServerMethod(uint32 token, uint32 methodId, MessageBuffer buffer) override final;

 protected:
  virtual uint32 HandleGetGameAccountBlob(::bgs::protocol::account::v1::GameAccountHandle const* request, ::bgs::protocol::account::v1::GameAccountBlob* response);
  virtual uint32 HandleGetAccount(::bgs::protocol::account::v1::GetAccountRequest const* request, ::bgs::protocol::account::v1::GetAccountResponse* response);
  virtual uint32 HandleCreateGameAccount(::bgs::protocol::account::v1::CreateGameAccountRequest const* request, ::bgs::protocol::account::v1::GameAccountHandle* response);
  virtual uint32 HandleIsIgrAddress(::bgs::protocol::account::v1::IsIgrAddressRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleCacheExpire(::bgs::protocol::account::v1::CacheExpireRequest const* request);
  virtual uint32 HandleCredentialUpdate(::bgs::protocol::account::v1::CredentialUpdateRequest const* request, ::bgs::protocol::account::v1::CredentialUpdateResponse* response);
  virtual uint32 HandleSubscribe(::bgs::protocol::account::v1::SubscriptionUpdateRequest const* request, ::bgs::protocol::account::v1::SubscriptionUpdateResponse* response);
  virtual uint32 HandleUnsubscribe(::bgs::protocol::account::v1::SubscriptionUpdateRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleGetAccountState(::bgs::protocol::account::v1::GetAccountStateRequest const* request, ::bgs::protocol::account::v1::GetAccountStateResponse* response);
  virtual uint32 HandleGetGameAccountState(::bgs::protocol::account::v1::GetGameAccountStateRequest const* request, ::bgs::protocol::account::v1::GetGameAccountStateResponse* response);
  virtual uint32 HandleGetLicenses(::bgs::protocol::account::v1::GetLicensesRequest const* request, ::bgs::protocol::account::v1::GetLicensesResponse* response);
  virtual uint32 HandleGetGameTimeRemainingInfo(::bgs::protocol::account::v1::GetGameTimeRemainingInfoRequest const* request, ::bgs::protocol::account::v1::GetGameTimeRemainingInfoResponse* response);
  virtual uint32 HandleGetGameSessionInfo(::bgs::protocol::account::v1::GetGameSessionInfoRequest const* request, ::bgs::protocol::account::v1::GetGameSessionInfoResponse* response);
  virtual uint32 HandleGetCAISInfo(::bgs::protocol::account::v1::GetCAISInfoRequest const* request, ::bgs::protocol::account::v1::GetCAISInfoResponse* response);
  virtual uint32 HandleForwardCacheExpire(::bgs::protocol::account::v1::ForwardCacheExpireRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleGetAuthorizedData(::bgs::protocol::account::v1::GetAuthorizedDataRequest const* request, ::bgs::protocol::account::v1::GetAuthorizedDataResponse* response);
  virtual uint32 HandleAccountFlagUpdate(::bgs::protocol::account::v1::AccountFlagUpdateRequest const* request);
  virtual uint32 HandleGameAccountFlagUpdate(::bgs::protocol::account::v1::GameAccountFlagUpdateRequest const* request);
  virtual uint32 HandleUpdateParentalControlsAndCAIS(::bgs::protocol::account::v1::UpdateParentalControlsAndCAISRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleCreateGameAccount2(::bgs::protocol::account::v1::CreateGameAccountRequest const* request, ::bgs::protocol::account::v1::CreateGameAccountResponse* response);
  virtual uint32 HandleGetGameAccount(::bgs::protocol::account::v1::GetGameAccountRequest const* request, ::bgs::protocol::account::v1::GetGameAccountResponse* response);
  virtual uint32 HandleQueueDeductRecord(::bgs::protocol::account::v1::QueueDeductRecordRequest const* request, ::bgs::protocol::NoData* response);

 private:
  uint32 service_hash_;

  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(AccountService);
};

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

class AccountListener : public ServiceBase
{
 public:

  explicit AccountListener(bool use_original_hash);
  virtual ~AccountListener();

  typedef std::integral_constant<uint32, 0x54DFDA17u> OriginalHash;
  typedef std::integral_constant<uint32, 0x7807483Cu> NameHash;

  static google::protobuf::ServiceDescriptor const* descriptor();

  // client methods --------------------------------------------------

  void OnAccountStateUpdated(::bgs::protocol::account::v1::AccountStateNotification const* request);
  void OnGameAccountStateUpdated(::bgs::protocol::account::v1::GameAccountStateNotification const* request);
  void OnGameAccountsUpdated(::bgs::protocol::account::v1::GameAccountNotification const* request);
  void OnGameSessionUpdated(::bgs::protocol::account::v1::GameAccountSessionNotification const* request);
  // server methods --------------------------------------------------

  void CallServerMethod(uint32 token, uint32 methodId, MessageBuffer buffer) override final;

 protected:
  virtual uint32 HandleOnAccountStateUpdated(::bgs::protocol::account::v1::AccountStateNotification const* request);
  virtual uint32 HandleOnGameAccountStateUpdated(::bgs::protocol::account::v1::GameAccountStateNotification const* request);
  virtual uint32 HandleOnGameAccountsUpdated(::bgs::protocol::account::v1::GameAccountNotification const* request);
  virtual uint32 HandleOnGameSessionUpdated(::bgs::protocol::account::v1::GameAccountSessionNotification const* request);

 private:
  uint32 service_hash_;

  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(AccountListener);
};

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


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

// GetAccountRequest

// optional .bgs.protocol.account.v1.AccountReference ref = 1;
inline bool GetAccountRequest::has_ref() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetAccountRequest::set_has_ref() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetAccountRequest::clear_has_ref() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetAccountRequest::clear_ref() {
  if (ref_ != NULL) ref_->::bgs::protocol::account::v1::AccountReference::Clear();
  clear_has_ref();
}
inline const ::bgs::protocol::account::v1::AccountReference& GetAccountRequest::ref() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.ref)
  return ref_ != NULL ? *ref_ : *default_instance_->ref_;
}
inline ::bgs::protocol::account::v1::AccountReference* GetAccountRequest::mutable_ref() {
  set_has_ref();
  if (ref_ == NULL) ref_ = new ::bgs::protocol::account::v1::AccountReference;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountRequest.ref)
  return ref_;
}
inline ::bgs::protocol::account::v1::AccountReference* GetAccountRequest::release_ref() {
  clear_has_ref();
  ::bgs::protocol::account::v1::AccountReference* temp = ref_;
  ref_ = NULL;
  return temp;
}
inline void GetAccountRequest::set_allocated_ref(::bgs::protocol::account::v1::AccountReference* ref) {
  delete ref_;
  ref_ = ref;
  if (ref) {
    set_has_ref();
  } else {
    clear_has_ref();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountRequest.ref)
}

// optional bool reload = 2 [default = false];
inline bool GetAccountRequest::has_reload() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetAccountRequest::set_has_reload() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetAccountRequest::clear_has_reload() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetAccountRequest::clear_reload() {
  reload_ = false;
  clear_has_reload();
}
inline bool GetAccountRequest::reload() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.reload)
  return reload_;
}
inline void GetAccountRequest::set_reload(bool value) {
  set_has_reload();
  reload_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountRequest.reload)
}

// optional bool fetch_all = 10 [default = false];
inline bool GetAccountRequest::has_fetch_all() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GetAccountRequest::set_has_fetch_all() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GetAccountRequest::clear_has_fetch_all() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GetAccountRequest::clear_fetch_all() {
  fetch_all_ = false;
  clear_has_fetch_all();
}
inline bool GetAccountRequest::fetch_all() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.fetch_all)
  return fetch_all_;
}
inline void GetAccountRequest::set_fetch_all(bool value) {
  set_has_fetch_all();
  fetch_all_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountRequest.fetch_all)
}

// optional bool fetch_blob = 11 [default = false];
inline bool GetAccountRequest::has_fetch_blob() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GetAccountRequest::set_has_fetch_blob() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GetAccountRequest::clear_has_fetch_blob() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GetAccountRequest::clear_fetch_blob() {
  fetch_blob_ = false;
  clear_has_fetch_blob();
}
inline bool GetAccountRequest::fetch_blob() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.fetch_blob)
  return fetch_blob_;
}
inline void GetAccountRequest::set_fetch_blob(bool value) {
  set_has_fetch_blob();
  fetch_blob_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountRequest.fetch_blob)
}

// optional bool fetch_id = 12 [default = false];
inline bool GetAccountRequest::has_fetch_id() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void GetAccountRequest::set_has_fetch_id() {
  _has_bits_[0] |= 0x00000010u;
}
inline void GetAccountRequest::clear_has_fetch_id() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void GetAccountRequest::clear_fetch_id() {
  fetch_id_ = false;
  clear_has_fetch_id();
}
inline bool GetAccountRequest::fetch_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.fetch_id)
  return fetch_id_;
}
inline void GetAccountRequest::set_fetch_id(bool value) {
  set_has_fetch_id();
  fetch_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountRequest.fetch_id)
}

// optional bool fetch_email = 13 [default = false];
inline bool GetAccountRequest::has_fetch_email() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void GetAccountRequest::set_has_fetch_email() {
  _has_bits_[0] |= 0x00000020u;
}
inline void GetAccountRequest::clear_has_fetch_email() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void GetAccountRequest::clear_fetch_email() {
  fetch_email_ = false;
  clear_has_fetch_email();
}
inline bool GetAccountRequest::fetch_email() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.fetch_email)
  return fetch_email_;
}
inline void GetAccountRequest::set_fetch_email(bool value) {
  set_has_fetch_email();
  fetch_email_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountRequest.fetch_email)
}

// optional bool fetch_battle_tag = 14 [default = false];
inline bool GetAccountRequest::has_fetch_battle_tag() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void GetAccountRequest::set_has_fetch_battle_tag() {
  _has_bits_[0] |= 0x00000040u;
}
inline void GetAccountRequest::clear_has_fetch_battle_tag() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void GetAccountRequest::clear_fetch_battle_tag() {
  fetch_battle_tag_ = false;
  clear_has_fetch_battle_tag();
}
inline bool GetAccountRequest::fetch_battle_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.fetch_battle_tag)
  return fetch_battle_tag_;
}
inline void GetAccountRequest::set_fetch_battle_tag(bool value) {
  set_has_fetch_battle_tag();
  fetch_battle_tag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountRequest.fetch_battle_tag)
}

// optional bool fetch_full_name = 15 [default = false];
inline bool GetAccountRequest::has_fetch_full_name() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void GetAccountRequest::set_has_fetch_full_name() {
  _has_bits_[0] |= 0x00000080u;
}
inline void GetAccountRequest::clear_has_fetch_full_name() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void GetAccountRequest::clear_fetch_full_name() {
  fetch_full_name_ = false;
  clear_has_fetch_full_name();
}
inline bool GetAccountRequest::fetch_full_name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.fetch_full_name)
  return fetch_full_name_;
}
inline void GetAccountRequest::set_fetch_full_name(bool value) {
  set_has_fetch_full_name();
  fetch_full_name_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountRequest.fetch_full_name)
}

// optional bool fetch_links = 16 [default = false];
inline bool GetAccountRequest::has_fetch_links() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void GetAccountRequest::set_has_fetch_links() {
  _has_bits_[0] |= 0x00000100u;
}
inline void GetAccountRequest::clear_has_fetch_links() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void GetAccountRequest::clear_fetch_links() {
  fetch_links_ = false;
  clear_has_fetch_links();
}
inline bool GetAccountRequest::fetch_links() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.fetch_links)
  return fetch_links_;
}
inline void GetAccountRequest::set_fetch_links(bool value) {
  set_has_fetch_links();
  fetch_links_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountRequest.fetch_links)
}

// optional bool fetch_parental_controls = 17 [default = false];
inline bool GetAccountRequest::has_fetch_parental_controls() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void GetAccountRequest::set_has_fetch_parental_controls() {
  _has_bits_[0] |= 0x00000200u;
}
inline void GetAccountRequest::clear_has_fetch_parental_controls() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void GetAccountRequest::clear_fetch_parental_controls() {
  fetch_parental_controls_ = false;
  clear_has_fetch_parental_controls();
}
inline bool GetAccountRequest::fetch_parental_controls() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.fetch_parental_controls)
  return fetch_parental_controls_;
}
inline void GetAccountRequest::set_fetch_parental_controls(bool value) {
  set_has_fetch_parental_controls();
  fetch_parental_controls_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountRequest.fetch_parental_controls)
}

// optional bool fetch_cais_id = 18 [default = false];
inline bool GetAccountRequest::has_fetch_cais_id() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void GetAccountRequest::set_has_fetch_cais_id() {
  _has_bits_[0] |= 0x00000400u;
}
inline void GetAccountRequest::clear_has_fetch_cais_id() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void GetAccountRequest::clear_fetch_cais_id() {
  fetch_cais_id_ = false;
  clear_has_fetch_cais_id();
}
inline bool GetAccountRequest::fetch_cais_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountRequest.fetch_cais_id)
  return fetch_cais_id_;
}
inline void GetAccountRequest::set_fetch_cais_id(bool value) {
  set_has_fetch_cais_id();
  fetch_cais_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountRequest.fetch_cais_id)
}

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

// GetAccountResponse

// optional .bgs.protocol.account.v1.AccountBlob blob = 11;
inline bool GetAccountResponse::has_blob() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetAccountResponse::set_has_blob() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetAccountResponse::clear_has_blob() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetAccountResponse::clear_blob() {
  if (blob_ != NULL) blob_->::bgs::protocol::account::v1::AccountBlob::Clear();
  clear_has_blob();
}
inline const ::bgs::protocol::account::v1::AccountBlob& GetAccountResponse::blob() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountResponse.blob)
  return blob_ != NULL ? *blob_ : *default_instance_->blob_;
}
inline ::bgs::protocol::account::v1::AccountBlob* GetAccountResponse::mutable_blob() {
  set_has_blob();
  if (blob_ == NULL) blob_ = new ::bgs::protocol::account::v1::AccountBlob;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountResponse.blob)
  return blob_;
}
inline ::bgs::protocol::account::v1::AccountBlob* GetAccountResponse::release_blob() {
  clear_has_blob();
  ::bgs::protocol::account::v1::AccountBlob* temp = blob_;
  blob_ = NULL;
  return temp;
}
inline void GetAccountResponse::set_allocated_blob(::bgs::protocol::account::v1::AccountBlob* blob) {
  delete blob_;
  blob_ = blob;
  if (blob) {
    set_has_blob();
  } else {
    clear_has_blob();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountResponse.blob)
}

// optional .bgs.protocol.account.v1.AccountId id = 12;
inline bool GetAccountResponse::has_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetAccountResponse::set_has_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetAccountResponse::clear_has_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetAccountResponse::clear_id() {
  if (id_ != NULL) id_->::bgs::protocol::account::v1::AccountId::Clear();
  clear_has_id();
}
inline const ::bgs::protocol::account::v1::AccountId& GetAccountResponse::id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountResponse.id)
  return id_ != NULL ? *id_ : *default_instance_->id_;
}
inline ::bgs::protocol::account::v1::AccountId* GetAccountResponse::mutable_id() {
  set_has_id();
  if (id_ == NULL) id_ = new ::bgs::protocol::account::v1::AccountId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountResponse.id)
  return id_;
}
inline ::bgs::protocol::account::v1::AccountId* GetAccountResponse::release_id() {
  clear_has_id();
  ::bgs::protocol::account::v1::AccountId* temp = id_;
  id_ = NULL;
  return temp;
}
inline void GetAccountResponse::set_allocated_id(::bgs::protocol::account::v1::AccountId* id) {
  delete id_;
  id_ = id;
  if (id) {
    set_has_id();
  } else {
    clear_has_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountResponse.id)
}

// repeated string email = 13;
inline int GetAccountResponse::email_size() const {
  return email_.size();
}
inline void GetAccountResponse::clear_email() {
  email_.Clear();
}
inline const ::std::string& GetAccountResponse::email(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountResponse.email)
  return email_.Get(index);
}
inline ::std::string* GetAccountResponse::mutable_email(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountResponse.email)
  return email_.Mutable(index);
}
inline void GetAccountResponse::set_email(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountResponse.email)
  email_.Mutable(index)->assign(value);
}
inline void GetAccountResponse::set_email(int index, const char* value) {
  email_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GetAccountResponse.email)
}
inline void GetAccountResponse::set_email(int index, const char* value, size_t size) {
  email_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GetAccountResponse.email)
}
inline ::std::string* GetAccountResponse::add_email() {
  return email_.Add();
}
inline void GetAccountResponse::add_email(const ::std::string& value) {
  email_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.GetAccountResponse.email)
}
inline void GetAccountResponse::add_email(const char* value) {
  email_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:bgs.protocol.account.v1.GetAccountResponse.email)
}
inline void GetAccountResponse::add_email(const char* value, size_t size) {
  email_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:bgs.protocol.account.v1.GetAccountResponse.email)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
GetAccountResponse::email() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.GetAccountResponse.email)
  return email_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
GetAccountResponse::mutable_email() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.GetAccountResponse.email)
  return &email_;
}

// optional string battle_tag = 14;
inline bool GetAccountResponse::has_battle_tag() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GetAccountResponse::set_has_battle_tag() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GetAccountResponse::clear_has_battle_tag() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GetAccountResponse::clear_battle_tag() {
  if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_->clear();
  }
  clear_has_battle_tag();
}
inline const ::std::string& GetAccountResponse::battle_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountResponse.battle_tag)
  return *battle_tag_;
}
inline void GetAccountResponse::set_battle_tag(const ::std::string& value) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountResponse.battle_tag)
}
inline void GetAccountResponse::set_battle_tag(const char* value) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GetAccountResponse.battle_tag)
}
inline void GetAccountResponse::set_battle_tag(const char* value, size_t size) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GetAccountResponse.battle_tag)
}
inline ::std::string* GetAccountResponse::mutable_battle_tag() {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountResponse.battle_tag)
  return battle_tag_;
}
inline ::std::string* GetAccountResponse::release_battle_tag() {
  clear_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = battle_tag_;
    battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GetAccountResponse::set_allocated_battle_tag(::std::string* battle_tag) {
  if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete battle_tag_;
  }
  if (battle_tag) {
    set_has_battle_tag();
    battle_tag_ = battle_tag;
  } else {
    clear_has_battle_tag();
    battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountResponse.battle_tag)
}

// optional string full_name = 15;
inline bool GetAccountResponse::has_full_name() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void GetAccountResponse::set_has_full_name() {
  _has_bits_[0] |= 0x00000010u;
}
inline void GetAccountResponse::clear_has_full_name() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void GetAccountResponse::clear_full_name() {
  if (full_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_->clear();
  }
  clear_has_full_name();
}
inline const ::std::string& GetAccountResponse::full_name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountResponse.full_name)
  return *full_name_;
}
inline void GetAccountResponse::set_full_name(const ::std::string& value) {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  full_name_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountResponse.full_name)
}
inline void GetAccountResponse::set_full_name(const char* value) {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  full_name_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GetAccountResponse.full_name)
}
inline void GetAccountResponse::set_full_name(const char* value, size_t size) {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  full_name_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GetAccountResponse.full_name)
}
inline ::std::string* GetAccountResponse::mutable_full_name() {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountResponse.full_name)
  return full_name_;
}
inline ::std::string* GetAccountResponse::release_full_name() {
  clear_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = full_name_;
    full_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GetAccountResponse::set_allocated_full_name(::std::string* full_name) {
  if (full_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete full_name_;
  }
  if (full_name) {
    set_has_full_name();
    full_name_ = full_name;
  } else {
    clear_has_full_name();
    full_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountResponse.full_name)
}

// repeated .bgs.protocol.account.v1.GameAccountLink links = 16;
inline int GetAccountResponse::links_size() const {
  return links_.size();
}
inline void GetAccountResponse::clear_links() {
  links_.Clear();
}
inline const ::bgs::protocol::account::v1::GameAccountLink& GetAccountResponse::links(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountResponse.links)
  return links_.Get(index);
}
inline ::bgs::protocol::account::v1::GameAccountLink* GetAccountResponse::mutable_links(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountResponse.links)
  return links_.Mutable(index);
}
inline ::bgs::protocol::account::v1::GameAccountLink* GetAccountResponse::add_links() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.GetAccountResponse.links)
  return links_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountLink >&
GetAccountResponse::links() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.GetAccountResponse.links)
  return links_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountLink >*
GetAccountResponse::mutable_links() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.GetAccountResponse.links)
  return &links_;
}

// optional .bgs.protocol.account.v1.ParentalControlInfo parental_control_info = 17;
inline bool GetAccountResponse::has_parental_control_info() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void GetAccountResponse::set_has_parental_control_info() {
  _has_bits_[0] |= 0x00000040u;
}
inline void GetAccountResponse::clear_has_parental_control_info() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void GetAccountResponse::clear_parental_control_info() {
  if (parental_control_info_ != NULL) parental_control_info_->::bgs::protocol::account::v1::ParentalControlInfo::Clear();
  clear_has_parental_control_info();
}
inline const ::bgs::protocol::account::v1::ParentalControlInfo& GetAccountResponse::parental_control_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountResponse.parental_control_info)
  return parental_control_info_ != NULL ? *parental_control_info_ : *default_instance_->parental_control_info_;
}
inline ::bgs::protocol::account::v1::ParentalControlInfo* GetAccountResponse::mutable_parental_control_info() {
  set_has_parental_control_info();
  if (parental_control_info_ == NULL) parental_control_info_ = new ::bgs::protocol::account::v1::ParentalControlInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountResponse.parental_control_info)
  return parental_control_info_;
}
inline ::bgs::protocol::account::v1::ParentalControlInfo* GetAccountResponse::release_parental_control_info() {
  clear_has_parental_control_info();
  ::bgs::protocol::account::v1::ParentalControlInfo* temp = parental_control_info_;
  parental_control_info_ = NULL;
  return temp;
}
inline void GetAccountResponse::set_allocated_parental_control_info(::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info) {
  delete parental_control_info_;
  parental_control_info_ = parental_control_info;
  if (parental_control_info) {
    set_has_parental_control_info();
  } else {
    clear_has_parental_control_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountResponse.parental_control_info)
}

// optional string cais_id = 18;
inline bool GetAccountResponse::has_cais_id() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void GetAccountResponse::set_has_cais_id() {
  _has_bits_[0] |= 0x00000080u;
}
inline void GetAccountResponse::clear_has_cais_id() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void GetAccountResponse::clear_cais_id() {
  if (cais_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_->clear();
  }
  clear_has_cais_id();
}
inline const ::std::string& GetAccountResponse::cais_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountResponse.cais_id)
  return *cais_id_;
}
inline void GetAccountResponse::set_cais_id(const ::std::string& value) {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  cais_id_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountResponse.cais_id)
}
inline void GetAccountResponse::set_cais_id(const char* value) {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  cais_id_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GetAccountResponse.cais_id)
}
inline void GetAccountResponse::set_cais_id(const char* value, size_t size) {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  cais_id_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GetAccountResponse.cais_id)
}
inline ::std::string* GetAccountResponse::mutable_cais_id() {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountResponse.cais_id)
  return cais_id_;
}
inline ::std::string* GetAccountResponse::release_cais_id() {
  clear_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = cais_id_;
    cais_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GetAccountResponse::set_allocated_cais_id(::std::string* cais_id) {
  if (cais_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete cais_id_;
  }
  if (cais_id) {
    set_has_cais_id();
    cais_id_ = cais_id;
  } else {
    clear_has_cais_id();
    cais_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountResponse.cais_id)
}

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

// CreateGameAccountRequest

// optional .bgs.protocol.account.v1.AccountId account = 1;
inline bool CreateGameAccountRequest::has_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void CreateGameAccountRequest::set_has_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void CreateGameAccountRequest::clear_has_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void CreateGameAccountRequest::clear_account() {
  if (account_ != NULL) account_->::bgs::protocol::account::v1::AccountId::Clear();
  clear_has_account();
}
inline const ::bgs::protocol::account::v1::AccountId& CreateGameAccountRequest::account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CreateGameAccountRequest.account)
  return account_ != NULL ? *account_ : *default_instance_->account_;
}
inline ::bgs::protocol::account::v1::AccountId* CreateGameAccountRequest::mutable_account() {
  set_has_account();
  if (account_ == NULL) account_ = new ::bgs::protocol::account::v1::AccountId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.CreateGameAccountRequest.account)
  return account_;
}
inline ::bgs::protocol::account::v1::AccountId* CreateGameAccountRequest::release_account() {
  clear_has_account();
  ::bgs::protocol::account::v1::AccountId* temp = account_;
  account_ = NULL;
  return temp;
}
inline void CreateGameAccountRequest::set_allocated_account(::bgs::protocol::account::v1::AccountId* account) {
  delete account_;
  account_ = account;
  if (account) {
    set_has_account();
  } else {
    clear_has_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.CreateGameAccountRequest.account)
}

// optional uint32 region = 2;
inline bool CreateGameAccountRequest::has_region() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void CreateGameAccountRequest::set_has_region() {
  _has_bits_[0] |= 0x00000002u;
}
inline void CreateGameAccountRequest::clear_has_region() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void CreateGameAccountRequest::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 CreateGameAccountRequest::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CreateGameAccountRequest.region)
  return region_;
}
inline void CreateGameAccountRequest::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.CreateGameAccountRequest.region)
}

// optional fixed32 program = 3;
inline bool CreateGameAccountRequest::has_program() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void CreateGameAccountRequest::set_has_program() {
  _has_bits_[0] |= 0x00000004u;
}
inline void CreateGameAccountRequest::clear_has_program() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void CreateGameAccountRequest::clear_program() {
  program_ = 0u;
  clear_has_program();
}
inline ::google::protobuf::uint32 CreateGameAccountRequest::program() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CreateGameAccountRequest.program)
  return program_;
}
inline void CreateGameAccountRequest::set_program(::google::protobuf::uint32 value) {
  set_has_program();
  program_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.CreateGameAccountRequest.program)
}

// optional uint32 realm_permissions = 4 [default = 0];
inline bool CreateGameAccountRequest::has_realm_permissions() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void CreateGameAccountRequest::set_has_realm_permissions() {
  _has_bits_[0] |= 0x00000008u;
}
inline void CreateGameAccountRequest::clear_has_realm_permissions() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void CreateGameAccountRequest::clear_realm_permissions() {
  realm_permissions_ = 0u;
  clear_has_realm_permissions();
}
inline ::google::protobuf::uint32 CreateGameAccountRequest::realm_permissions() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CreateGameAccountRequest.realm_permissions)
  return realm_permissions_;
}
inline void CreateGameAccountRequest::set_realm_permissions(::google::protobuf::uint32 value) {
  set_has_realm_permissions();
  realm_permissions_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.CreateGameAccountRequest.realm_permissions)
}

// optional uint32 account_region = 5;
inline bool CreateGameAccountRequest::has_account_region() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void CreateGameAccountRequest::set_has_account_region() {
  _has_bits_[0] |= 0x00000010u;
}
inline void CreateGameAccountRequest::clear_has_account_region() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void CreateGameAccountRequest::clear_account_region() {
  account_region_ = 0u;
  clear_has_account_region();
}
inline ::google::protobuf::uint32 CreateGameAccountRequest::account_region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CreateGameAccountRequest.account_region)
  return account_region_;
}
inline void CreateGameAccountRequest::set_account_region(::google::protobuf::uint32 value) {
  set_has_account_region();
  account_region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.CreateGameAccountRequest.account_region)
}

// optional fixed32 platform = 6;
inline bool CreateGameAccountRequest::has_platform() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void CreateGameAccountRequest::set_has_platform() {
  _has_bits_[0] |= 0x00000020u;
}
inline void CreateGameAccountRequest::clear_has_platform() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void CreateGameAccountRequest::clear_platform() {
  platform_ = 0u;
  clear_has_platform();
}
inline ::google::protobuf::uint32 CreateGameAccountRequest::platform() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CreateGameAccountRequest.platform)
  return platform_;
}
inline void CreateGameAccountRequest::set_platform(::google::protobuf::uint32 value) {
  set_has_platform();
  platform_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.CreateGameAccountRequest.platform)
}

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

// CreateGameAccountResponse

// optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
inline bool CreateGameAccountResponse::has_game_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void CreateGameAccountResponse::set_has_game_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void CreateGameAccountResponse::clear_has_game_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void CreateGameAccountResponse::clear_game_account() {
  if (game_account_ != NULL) game_account_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
  clear_has_game_account();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& CreateGameAccountResponse::game_account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CreateGameAccountResponse.game_account)
  return game_account_ != NULL ? *game_account_ : *default_instance_->game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* CreateGameAccountResponse::mutable_game_account() {
  set_has_game_account();
  if (game_account_ == NULL) game_account_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.CreateGameAccountResponse.game_account)
  return game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* CreateGameAccountResponse::release_game_account() {
  clear_has_game_account();
  ::bgs::protocol::account::v1::GameAccountHandle* temp = game_account_;
  game_account_ = NULL;
  return temp;
}
inline void CreateGameAccountResponse::set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account) {
  delete game_account_;
  game_account_ = game_account;
  if (game_account) {
    set_has_game_account();
  } else {
    clear_has_game_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.CreateGameAccountResponse.game_account)
}

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

// CacheExpireRequest

// repeated .bgs.protocol.account.v1.AccountId account = 1;
inline int CacheExpireRequest::account_size() const {
  return account_.size();
}
inline void CacheExpireRequest::clear_account() {
  account_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountId& CacheExpireRequest::account(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CacheExpireRequest.account)
  return account_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountId* CacheExpireRequest::mutable_account(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.CacheExpireRequest.account)
  return account_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountId* CacheExpireRequest::add_account() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.CacheExpireRequest.account)
  return account_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountId >&
CacheExpireRequest::account() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.CacheExpireRequest.account)
  return account_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountId >*
CacheExpireRequest::mutable_account() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.CacheExpireRequest.account)
  return &account_;
}

// repeated .bgs.protocol.account.v1.GameAccountHandle game_account = 2;
inline int CacheExpireRequest::game_account_size() const {
  return game_account_.size();
}
inline void CacheExpireRequest::clear_game_account() {
  game_account_.Clear();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& CacheExpireRequest::game_account(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CacheExpireRequest.game_account)
  return game_account_.Get(index);
}
inline ::bgs::protocol::account::v1::GameAccountHandle* CacheExpireRequest::mutable_game_account(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.CacheExpireRequest.game_account)
  return game_account_.Mutable(index);
}
inline ::bgs::protocol::account::v1::GameAccountHandle* CacheExpireRequest::add_game_account() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.CacheExpireRequest.game_account)
  return game_account_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountHandle >&
CacheExpireRequest::game_account() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.CacheExpireRequest.game_account)
  return game_account_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountHandle >*
CacheExpireRequest::mutable_game_account() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.CacheExpireRequest.game_account)
  return &game_account_;
}

// repeated string email = 3;
inline int CacheExpireRequest::email_size() const {
  return email_.size();
}
inline void CacheExpireRequest::clear_email() {
  email_.Clear();
}
inline const ::std::string& CacheExpireRequest::email(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CacheExpireRequest.email)
  return email_.Get(index);
}
inline ::std::string* CacheExpireRequest::mutable_email(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.CacheExpireRequest.email)
  return email_.Mutable(index);
}
inline void CacheExpireRequest::set_email(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.CacheExpireRequest.email)
  email_.Mutable(index)->assign(value);
}
inline void CacheExpireRequest::set_email(int index, const char* value) {
  email_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.CacheExpireRequest.email)
}
inline void CacheExpireRequest::set_email(int index, const char* value, size_t size) {
  email_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.CacheExpireRequest.email)
}
inline ::std::string* CacheExpireRequest::add_email() {
  return email_.Add();
}
inline void CacheExpireRequest::add_email(const ::std::string& value) {
  email_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.CacheExpireRequest.email)
}
inline void CacheExpireRequest::add_email(const char* value) {
  email_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:bgs.protocol.account.v1.CacheExpireRequest.email)
}
inline void CacheExpireRequest::add_email(const char* value, size_t size) {
  email_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:bgs.protocol.account.v1.CacheExpireRequest.email)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
CacheExpireRequest::email() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.CacheExpireRequest.email)
  return email_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
CacheExpireRequest::mutable_email() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.CacheExpireRequest.email)
  return &email_;
}

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

// CredentialUpdateRequest

// required .bgs.protocol.account.v1.AccountId account = 1;
inline bool CredentialUpdateRequest::has_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void CredentialUpdateRequest::set_has_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void CredentialUpdateRequest::clear_has_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void CredentialUpdateRequest::clear_account() {
  if (account_ != NULL) account_->::bgs::protocol::account::v1::AccountId::Clear();
  clear_has_account();
}
inline const ::bgs::protocol::account::v1::AccountId& CredentialUpdateRequest::account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CredentialUpdateRequest.account)
  return account_ != NULL ? *account_ : *default_instance_->account_;
}
inline ::bgs::protocol::account::v1::AccountId* CredentialUpdateRequest::mutable_account() {
  set_has_account();
  if (account_ == NULL) account_ = new ::bgs::protocol::account::v1::AccountId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.CredentialUpdateRequest.account)
  return account_;
}
inline ::bgs::protocol::account::v1::AccountId* CredentialUpdateRequest::release_account() {
  clear_has_account();
  ::bgs::protocol::account::v1::AccountId* temp = account_;
  account_ = NULL;
  return temp;
}
inline void CredentialUpdateRequest::set_allocated_account(::bgs::protocol::account::v1::AccountId* account) {
  delete account_;
  account_ = account;
  if (account) {
    set_has_account();
  } else {
    clear_has_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.CredentialUpdateRequest.account)
}

// repeated .bgs.protocol.account.v1.AccountCredential old_credentials = 2;
inline int CredentialUpdateRequest::old_credentials_size() const {
  return old_credentials_.size();
}
inline void CredentialUpdateRequest::clear_old_credentials() {
  old_credentials_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountCredential& CredentialUpdateRequest::old_credentials(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CredentialUpdateRequest.old_credentials)
  return old_credentials_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountCredential* CredentialUpdateRequest::mutable_old_credentials(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.CredentialUpdateRequest.old_credentials)
  return old_credentials_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountCredential* CredentialUpdateRequest::add_old_credentials() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.CredentialUpdateRequest.old_credentials)
  return old_credentials_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >&
CredentialUpdateRequest::old_credentials() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.CredentialUpdateRequest.old_credentials)
  return old_credentials_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >*
CredentialUpdateRequest::mutable_old_credentials() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.CredentialUpdateRequest.old_credentials)
  return &old_credentials_;
}

// repeated .bgs.protocol.account.v1.AccountCredential new_credentials = 3;
inline int CredentialUpdateRequest::new_credentials_size() const {
  return new_credentials_.size();
}
inline void CredentialUpdateRequest::clear_new_credentials() {
  new_credentials_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountCredential& CredentialUpdateRequest::new_credentials(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CredentialUpdateRequest.new_credentials)
  return new_credentials_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountCredential* CredentialUpdateRequest::mutable_new_credentials(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.CredentialUpdateRequest.new_credentials)
  return new_credentials_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountCredential* CredentialUpdateRequest::add_new_credentials() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.CredentialUpdateRequest.new_credentials)
  return new_credentials_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >&
CredentialUpdateRequest::new_credentials() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.CredentialUpdateRequest.new_credentials)
  return new_credentials_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >*
CredentialUpdateRequest::mutable_new_credentials() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.CredentialUpdateRequest.new_credentials)
  return &new_credentials_;
}

// optional uint32 region = 4;
inline bool CredentialUpdateRequest::has_region() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void CredentialUpdateRequest::set_has_region() {
  _has_bits_[0] |= 0x00000008u;
}
inline void CredentialUpdateRequest::clear_has_region() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void CredentialUpdateRequest::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 CredentialUpdateRequest::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CredentialUpdateRequest.region)
  return region_;
}
inline void CredentialUpdateRequest::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.CredentialUpdateRequest.region)
}

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

// CredentialUpdateResponse

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

// AccountFlagUpdateRequest

// optional .bgs.protocol.account.v1.AccountId account = 1;
inline bool AccountFlagUpdateRequest::has_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountFlagUpdateRequest::set_has_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountFlagUpdateRequest::clear_has_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountFlagUpdateRequest::clear_account() {
  if (account_ != NULL) account_->::bgs::protocol::account::v1::AccountId::Clear();
  clear_has_account();
}
inline const ::bgs::protocol::account::v1::AccountId& AccountFlagUpdateRequest::account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFlagUpdateRequest.account)
  return account_ != NULL ? *account_ : *default_instance_->account_;
}
inline ::bgs::protocol::account::v1::AccountId* AccountFlagUpdateRequest::mutable_account() {
  set_has_account();
  if (account_ == NULL) account_ = new ::bgs::protocol::account::v1::AccountId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountFlagUpdateRequest.account)
  return account_;
}
inline ::bgs::protocol::account::v1::AccountId* AccountFlagUpdateRequest::release_account() {
  clear_has_account();
  ::bgs::protocol::account::v1::AccountId* temp = account_;
  account_ = NULL;
  return temp;
}
inline void AccountFlagUpdateRequest::set_allocated_account(::bgs::protocol::account::v1::AccountId* account) {
  delete account_;
  account_ = account;
  if (account) {
    set_has_account();
  } else {
    clear_has_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountFlagUpdateRequest.account)
}

// optional uint32 region = 2;
inline bool AccountFlagUpdateRequest::has_region() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountFlagUpdateRequest::set_has_region() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountFlagUpdateRequest::clear_has_region() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountFlagUpdateRequest::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 AccountFlagUpdateRequest::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFlagUpdateRequest.region)
  return region_;
}
inline void AccountFlagUpdateRequest::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFlagUpdateRequest.region)
}

// optional uint64 flag = 3;
inline bool AccountFlagUpdateRequest::has_flag() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void AccountFlagUpdateRequest::set_has_flag() {
  _has_bits_[0] |= 0x00000004u;
}
inline void AccountFlagUpdateRequest::clear_has_flag() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void AccountFlagUpdateRequest::clear_flag() {
  flag_ = GOOGLE_ULONGLONG(0);
  clear_has_flag();
}
inline ::google::protobuf::uint64 AccountFlagUpdateRequest::flag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFlagUpdateRequest.flag)
  return flag_;
}
inline void AccountFlagUpdateRequest::set_flag(::google::protobuf::uint64 value) {
  set_has_flag();
  flag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFlagUpdateRequest.flag)
}

// optional bool active = 4;
inline bool AccountFlagUpdateRequest::has_active() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void AccountFlagUpdateRequest::set_has_active() {
  _has_bits_[0] |= 0x00000008u;
}
inline void AccountFlagUpdateRequest::clear_has_active() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void AccountFlagUpdateRequest::clear_active() {
  active_ = false;
  clear_has_active();
}
inline bool AccountFlagUpdateRequest::active() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFlagUpdateRequest.active)
  return active_;
}
inline void AccountFlagUpdateRequest::set_active(bool value) {
  set_has_active();
  active_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFlagUpdateRequest.active)
}

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

// GameAccountFlagUpdateRequest

// optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
inline bool GameAccountFlagUpdateRequest::has_game_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountFlagUpdateRequest::set_has_game_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountFlagUpdateRequest::clear_has_game_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountFlagUpdateRequest::clear_game_account() {
  if (game_account_ != NULL) game_account_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
  clear_has_game_account();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& GameAccountFlagUpdateRequest::game_account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFlagUpdateRequest.game_account)
  return game_account_ != NULL ? *game_account_ : *default_instance_->game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GameAccountFlagUpdateRequest::mutable_game_account() {
  set_has_game_account();
  if (game_account_ == NULL) game_account_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountFlagUpdateRequest.game_account)
  return game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GameAccountFlagUpdateRequest::release_game_account() {
  clear_has_game_account();
  ::bgs::protocol::account::v1::GameAccountHandle* temp = game_account_;
  game_account_ = NULL;
  return temp;
}
inline void GameAccountFlagUpdateRequest::set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account) {
  delete game_account_;
  game_account_ = game_account;
  if (game_account) {
    set_has_game_account();
  } else {
    clear_has_game_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountFlagUpdateRequest.game_account)
}

// optional uint64 flag = 2;
inline bool GameAccountFlagUpdateRequest::has_flag() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountFlagUpdateRequest::set_has_flag() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountFlagUpdateRequest::clear_has_flag() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountFlagUpdateRequest::clear_flag() {
  flag_ = GOOGLE_ULONGLONG(0);
  clear_has_flag();
}
inline ::google::protobuf::uint64 GameAccountFlagUpdateRequest::flag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFlagUpdateRequest.flag)
  return flag_;
}
inline void GameAccountFlagUpdateRequest::set_flag(::google::protobuf::uint64 value) {
  set_has_flag();
  flag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFlagUpdateRequest.flag)
}

// optional bool active = 3;
inline bool GameAccountFlagUpdateRequest::has_active() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameAccountFlagUpdateRequest::set_has_active() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameAccountFlagUpdateRequest::clear_has_active() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameAccountFlagUpdateRequest::clear_active() {
  active_ = false;
  clear_has_active();
}
inline bool GameAccountFlagUpdateRequest::active() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFlagUpdateRequest.active)
  return active_;
}
inline void GameAccountFlagUpdateRequest::set_active(bool value) {
  set_has_active();
  active_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFlagUpdateRequest.active)
}

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

// SubscriptionUpdateRequest

// repeated .bgs.protocol.account.v1.SubscriberReference ref = 2;
inline int SubscriptionUpdateRequest::ref_size() const {
  return ref_.size();
}
inline void SubscriptionUpdateRequest::clear_ref() {
  ref_.Clear();
}
inline const ::bgs::protocol::account::v1::SubscriberReference& SubscriptionUpdateRequest::ref(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.SubscriptionUpdateRequest.ref)
  return ref_.Get(index);
}
inline ::bgs::protocol::account::v1::SubscriberReference* SubscriptionUpdateRequest::mutable_ref(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.SubscriptionUpdateRequest.ref)
  return ref_.Mutable(index);
}
inline ::bgs::protocol::account::v1::SubscriberReference* SubscriptionUpdateRequest::add_ref() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.SubscriptionUpdateRequest.ref)
  return ref_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::SubscriberReference >&
SubscriptionUpdateRequest::ref() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.SubscriptionUpdateRequest.ref)
  return ref_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::SubscriberReference >*
SubscriptionUpdateRequest::mutable_ref() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.SubscriptionUpdateRequest.ref)
  return &ref_;
}

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

// SubscriptionUpdateResponse

// repeated .bgs.protocol.account.v1.SubscriberReference ref = 1;
inline int SubscriptionUpdateResponse::ref_size() const {
  return ref_.size();
}
inline void SubscriptionUpdateResponse::clear_ref() {
  ref_.Clear();
}
inline const ::bgs::protocol::account::v1::SubscriberReference& SubscriptionUpdateResponse::ref(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.SubscriptionUpdateResponse.ref)
  return ref_.Get(index);
}
inline ::bgs::protocol::account::v1::SubscriberReference* SubscriptionUpdateResponse::mutable_ref(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.SubscriptionUpdateResponse.ref)
  return ref_.Mutable(index);
}
inline ::bgs::protocol::account::v1::SubscriberReference* SubscriptionUpdateResponse::add_ref() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.SubscriptionUpdateResponse.ref)
  return ref_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::SubscriberReference >&
SubscriptionUpdateResponse::ref() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.SubscriptionUpdateResponse.ref)
  return ref_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::SubscriberReference >*
SubscriptionUpdateResponse::mutable_ref() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.SubscriptionUpdateResponse.ref)
  return &ref_;
}

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

// IsIgrAddressRequest

// optional string client_address = 1;
inline bool IsIgrAddressRequest::has_client_address() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void IsIgrAddressRequest::set_has_client_address() {
  _has_bits_[0] |= 0x00000001u;
}
inline void IsIgrAddressRequest::clear_has_client_address() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void IsIgrAddressRequest::clear_client_address() {
  if (client_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_address_->clear();
  }
  clear_has_client_address();
}
inline const ::std::string& IsIgrAddressRequest::client_address() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.IsIgrAddressRequest.client_address)
  return *client_address_;
}
inline void IsIgrAddressRequest::set_client_address(const ::std::string& value) {
  set_has_client_address();
  if (client_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_address_ = new ::std::string;
  }
  client_address_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.IsIgrAddressRequest.client_address)
}
inline void IsIgrAddressRequest::set_client_address(const char* value) {
  set_has_client_address();
  if (client_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_address_ = new ::std::string;
  }
  client_address_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.IsIgrAddressRequest.client_address)
}
inline void IsIgrAddressRequest::set_client_address(const char* value, size_t size) {
  set_has_client_address();
  if (client_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_address_ = new ::std::string;
  }
  client_address_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.IsIgrAddressRequest.client_address)
}
inline ::std::string* IsIgrAddressRequest::mutable_client_address() {
  set_has_client_address();
  if (client_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_address_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.IsIgrAddressRequest.client_address)
  return client_address_;
}
inline ::std::string* IsIgrAddressRequest::release_client_address() {
  clear_has_client_address();
  if (client_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = client_address_;
    client_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void IsIgrAddressRequest::set_allocated_client_address(::std::string* client_address) {
  if (client_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete client_address_;
  }
  if (client_address) {
    set_has_client_address();
    client_address_ = client_address;
  } else {
    clear_has_client_address();
    client_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.IsIgrAddressRequest.client_address)
}

// optional uint32 region = 2;
inline bool IsIgrAddressRequest::has_region() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void IsIgrAddressRequest::set_has_region() {
  _has_bits_[0] |= 0x00000002u;
}
inline void IsIgrAddressRequest::clear_has_region() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void IsIgrAddressRequest::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 IsIgrAddressRequest::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.IsIgrAddressRequest.region)
  return region_;
}
inline void IsIgrAddressRequest::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.IsIgrAddressRequest.region)
}

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

// AccountServiceRegion

// required uint32 id = 1;
inline bool AccountServiceRegion::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountServiceRegion::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountServiceRegion::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountServiceRegion::clear_id() {
  id_ = 0u;
  clear_has_id();
}
inline ::google::protobuf::uint32 AccountServiceRegion::id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountServiceRegion.id)
  return id_;
}
inline void AccountServiceRegion::set_id(::google::protobuf::uint32 value) {
  set_has_id();
  id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountServiceRegion.id)
}

// required string shard = 2;
inline bool AccountServiceRegion::has_shard() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountServiceRegion::set_has_shard() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountServiceRegion::clear_has_shard() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountServiceRegion::clear_shard() {
  if (shard_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    shard_->clear();
  }
  clear_has_shard();
}
inline const ::std::string& AccountServiceRegion::shard() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountServiceRegion.shard)
  return *shard_;
}
inline void AccountServiceRegion::set_shard(const ::std::string& value) {
  set_has_shard();
  if (shard_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    shard_ = new ::std::string;
  }
  shard_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountServiceRegion.shard)
}
inline void AccountServiceRegion::set_shard(const char* value) {
  set_has_shard();
  if (shard_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    shard_ = new ::std::string;
  }
  shard_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountServiceRegion.shard)
}
inline void AccountServiceRegion::set_shard(const char* value, size_t size) {
  set_has_shard();
  if (shard_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    shard_ = new ::std::string;
  }
  shard_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountServiceRegion.shard)
}
inline ::std::string* AccountServiceRegion::mutable_shard() {
  set_has_shard();
  if (shard_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    shard_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountServiceRegion.shard)
  return shard_;
}
inline ::std::string* AccountServiceRegion::release_shard() {
  clear_has_shard();
  if (shard_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = shard_;
    shard_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountServiceRegion::set_allocated_shard(::std::string* shard) {
  if (shard_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete shard_;
  }
  if (shard) {
    set_has_shard();
    shard_ = shard;
  } else {
    clear_has_shard();
    shard_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountServiceRegion.shard)
}

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

// AccountServiceConfig

// repeated .bgs.protocol.account.v1.AccountServiceRegion region = 1;
inline int AccountServiceConfig::region_size() const {
  return region_.size();
}
inline void AccountServiceConfig::clear_region() {
  region_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountServiceRegion& AccountServiceConfig::region(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountServiceConfig.region)
  return region_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountServiceRegion* AccountServiceConfig::mutable_region(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountServiceConfig.region)
  return region_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountServiceRegion* AccountServiceConfig::add_region() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountServiceConfig.region)
  return region_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountServiceRegion >&
AccountServiceConfig::region() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountServiceConfig.region)
  return region_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountServiceRegion >*
AccountServiceConfig::mutable_region() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountServiceConfig.region)
  return &region_;
}

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

// GetAccountStateRequest

// optional .bgs.protocol.EntityId entity_id = 1;
inline bool GetAccountStateRequest::has_entity_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetAccountStateRequest::set_has_entity_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetAccountStateRequest::clear_has_entity_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetAccountStateRequest::clear_entity_id() {
  if (entity_id_ != NULL) entity_id_->::bgs::protocol::EntityId::Clear();
  clear_has_entity_id();
}
inline const ::bgs::protocol::EntityId& GetAccountStateRequest::entity_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountStateRequest.entity_id)
  return entity_id_ != NULL ? *entity_id_ : *default_instance_->entity_id_;
}
inline ::bgs::protocol::EntityId* GetAccountStateRequest::mutable_entity_id() {
  set_has_entity_id();
  if (entity_id_ == NULL) entity_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountStateRequest.entity_id)
  return entity_id_;
}
inline ::bgs::protocol::EntityId* GetAccountStateRequest::release_entity_id() {
  clear_has_entity_id();
  ::bgs::protocol::EntityId* temp = entity_id_;
  entity_id_ = NULL;
  return temp;
}
inline void GetAccountStateRequest::set_allocated_entity_id(::bgs::protocol::EntityId* entity_id) {
  delete entity_id_;
  entity_id_ = entity_id;
  if (entity_id) {
    set_has_entity_id();
  } else {
    clear_has_entity_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountStateRequest.entity_id)
}

// optional uint32 program = 2;
inline bool GetAccountStateRequest::has_program() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetAccountStateRequest::set_has_program() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetAccountStateRequest::clear_has_program() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetAccountStateRequest::clear_program() {
  program_ = 0u;
  clear_has_program();
}
inline ::google::protobuf::uint32 GetAccountStateRequest::program() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountStateRequest.program)
  return program_;
}
inline void GetAccountStateRequest::set_program(::google::protobuf::uint32 value) {
  set_has_program();
  program_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountStateRequest.program)
}

// optional uint32 region = 3;
inline bool GetAccountStateRequest::has_region() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GetAccountStateRequest::set_has_region() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GetAccountStateRequest::clear_has_region() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GetAccountStateRequest::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 GetAccountStateRequest::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountStateRequest.region)
  return region_;
}
inline void GetAccountStateRequest::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAccountStateRequest.region)
}

// optional .bgs.protocol.account.v1.AccountFieldOptions options = 10;
inline bool GetAccountStateRequest::has_options() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GetAccountStateRequest::set_has_options() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GetAccountStateRequest::clear_has_options() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GetAccountStateRequest::clear_options() {
  if (options_ != NULL) options_->::bgs::protocol::account::v1::AccountFieldOptions::Clear();
  clear_has_options();
}
inline const ::bgs::protocol::account::v1::AccountFieldOptions& GetAccountStateRequest::options() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountStateRequest.options)
  return options_ != NULL ? *options_ : *default_instance_->options_;
}
inline ::bgs::protocol::account::v1::AccountFieldOptions* GetAccountStateRequest::mutable_options() {
  set_has_options();
  if (options_ == NULL) options_ = new ::bgs::protocol::account::v1::AccountFieldOptions;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountStateRequest.options)
  return options_;
}
inline ::bgs::protocol::account::v1::AccountFieldOptions* GetAccountStateRequest::release_options() {
  clear_has_options();
  ::bgs::protocol::account::v1::AccountFieldOptions* temp = options_;
  options_ = NULL;
  return temp;
}
inline void GetAccountStateRequest::set_allocated_options(::bgs::protocol::account::v1::AccountFieldOptions* options) {
  delete options_;
  options_ = options;
  if (options) {
    set_has_options();
  } else {
    clear_has_options();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountStateRequest.options)
}

// optional .bgs.protocol.account.v1.AccountFieldTags tags = 11;
inline bool GetAccountStateRequest::has_tags() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void GetAccountStateRequest::set_has_tags() {
  _has_bits_[0] |= 0x00000010u;
}
inline void GetAccountStateRequest::clear_has_tags() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void GetAccountStateRequest::clear_tags() {
  if (tags_ != NULL) tags_->::bgs::protocol::account::v1::AccountFieldTags::Clear();
  clear_has_tags();
}
inline const ::bgs::protocol::account::v1::AccountFieldTags& GetAccountStateRequest::tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountStateRequest.tags)
  return tags_ != NULL ? *tags_ : *default_instance_->tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* GetAccountStateRequest::mutable_tags() {
  set_has_tags();
  if (tags_ == NULL) tags_ = new ::bgs::protocol::account::v1::AccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountStateRequest.tags)
  return tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* GetAccountStateRequest::release_tags() {
  clear_has_tags();
  ::bgs::protocol::account::v1::AccountFieldTags* temp = tags_;
  tags_ = NULL;
  return temp;
}
inline void GetAccountStateRequest::set_allocated_tags(::bgs::protocol::account::v1::AccountFieldTags* tags) {
  delete tags_;
  tags_ = tags;
  if (tags) {
    set_has_tags();
  } else {
    clear_has_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountStateRequest.tags)
}

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

// GetAccountStateResponse

// optional .bgs.protocol.account.v1.AccountState state = 1;
inline bool GetAccountStateResponse::has_state() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetAccountStateResponse::set_has_state() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetAccountStateResponse::clear_has_state() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetAccountStateResponse::clear_state() {
  if (state_ != NULL) state_->::bgs::protocol::account::v1::AccountState::Clear();
  clear_has_state();
}
inline const ::bgs::protocol::account::v1::AccountState& GetAccountStateResponse::state() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountStateResponse.state)
  return state_ != NULL ? *state_ : *default_instance_->state_;
}
inline ::bgs::protocol::account::v1::AccountState* GetAccountStateResponse::mutable_state() {
  set_has_state();
  if (state_ == NULL) state_ = new ::bgs::protocol::account::v1::AccountState;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountStateResponse.state)
  return state_;
}
inline ::bgs::protocol::account::v1::AccountState* GetAccountStateResponse::release_state() {
  clear_has_state();
  ::bgs::protocol::account::v1::AccountState* temp = state_;
  state_ = NULL;
  return temp;
}
inline void GetAccountStateResponse::set_allocated_state(::bgs::protocol::account::v1::AccountState* state) {
  delete state_;
  state_ = state;
  if (state) {
    set_has_state();
  } else {
    clear_has_state();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountStateResponse.state)
}

// optional .bgs.protocol.account.v1.AccountFieldTags tags = 2;
inline bool GetAccountStateResponse::has_tags() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetAccountStateResponse::set_has_tags() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetAccountStateResponse::clear_has_tags() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetAccountStateResponse::clear_tags() {
  if (tags_ != NULL) tags_->::bgs::protocol::account::v1::AccountFieldTags::Clear();
  clear_has_tags();
}
inline const ::bgs::protocol::account::v1::AccountFieldTags& GetAccountStateResponse::tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAccountStateResponse.tags)
  return tags_ != NULL ? *tags_ : *default_instance_->tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* GetAccountStateResponse::mutable_tags() {
  set_has_tags();
  if (tags_ == NULL) tags_ = new ::bgs::protocol::account::v1::AccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAccountStateResponse.tags)
  return tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* GetAccountStateResponse::release_tags() {
  clear_has_tags();
  ::bgs::protocol::account::v1::AccountFieldTags* temp = tags_;
  tags_ = NULL;
  return temp;
}
inline void GetAccountStateResponse::set_allocated_tags(::bgs::protocol::account::v1::AccountFieldTags* tags) {
  delete tags_;
  tags_ = tags;
  if (tags) {
    set_has_tags();
  } else {
    clear_has_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAccountStateResponse.tags)
}

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

// GetGameAccountStateRequest

// optional .bgs.protocol.EntityId account_id = 1 [deprecated = true];
inline bool GetGameAccountStateRequest::has_account_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetGameAccountStateRequest::set_has_account_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetGameAccountStateRequest::clear_has_account_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetGameAccountStateRequest::clear_account_id() {
  if (account_id_ != NULL) account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_account_id();
}
inline const ::bgs::protocol::EntityId& GetGameAccountStateRequest::account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameAccountStateRequest.account_id)
  return account_id_ != NULL ? *account_id_ : *default_instance_->account_id_;
}
inline ::bgs::protocol::EntityId* GetGameAccountStateRequest::mutable_account_id() {
  set_has_account_id();
  if (account_id_ == NULL) account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameAccountStateRequest.account_id)
  return account_id_;
}
inline ::bgs::protocol::EntityId* GetGameAccountStateRequest::release_account_id() {
  clear_has_account_id();
  ::bgs::protocol::EntityId* temp = account_id_;
  account_id_ = NULL;
  return temp;
}
inline void GetGameAccountStateRequest::set_allocated_account_id(::bgs::protocol::EntityId* account_id) {
  delete account_id_;
  account_id_ = account_id;
  if (account_id) {
    set_has_account_id();
  } else {
    clear_has_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameAccountStateRequest.account_id)
}

// optional .bgs.protocol.EntityId game_account_id = 2;
inline bool GetGameAccountStateRequest::has_game_account_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetGameAccountStateRequest::set_has_game_account_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetGameAccountStateRequest::clear_has_game_account_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetGameAccountStateRequest::clear_game_account_id() {
  if (game_account_id_ != NULL) game_account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_game_account_id();
}
inline const ::bgs::protocol::EntityId& GetGameAccountStateRequest::game_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameAccountStateRequest.game_account_id)
  return game_account_id_ != NULL ? *game_account_id_ : *default_instance_->game_account_id_;
}
inline ::bgs::protocol::EntityId* GetGameAccountStateRequest::mutable_game_account_id() {
  set_has_game_account_id();
  if (game_account_id_ == NULL) game_account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameAccountStateRequest.game_account_id)
  return game_account_id_;
}
inline ::bgs::protocol::EntityId* GetGameAccountStateRequest::release_game_account_id() {
  clear_has_game_account_id();
  ::bgs::protocol::EntityId* temp = game_account_id_;
  game_account_id_ = NULL;
  return temp;
}
inline void GetGameAccountStateRequest::set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id) {
  delete game_account_id_;
  game_account_id_ = game_account_id;
  if (game_account_id) {
    set_has_game_account_id();
  } else {
    clear_has_game_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameAccountStateRequest.game_account_id)
}

// optional .bgs.protocol.account.v1.GameAccountFieldOptions options = 10;
inline bool GetGameAccountStateRequest::has_options() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GetGameAccountStateRequest::set_has_options() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GetGameAccountStateRequest::clear_has_options() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GetGameAccountStateRequest::clear_options() {
  if (options_ != NULL) options_->::bgs::protocol::account::v1::GameAccountFieldOptions::Clear();
  clear_has_options();
}
inline const ::bgs::protocol::account::v1::GameAccountFieldOptions& GetGameAccountStateRequest::options() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameAccountStateRequest.options)
  return options_ != NULL ? *options_ : *default_instance_->options_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldOptions* GetGameAccountStateRequest::mutable_options() {
  set_has_options();
  if (options_ == NULL) options_ = new ::bgs::protocol::account::v1::GameAccountFieldOptions;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameAccountStateRequest.options)
  return options_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldOptions* GetGameAccountStateRequest::release_options() {
  clear_has_options();
  ::bgs::protocol::account::v1::GameAccountFieldOptions* temp = options_;
  options_ = NULL;
  return temp;
}
inline void GetGameAccountStateRequest::set_allocated_options(::bgs::protocol::account::v1::GameAccountFieldOptions* options) {
  delete options_;
  options_ = options;
  if (options) {
    set_has_options();
  } else {
    clear_has_options();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameAccountStateRequest.options)
}

// optional .bgs.protocol.account.v1.GameAccountFieldTags tags = 11;
inline bool GetGameAccountStateRequest::has_tags() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GetGameAccountStateRequest::set_has_tags() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GetGameAccountStateRequest::clear_has_tags() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GetGameAccountStateRequest::clear_tags() {
  if (tags_ != NULL) tags_->::bgs::protocol::account::v1::GameAccountFieldTags::Clear();
  clear_has_tags();
}
inline const ::bgs::protocol::account::v1::GameAccountFieldTags& GetGameAccountStateRequest::tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameAccountStateRequest.tags)
  return tags_ != NULL ? *tags_ : *default_instance_->tags_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldTags* GetGameAccountStateRequest::mutable_tags() {
  set_has_tags();
  if (tags_ == NULL) tags_ = new ::bgs::protocol::account::v1::GameAccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameAccountStateRequest.tags)
  return tags_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldTags* GetGameAccountStateRequest::release_tags() {
  clear_has_tags();
  ::bgs::protocol::account::v1::GameAccountFieldTags* temp = tags_;
  tags_ = NULL;
  return temp;
}
inline void GetGameAccountStateRequest::set_allocated_tags(::bgs::protocol::account::v1::GameAccountFieldTags* tags) {
  delete tags_;
  tags_ = tags;
  if (tags) {
    set_has_tags();
  } else {
    clear_has_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameAccountStateRequest.tags)
}

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

// GetGameAccountStateResponse

// optional .bgs.protocol.account.v1.GameAccountState state = 1;
inline bool GetGameAccountStateResponse::has_state() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetGameAccountStateResponse::set_has_state() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetGameAccountStateResponse::clear_has_state() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetGameAccountStateResponse::clear_state() {
  if (state_ != NULL) state_->::bgs::protocol::account::v1::GameAccountState::Clear();
  clear_has_state();
}
inline const ::bgs::protocol::account::v1::GameAccountState& GetGameAccountStateResponse::state() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameAccountStateResponse.state)
  return state_ != NULL ? *state_ : *default_instance_->state_;
}
inline ::bgs::protocol::account::v1::GameAccountState* GetGameAccountStateResponse::mutable_state() {
  set_has_state();
  if (state_ == NULL) state_ = new ::bgs::protocol::account::v1::GameAccountState;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameAccountStateResponse.state)
  return state_;
}
inline ::bgs::protocol::account::v1::GameAccountState* GetGameAccountStateResponse::release_state() {
  clear_has_state();
  ::bgs::protocol::account::v1::GameAccountState* temp = state_;
  state_ = NULL;
  return temp;
}
inline void GetGameAccountStateResponse::set_allocated_state(::bgs::protocol::account::v1::GameAccountState* state) {
  delete state_;
  state_ = state;
  if (state) {
    set_has_state();
  } else {
    clear_has_state();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameAccountStateResponse.state)
}

// optional .bgs.protocol.account.v1.GameAccountFieldTags tags = 2;
inline bool GetGameAccountStateResponse::has_tags() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetGameAccountStateResponse::set_has_tags() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetGameAccountStateResponse::clear_has_tags() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetGameAccountStateResponse::clear_tags() {
  if (tags_ != NULL) tags_->::bgs::protocol::account::v1::GameAccountFieldTags::Clear();
  clear_has_tags();
}
inline const ::bgs::protocol::account::v1::GameAccountFieldTags& GetGameAccountStateResponse::tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameAccountStateResponse.tags)
  return tags_ != NULL ? *tags_ : *default_instance_->tags_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldTags* GetGameAccountStateResponse::mutable_tags() {
  set_has_tags();
  if (tags_ == NULL) tags_ = new ::bgs::protocol::account::v1::GameAccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameAccountStateResponse.tags)
  return tags_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldTags* GetGameAccountStateResponse::release_tags() {
  clear_has_tags();
  ::bgs::protocol::account::v1::GameAccountFieldTags* temp = tags_;
  tags_ = NULL;
  return temp;
}
inline void GetGameAccountStateResponse::set_allocated_tags(::bgs::protocol::account::v1::GameAccountFieldTags* tags) {
  delete tags_;
  tags_ = tags;
  if (tags) {
    set_has_tags();
  } else {
    clear_has_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameAccountStateResponse.tags)
}

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

// GetLicensesRequest

// optional .bgs.protocol.EntityId target_id = 1;
inline bool GetLicensesRequest::has_target_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetLicensesRequest::set_has_target_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetLicensesRequest::clear_has_target_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetLicensesRequest::clear_target_id() {
  if (target_id_ != NULL) target_id_->::bgs::protocol::EntityId::Clear();
  clear_has_target_id();
}
inline const ::bgs::protocol::EntityId& GetLicensesRequest::target_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetLicensesRequest.target_id)
  return target_id_ != NULL ? *target_id_ : *default_instance_->target_id_;
}
inline ::bgs::protocol::EntityId* GetLicensesRequest::mutable_target_id() {
  set_has_target_id();
  if (target_id_ == NULL) target_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetLicensesRequest.target_id)
  return target_id_;
}
inline ::bgs::protocol::EntityId* GetLicensesRequest::release_target_id() {
  clear_has_target_id();
  ::bgs::protocol::EntityId* temp = target_id_;
  target_id_ = NULL;
  return temp;
}
inline void GetLicensesRequest::set_allocated_target_id(::bgs::protocol::EntityId* target_id) {
  delete target_id_;
  target_id_ = target_id;
  if (target_id) {
    set_has_target_id();
  } else {
    clear_has_target_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetLicensesRequest.target_id)
}

// optional bool fetch_account_licenses = 2;
inline bool GetLicensesRequest::has_fetch_account_licenses() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetLicensesRequest::set_has_fetch_account_licenses() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetLicensesRequest::clear_has_fetch_account_licenses() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetLicensesRequest::clear_fetch_account_licenses() {
  fetch_account_licenses_ = false;
  clear_has_fetch_account_licenses();
}
inline bool GetLicensesRequest::fetch_account_licenses() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetLicensesRequest.fetch_account_licenses)
  return fetch_account_licenses_;
}
inline void GetLicensesRequest::set_fetch_account_licenses(bool value) {
  set_has_fetch_account_licenses();
  fetch_account_licenses_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetLicensesRequest.fetch_account_licenses)
}

// optional bool fetch_game_account_licenses = 3;
inline bool GetLicensesRequest::has_fetch_game_account_licenses() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GetLicensesRequest::set_has_fetch_game_account_licenses() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GetLicensesRequest::clear_has_fetch_game_account_licenses() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GetLicensesRequest::clear_fetch_game_account_licenses() {
  fetch_game_account_licenses_ = false;
  clear_has_fetch_game_account_licenses();
}
inline bool GetLicensesRequest::fetch_game_account_licenses() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetLicensesRequest.fetch_game_account_licenses)
  return fetch_game_account_licenses_;
}
inline void GetLicensesRequest::set_fetch_game_account_licenses(bool value) {
  set_has_fetch_game_account_licenses();
  fetch_game_account_licenses_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetLicensesRequest.fetch_game_account_licenses)
}

// optional bool fetch_dynamic_account_licenses = 4;
inline bool GetLicensesRequest::has_fetch_dynamic_account_licenses() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GetLicensesRequest::set_has_fetch_dynamic_account_licenses() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GetLicensesRequest::clear_has_fetch_dynamic_account_licenses() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GetLicensesRequest::clear_fetch_dynamic_account_licenses() {
  fetch_dynamic_account_licenses_ = false;
  clear_has_fetch_dynamic_account_licenses();
}
inline bool GetLicensesRequest::fetch_dynamic_account_licenses() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetLicensesRequest.fetch_dynamic_account_licenses)
  return fetch_dynamic_account_licenses_;
}
inline void GetLicensesRequest::set_fetch_dynamic_account_licenses(bool value) {
  set_has_fetch_dynamic_account_licenses();
  fetch_dynamic_account_licenses_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetLicensesRequest.fetch_dynamic_account_licenses)
}

// optional fixed32 program = 5;
inline bool GetLicensesRequest::has_program() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void GetLicensesRequest::set_has_program() {
  _has_bits_[0] |= 0x00000010u;
}
inline void GetLicensesRequest::clear_has_program() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void GetLicensesRequest::clear_program() {
  program_ = 0u;
  clear_has_program();
}
inline ::google::protobuf::uint32 GetLicensesRequest::program() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetLicensesRequest.program)
  return program_;
}
inline void GetLicensesRequest::set_program(::google::protobuf::uint32 value) {
  set_has_program();
  program_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetLicensesRequest.program)
}

// optional bool exclude_unknown_program = 6 [default = false];
inline bool GetLicensesRequest::has_exclude_unknown_program() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void GetLicensesRequest::set_has_exclude_unknown_program() {
  _has_bits_[0] |= 0x00000020u;
}
inline void GetLicensesRequest::clear_has_exclude_unknown_program() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void GetLicensesRequest::clear_exclude_unknown_program() {
  exclude_unknown_program_ = false;
  clear_has_exclude_unknown_program();
}
inline bool GetLicensesRequest::exclude_unknown_program() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetLicensesRequest.exclude_unknown_program)
  return exclude_unknown_program_;
}
inline void GetLicensesRequest::set_exclude_unknown_program(bool value) {
  set_has_exclude_unknown_program();
  exclude_unknown_program_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetLicensesRequest.exclude_unknown_program)
}

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

// GetLicensesResponse

// repeated .bgs.protocol.account.v1.AccountLicense licenses = 1;
inline int GetLicensesResponse::licenses_size() const {
  return licenses_.size();
}
inline void GetLicensesResponse::clear_licenses() {
  licenses_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountLicense& GetLicensesResponse::licenses(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetLicensesResponse.licenses)
  return licenses_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountLicense* GetLicensesResponse::mutable_licenses(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetLicensesResponse.licenses)
  return licenses_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountLicense* GetLicensesResponse::add_licenses() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.GetLicensesResponse.licenses)
  return licenses_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >&
GetLicensesResponse::licenses() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.GetLicensesResponse.licenses)
  return licenses_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >*
GetLicensesResponse::mutable_licenses() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.GetLicensesResponse.licenses)
  return &licenses_;
}

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

// GetGameSessionInfoRequest

// optional .bgs.protocol.EntityId entity_id = 1;
inline bool GetGameSessionInfoRequest::has_entity_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetGameSessionInfoRequest::set_has_entity_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetGameSessionInfoRequest::clear_has_entity_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetGameSessionInfoRequest::clear_entity_id() {
  if (entity_id_ != NULL) entity_id_->::bgs::protocol::EntityId::Clear();
  clear_has_entity_id();
}
inline const ::bgs::protocol::EntityId& GetGameSessionInfoRequest::entity_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameSessionInfoRequest.entity_id)
  return entity_id_ != NULL ? *entity_id_ : *default_instance_->entity_id_;
}
inline ::bgs::protocol::EntityId* GetGameSessionInfoRequest::mutable_entity_id() {
  set_has_entity_id();
  if (entity_id_ == NULL) entity_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameSessionInfoRequest.entity_id)
  return entity_id_;
}
inline ::bgs::protocol::EntityId* GetGameSessionInfoRequest::release_entity_id() {
  clear_has_entity_id();
  ::bgs::protocol::EntityId* temp = entity_id_;
  entity_id_ = NULL;
  return temp;
}
inline void GetGameSessionInfoRequest::set_allocated_entity_id(::bgs::protocol::EntityId* entity_id) {
  delete entity_id_;
  entity_id_ = entity_id;
  if (entity_id) {
    set_has_entity_id();
  } else {
    clear_has_entity_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameSessionInfoRequest.entity_id)
}

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

// GetGameSessionInfoResponse

// optional .bgs.protocol.account.v1.GameSessionInfo session_info = 2;
inline bool GetGameSessionInfoResponse::has_session_info() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetGameSessionInfoResponse::set_has_session_info() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetGameSessionInfoResponse::clear_has_session_info() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetGameSessionInfoResponse::clear_session_info() {
  if (session_info_ != NULL) session_info_->::bgs::protocol::account::v1::GameSessionInfo::Clear();
  clear_has_session_info();
}
inline const ::bgs::protocol::account::v1::GameSessionInfo& GetGameSessionInfoResponse::session_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameSessionInfoResponse.session_info)
  return session_info_ != NULL ? *session_info_ : *default_instance_->session_info_;
}
inline ::bgs::protocol::account::v1::GameSessionInfo* GetGameSessionInfoResponse::mutable_session_info() {
  set_has_session_info();
  if (session_info_ == NULL) session_info_ = new ::bgs::protocol::account::v1::GameSessionInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameSessionInfoResponse.session_info)
  return session_info_;
}
inline ::bgs::protocol::account::v1::GameSessionInfo* GetGameSessionInfoResponse::release_session_info() {
  clear_has_session_info();
  ::bgs::protocol::account::v1::GameSessionInfo* temp = session_info_;
  session_info_ = NULL;
  return temp;
}
inline void GetGameSessionInfoResponse::set_allocated_session_info(::bgs::protocol::account::v1::GameSessionInfo* session_info) {
  delete session_info_;
  session_info_ = session_info;
  if (session_info) {
    set_has_session_info();
  } else {
    clear_has_session_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameSessionInfoResponse.session_info)
}

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

// GetGameTimeRemainingInfoRequest

// optional .bgs.protocol.EntityId game_account_id = 1;
inline bool GetGameTimeRemainingInfoRequest::has_game_account_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetGameTimeRemainingInfoRequest::set_has_game_account_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetGameTimeRemainingInfoRequest::clear_has_game_account_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetGameTimeRemainingInfoRequest::clear_game_account_id() {
  if (game_account_id_ != NULL) game_account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_game_account_id();
}
inline const ::bgs::protocol::EntityId& GetGameTimeRemainingInfoRequest::game_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameTimeRemainingInfoRequest.game_account_id)
  return game_account_id_ != NULL ? *game_account_id_ : *default_instance_->game_account_id_;
}
inline ::bgs::protocol::EntityId* GetGameTimeRemainingInfoRequest::mutable_game_account_id() {
  set_has_game_account_id();
  if (game_account_id_ == NULL) game_account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameTimeRemainingInfoRequest.game_account_id)
  return game_account_id_;
}
inline ::bgs::protocol::EntityId* GetGameTimeRemainingInfoRequest::release_game_account_id() {
  clear_has_game_account_id();
  ::bgs::protocol::EntityId* temp = game_account_id_;
  game_account_id_ = NULL;
  return temp;
}
inline void GetGameTimeRemainingInfoRequest::set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id) {
  delete game_account_id_;
  game_account_id_ = game_account_id;
  if (game_account_id) {
    set_has_game_account_id();
  } else {
    clear_has_game_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameTimeRemainingInfoRequest.game_account_id)
}

// optional .bgs.protocol.EntityId account_id = 2;
inline bool GetGameTimeRemainingInfoRequest::has_account_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetGameTimeRemainingInfoRequest::set_has_account_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetGameTimeRemainingInfoRequest::clear_has_account_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetGameTimeRemainingInfoRequest::clear_account_id() {
  if (account_id_ != NULL) account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_account_id();
}
inline const ::bgs::protocol::EntityId& GetGameTimeRemainingInfoRequest::account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameTimeRemainingInfoRequest.account_id)
  return account_id_ != NULL ? *account_id_ : *default_instance_->account_id_;
}
inline ::bgs::protocol::EntityId* GetGameTimeRemainingInfoRequest::mutable_account_id() {
  set_has_account_id();
  if (account_id_ == NULL) account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameTimeRemainingInfoRequest.account_id)
  return account_id_;
}
inline ::bgs::protocol::EntityId* GetGameTimeRemainingInfoRequest::release_account_id() {
  clear_has_account_id();
  ::bgs::protocol::EntityId* temp = account_id_;
  account_id_ = NULL;
  return temp;
}
inline void GetGameTimeRemainingInfoRequest::set_allocated_account_id(::bgs::protocol::EntityId* account_id) {
  delete account_id_;
  account_id_ = account_id;
  if (account_id) {
    set_has_account_id();
  } else {
    clear_has_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameTimeRemainingInfoRequest.account_id)
}

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

// GetGameTimeRemainingInfoResponse

// optional .bgs.protocol.account.v1.GameTimeRemainingInfo game_time_remaining_info = 1;
inline bool GetGameTimeRemainingInfoResponse::has_game_time_remaining_info() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetGameTimeRemainingInfoResponse::set_has_game_time_remaining_info() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetGameTimeRemainingInfoResponse::clear_has_game_time_remaining_info() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetGameTimeRemainingInfoResponse::clear_game_time_remaining_info() {
  if (game_time_remaining_info_ != NULL) game_time_remaining_info_->::bgs::protocol::account::v1::GameTimeRemainingInfo::Clear();
  clear_has_game_time_remaining_info();
}
inline const ::bgs::protocol::account::v1::GameTimeRemainingInfo& GetGameTimeRemainingInfoResponse::game_time_remaining_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameTimeRemainingInfoResponse.game_time_remaining_info)
  return game_time_remaining_info_ != NULL ? *game_time_remaining_info_ : *default_instance_->game_time_remaining_info_;
}
inline ::bgs::protocol::account::v1::GameTimeRemainingInfo* GetGameTimeRemainingInfoResponse::mutable_game_time_remaining_info() {
  set_has_game_time_remaining_info();
  if (game_time_remaining_info_ == NULL) game_time_remaining_info_ = new ::bgs::protocol::account::v1::GameTimeRemainingInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameTimeRemainingInfoResponse.game_time_remaining_info)
  return game_time_remaining_info_;
}
inline ::bgs::protocol::account::v1::GameTimeRemainingInfo* GetGameTimeRemainingInfoResponse::release_game_time_remaining_info() {
  clear_has_game_time_remaining_info();
  ::bgs::protocol::account::v1::GameTimeRemainingInfo* temp = game_time_remaining_info_;
  game_time_remaining_info_ = NULL;
  return temp;
}
inline void GetGameTimeRemainingInfoResponse::set_allocated_game_time_remaining_info(::bgs::protocol::account::v1::GameTimeRemainingInfo* game_time_remaining_info) {
  delete game_time_remaining_info_;
  game_time_remaining_info_ = game_time_remaining_info;
  if (game_time_remaining_info) {
    set_has_game_time_remaining_info();
  } else {
    clear_has_game_time_remaining_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameTimeRemainingInfoResponse.game_time_remaining_info)
}

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

// GetCAISInfoRequest

// optional .bgs.protocol.EntityId entity_id = 1;
inline bool GetCAISInfoRequest::has_entity_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetCAISInfoRequest::set_has_entity_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetCAISInfoRequest::clear_has_entity_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetCAISInfoRequest::clear_entity_id() {
  if (entity_id_ != NULL) entity_id_->::bgs::protocol::EntityId::Clear();
  clear_has_entity_id();
}
inline const ::bgs::protocol::EntityId& GetCAISInfoRequest::entity_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetCAISInfoRequest.entity_id)
  return entity_id_ != NULL ? *entity_id_ : *default_instance_->entity_id_;
}
inline ::bgs::protocol::EntityId* GetCAISInfoRequest::mutable_entity_id() {
  set_has_entity_id();
  if (entity_id_ == NULL) entity_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetCAISInfoRequest.entity_id)
  return entity_id_;
}
inline ::bgs::protocol::EntityId* GetCAISInfoRequest::release_entity_id() {
  clear_has_entity_id();
  ::bgs::protocol::EntityId* temp = entity_id_;
  entity_id_ = NULL;
  return temp;
}
inline void GetCAISInfoRequest::set_allocated_entity_id(::bgs::protocol::EntityId* entity_id) {
  delete entity_id_;
  entity_id_ = entity_id;
  if (entity_id) {
    set_has_entity_id();
  } else {
    clear_has_entity_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetCAISInfoRequest.entity_id)
}

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

// GetCAISInfoResponse

// optional .bgs.protocol.account.v1.CAIS cais_info = 1;
inline bool GetCAISInfoResponse::has_cais_info() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetCAISInfoResponse::set_has_cais_info() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetCAISInfoResponse::clear_has_cais_info() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetCAISInfoResponse::clear_cais_info() {
  if (cais_info_ != NULL) cais_info_->::bgs::protocol::account::v1::CAIS::Clear();
  clear_has_cais_info();
}
inline const ::bgs::protocol::account::v1::CAIS& GetCAISInfoResponse::cais_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetCAISInfoResponse.cais_info)
  return cais_info_ != NULL ? *cais_info_ : *default_instance_->cais_info_;
}
inline ::bgs::protocol::account::v1::CAIS* GetCAISInfoResponse::mutable_cais_info() {
  set_has_cais_info();
  if (cais_info_ == NULL) cais_info_ = new ::bgs::protocol::account::v1::CAIS;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetCAISInfoResponse.cais_info)
  return cais_info_;
}
inline ::bgs::protocol::account::v1::CAIS* GetCAISInfoResponse::release_cais_info() {
  clear_has_cais_info();
  ::bgs::protocol::account::v1::CAIS* temp = cais_info_;
  cais_info_ = NULL;
  return temp;
}
inline void GetCAISInfoResponse::set_allocated_cais_info(::bgs::protocol::account::v1::CAIS* cais_info) {
  delete cais_info_;
  cais_info_ = cais_info;
  if (cais_info) {
    set_has_cais_info();
  } else {
    clear_has_cais_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetCAISInfoResponse.cais_info)
}

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

// ForwardCacheExpireRequest

// optional .bgs.protocol.EntityId entity_id = 1;
inline bool ForwardCacheExpireRequest::has_entity_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ForwardCacheExpireRequest::set_has_entity_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ForwardCacheExpireRequest::clear_has_entity_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ForwardCacheExpireRequest::clear_entity_id() {
  if (entity_id_ != NULL) entity_id_->::bgs::protocol::EntityId::Clear();
  clear_has_entity_id();
}
inline const ::bgs::protocol::EntityId& ForwardCacheExpireRequest::entity_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ForwardCacheExpireRequest.entity_id)
  return entity_id_ != NULL ? *entity_id_ : *default_instance_->entity_id_;
}
inline ::bgs::protocol::EntityId* ForwardCacheExpireRequest::mutable_entity_id() {
  set_has_entity_id();
  if (entity_id_ == NULL) entity_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.ForwardCacheExpireRequest.entity_id)
  return entity_id_;
}
inline ::bgs::protocol::EntityId* ForwardCacheExpireRequest::release_entity_id() {
  clear_has_entity_id();
  ::bgs::protocol::EntityId* temp = entity_id_;
  entity_id_ = NULL;
  return temp;
}
inline void ForwardCacheExpireRequest::set_allocated_entity_id(::bgs::protocol::EntityId* entity_id) {
  delete entity_id_;
  entity_id_ = entity_id;
  if (entity_id) {
    set_has_entity_id();
  } else {
    clear_has_entity_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.ForwardCacheExpireRequest.entity_id)
}

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

// GetAuthorizedDataRequest

// optional .bgs.protocol.EntityId entity_id = 1;
inline bool GetAuthorizedDataRequest::has_entity_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetAuthorizedDataRequest::set_has_entity_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetAuthorizedDataRequest::clear_has_entity_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetAuthorizedDataRequest::clear_entity_id() {
  if (entity_id_ != NULL) entity_id_->::bgs::protocol::EntityId::Clear();
  clear_has_entity_id();
}
inline const ::bgs::protocol::EntityId& GetAuthorizedDataRequest::entity_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAuthorizedDataRequest.entity_id)
  return entity_id_ != NULL ? *entity_id_ : *default_instance_->entity_id_;
}
inline ::bgs::protocol::EntityId* GetAuthorizedDataRequest::mutable_entity_id() {
  set_has_entity_id();
  if (entity_id_ == NULL) entity_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAuthorizedDataRequest.entity_id)
  return entity_id_;
}
inline ::bgs::protocol::EntityId* GetAuthorizedDataRequest::release_entity_id() {
  clear_has_entity_id();
  ::bgs::protocol::EntityId* temp = entity_id_;
  entity_id_ = NULL;
  return temp;
}
inline void GetAuthorizedDataRequest::set_allocated_entity_id(::bgs::protocol::EntityId* entity_id) {
  delete entity_id_;
  entity_id_ = entity_id;
  if (entity_id) {
    set_has_entity_id();
  } else {
    clear_has_entity_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetAuthorizedDataRequest.entity_id)
}

// repeated string tag = 2;
inline int GetAuthorizedDataRequest::tag_size() const {
  return tag_.size();
}
inline void GetAuthorizedDataRequest::clear_tag() {
  tag_.Clear();
}
inline const ::std::string& GetAuthorizedDataRequest::tag(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAuthorizedDataRequest.tag)
  return tag_.Get(index);
}
inline ::std::string* GetAuthorizedDataRequest::mutable_tag(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAuthorizedDataRequest.tag)
  return tag_.Mutable(index);
}
inline void GetAuthorizedDataRequest::set_tag(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAuthorizedDataRequest.tag)
  tag_.Mutable(index)->assign(value);
}
inline void GetAuthorizedDataRequest::set_tag(int index, const char* value) {
  tag_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GetAuthorizedDataRequest.tag)
}
inline void GetAuthorizedDataRequest::set_tag(int index, const char* value, size_t size) {
  tag_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GetAuthorizedDataRequest.tag)
}
inline ::std::string* GetAuthorizedDataRequest::add_tag() {
  return tag_.Add();
}
inline void GetAuthorizedDataRequest::add_tag(const ::std::string& value) {
  tag_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.GetAuthorizedDataRequest.tag)
}
inline void GetAuthorizedDataRequest::add_tag(const char* value) {
  tag_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:bgs.protocol.account.v1.GetAuthorizedDataRequest.tag)
}
inline void GetAuthorizedDataRequest::add_tag(const char* value, size_t size) {
  tag_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:bgs.protocol.account.v1.GetAuthorizedDataRequest.tag)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
GetAuthorizedDataRequest::tag() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.GetAuthorizedDataRequest.tag)
  return tag_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
GetAuthorizedDataRequest::mutable_tag() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.GetAuthorizedDataRequest.tag)
  return &tag_;
}

// optional bool privileged_network = 3;
inline bool GetAuthorizedDataRequest::has_privileged_network() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GetAuthorizedDataRequest::set_has_privileged_network() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GetAuthorizedDataRequest::clear_has_privileged_network() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GetAuthorizedDataRequest::clear_privileged_network() {
  privileged_network_ = false;
  clear_has_privileged_network();
}
inline bool GetAuthorizedDataRequest::privileged_network() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAuthorizedDataRequest.privileged_network)
  return privileged_network_;
}
inline void GetAuthorizedDataRequest::set_privileged_network(bool value) {
  set_has_privileged_network();
  privileged_network_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetAuthorizedDataRequest.privileged_network)
}

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

// GetAuthorizedDataResponse

// repeated .bgs.protocol.account.v1.AuthorizedData data = 1;
inline int GetAuthorizedDataResponse::data_size() const {
  return data_.size();
}
inline void GetAuthorizedDataResponse::clear_data() {
  data_.Clear();
}
inline const ::bgs::protocol::account::v1::AuthorizedData& GetAuthorizedDataResponse::data(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetAuthorizedDataResponse.data)
  return data_.Get(index);
}
inline ::bgs::protocol::account::v1::AuthorizedData* GetAuthorizedDataResponse::mutable_data(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetAuthorizedDataResponse.data)
  return data_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AuthorizedData* GetAuthorizedDataResponse::add_data() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.GetAuthorizedDataResponse.data)
  return data_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AuthorizedData >&
GetAuthorizedDataResponse::data() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.GetAuthorizedDataResponse.data)
  return data_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AuthorizedData >*
GetAuthorizedDataResponse::mutable_data() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.GetAuthorizedDataResponse.data)
  return &data_;
}

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

// UpdateParentalControlsAndCAISRequest

// optional .bgs.protocol.account.v1.AccountId account = 1;
inline bool UpdateParentalControlsAndCAISRequest::has_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void UpdateParentalControlsAndCAISRequest::set_has_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_has_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_account() {
  if (account_ != NULL) account_->::bgs::protocol::account::v1::AccountId::Clear();
  clear_has_account();
}
inline const ::bgs::protocol::account::v1::AccountId& UpdateParentalControlsAndCAISRequest::account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.account)
  return account_ != NULL ? *account_ : *default_instance_->account_;
}
inline ::bgs::protocol::account::v1::AccountId* UpdateParentalControlsAndCAISRequest::mutable_account() {
  set_has_account();
  if (account_ == NULL) account_ = new ::bgs::protocol::account::v1::AccountId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.account)
  return account_;
}
inline ::bgs::protocol::account::v1::AccountId* UpdateParentalControlsAndCAISRequest::release_account() {
  clear_has_account();
  ::bgs::protocol::account::v1::AccountId* temp = account_;
  account_ = NULL;
  return temp;
}
inline void UpdateParentalControlsAndCAISRequest::set_allocated_account(::bgs::protocol::account::v1::AccountId* account) {
  delete account_;
  account_ = account;
  if (account) {
    set_has_account();
  } else {
    clear_has_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.account)
}

// optional .bgs.protocol.account.v1.ParentalControlInfo parental_control_info = 2;
inline bool UpdateParentalControlsAndCAISRequest::has_parental_control_info() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void UpdateParentalControlsAndCAISRequest::set_has_parental_control_info() {
  _has_bits_[0] |= 0x00000002u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_has_parental_control_info() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_parental_control_info() {
  if (parental_control_info_ != NULL) parental_control_info_->::bgs::protocol::account::v1::ParentalControlInfo::Clear();
  clear_has_parental_control_info();
}
inline const ::bgs::protocol::account::v1::ParentalControlInfo& UpdateParentalControlsAndCAISRequest::parental_control_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.parental_control_info)
  return parental_control_info_ != NULL ? *parental_control_info_ : *default_instance_->parental_control_info_;
}
inline ::bgs::protocol::account::v1::ParentalControlInfo* UpdateParentalControlsAndCAISRequest::mutable_parental_control_info() {
  set_has_parental_control_info();
  if (parental_control_info_ == NULL) parental_control_info_ = new ::bgs::protocol::account::v1::ParentalControlInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.parental_control_info)
  return parental_control_info_;
}
inline ::bgs::protocol::account::v1::ParentalControlInfo* UpdateParentalControlsAndCAISRequest::release_parental_control_info() {
  clear_has_parental_control_info();
  ::bgs::protocol::account::v1::ParentalControlInfo* temp = parental_control_info_;
  parental_control_info_ = NULL;
  return temp;
}
inline void UpdateParentalControlsAndCAISRequest::set_allocated_parental_control_info(::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info) {
  delete parental_control_info_;
  parental_control_info_ = parental_control_info;
  if (parental_control_info) {
    set_has_parental_control_info();
  } else {
    clear_has_parental_control_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.parental_control_info)
}

// optional string cais_id = 3;
inline bool UpdateParentalControlsAndCAISRequest::has_cais_id() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void UpdateParentalControlsAndCAISRequest::set_has_cais_id() {
  _has_bits_[0] |= 0x00000004u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_has_cais_id() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_cais_id() {
  if (cais_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_->clear();
  }
  clear_has_cais_id();
}
inline const ::std::string& UpdateParentalControlsAndCAISRequest::cais_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.cais_id)
  return *cais_id_;
}
inline void UpdateParentalControlsAndCAISRequest::set_cais_id(const ::std::string& value) {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  cais_id_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.cais_id)
}
inline void UpdateParentalControlsAndCAISRequest::set_cais_id(const char* value) {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  cais_id_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.cais_id)
}
inline void UpdateParentalControlsAndCAISRequest::set_cais_id(const char* value, size_t size) {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  cais_id_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.cais_id)
}
inline ::std::string* UpdateParentalControlsAndCAISRequest::mutable_cais_id() {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.cais_id)
  return cais_id_;
}
inline ::std::string* UpdateParentalControlsAndCAISRequest::release_cais_id() {
  clear_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = cais_id_;
    cais_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void UpdateParentalControlsAndCAISRequest::set_allocated_cais_id(::std::string* cais_id) {
  if (cais_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete cais_id_;
  }
  if (cais_id) {
    set_has_cais_id();
    cais_id_ = cais_id;
  } else {
    clear_has_cais_id();
    cais_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.cais_id)
}

// optional uint64 session_start_time = 4;
inline bool UpdateParentalControlsAndCAISRequest::has_session_start_time() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void UpdateParentalControlsAndCAISRequest::set_has_session_start_time() {
  _has_bits_[0] |= 0x00000008u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_has_session_start_time() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_session_start_time() {
  session_start_time_ = GOOGLE_ULONGLONG(0);
  clear_has_session_start_time();
}
inline ::google::protobuf::uint64 UpdateParentalControlsAndCAISRequest::session_start_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.session_start_time)
  return session_start_time_;
}
inline void UpdateParentalControlsAndCAISRequest::set_session_start_time(::google::protobuf::uint64 value) {
  set_has_session_start_time();
  session_start_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.session_start_time)
}

// optional uint64 start_time = 5;
inline bool UpdateParentalControlsAndCAISRequest::has_start_time() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void UpdateParentalControlsAndCAISRequest::set_has_start_time() {
  _has_bits_[0] |= 0x00000010u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_has_start_time() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_start_time() {
  start_time_ = GOOGLE_ULONGLONG(0);
  clear_has_start_time();
}
inline ::google::protobuf::uint64 UpdateParentalControlsAndCAISRequest::start_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.start_time)
  return start_time_;
}
inline void UpdateParentalControlsAndCAISRequest::set_start_time(::google::protobuf::uint64 value) {
  set_has_start_time();
  start_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.start_time)
}

// optional uint64 end_time = 6;
inline bool UpdateParentalControlsAndCAISRequest::has_end_time() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void UpdateParentalControlsAndCAISRequest::set_has_end_time() {
  _has_bits_[0] |= 0x00000020u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_has_end_time() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void UpdateParentalControlsAndCAISRequest::clear_end_time() {
  end_time_ = GOOGLE_ULONGLONG(0);
  clear_has_end_time();
}
inline ::google::protobuf::uint64 UpdateParentalControlsAndCAISRequest::end_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.end_time)
  return end_time_;
}
inline void UpdateParentalControlsAndCAISRequest::set_end_time(::google::protobuf::uint64 value) {
  set_has_end_time();
  end_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.UpdateParentalControlsAndCAISRequest.end_time)
}

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

// QueueDeductRecordRequest

// optional .bgs.protocol.account.v1.DeductRecord deduct_record = 1;
inline bool QueueDeductRecordRequest::has_deduct_record() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void QueueDeductRecordRequest::set_has_deduct_record() {
  _has_bits_[0] |= 0x00000001u;
}
inline void QueueDeductRecordRequest::clear_has_deduct_record() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void QueueDeductRecordRequest::clear_deduct_record() {
  if (deduct_record_ != NULL) deduct_record_->::bgs::protocol::account::v1::DeductRecord::Clear();
  clear_has_deduct_record();
}
inline const ::bgs::protocol::account::v1::DeductRecord& QueueDeductRecordRequest::deduct_record() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.QueueDeductRecordRequest.deduct_record)
  return deduct_record_ != NULL ? *deduct_record_ : *default_instance_->deduct_record_;
}
inline ::bgs::protocol::account::v1::DeductRecord* QueueDeductRecordRequest::mutable_deduct_record() {
  set_has_deduct_record();
  if (deduct_record_ == NULL) deduct_record_ = new ::bgs::protocol::account::v1::DeductRecord;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.QueueDeductRecordRequest.deduct_record)
  return deduct_record_;
}
inline ::bgs::protocol::account::v1::DeductRecord* QueueDeductRecordRequest::release_deduct_record() {
  clear_has_deduct_record();
  ::bgs::protocol::account::v1::DeductRecord* temp = deduct_record_;
  deduct_record_ = NULL;
  return temp;
}
inline void QueueDeductRecordRequest::set_allocated_deduct_record(::bgs::protocol::account::v1::DeductRecord* deduct_record) {
  delete deduct_record_;
  deduct_record_ = deduct_record;
  if (deduct_record) {
    set_has_deduct_record();
  } else {
    clear_has_deduct_record();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.QueueDeductRecordRequest.deduct_record)
}

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

// GetGameAccountRequest

// optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
inline bool GetGameAccountRequest::has_game_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetGameAccountRequest::set_has_game_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetGameAccountRequest::clear_has_game_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetGameAccountRequest::clear_game_account() {
  if (game_account_ != NULL) game_account_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
  clear_has_game_account();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& GetGameAccountRequest::game_account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameAccountRequest.game_account)
  return game_account_ != NULL ? *game_account_ : *default_instance_->game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GetGameAccountRequest::mutable_game_account() {
  set_has_game_account();
  if (game_account_ == NULL) game_account_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameAccountRequest.game_account)
  return game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GetGameAccountRequest::release_game_account() {
  clear_has_game_account();
  ::bgs::protocol::account::v1::GameAccountHandle* temp = game_account_;
  game_account_ = NULL;
  return temp;
}
inline void GetGameAccountRequest::set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account) {
  delete game_account_;
  game_account_ = game_account;
  if (game_account) {
    set_has_game_account();
  } else {
    clear_has_game_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameAccountRequest.game_account)
}

// optional bool reload = 2 [default = false];
inline bool GetGameAccountRequest::has_reload() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetGameAccountRequest::set_has_reload() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetGameAccountRequest::clear_has_reload() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetGameAccountRequest::clear_reload() {
  reload_ = false;
  clear_has_reload();
}
inline bool GetGameAccountRequest::reload() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameAccountRequest.reload)
  return reload_;
}
inline void GetGameAccountRequest::set_reload(bool value) {
  set_has_reload();
  reload_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GetGameAccountRequest.reload)
}

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

// GetGameAccountResponse

// optional .bgs.protocol.account.v1.GameAccountBlob blob = 1;
inline bool GetGameAccountResponse::has_blob() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetGameAccountResponse::set_has_blob() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetGameAccountResponse::clear_has_blob() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetGameAccountResponse::clear_blob() {
  if (blob_ != NULL) blob_->::bgs::protocol::account::v1::GameAccountBlob::Clear();
  clear_has_blob();
}
inline const ::bgs::protocol::account::v1::GameAccountBlob& GetGameAccountResponse::blob() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GetGameAccountResponse.blob)
  return blob_ != NULL ? *blob_ : *default_instance_->blob_;
}
inline ::bgs::protocol::account::v1::GameAccountBlob* GetGameAccountResponse::mutable_blob() {
  set_has_blob();
  if (blob_ == NULL) blob_ = new ::bgs::protocol::account::v1::GameAccountBlob;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GetGameAccountResponse.blob)
  return blob_;
}
inline ::bgs::protocol::account::v1::GameAccountBlob* GetGameAccountResponse::release_blob() {
  clear_has_blob();
  ::bgs::protocol::account::v1::GameAccountBlob* temp = blob_;
  blob_ = NULL;
  return temp;
}
inline void GetGameAccountResponse::set_allocated_blob(::bgs::protocol::account::v1::GameAccountBlob* blob) {
  delete blob_;
  blob_ = blob;
  if (blob) {
    set_has_blob();
  } else {
    clear_has_blob();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GetGameAccountResponse.blob)
}

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

// AccountStateNotification

// optional .bgs.protocol.account.v1.AccountState account_state = 1;
inline bool AccountStateNotification::has_account_state() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountStateNotification::set_has_account_state() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountStateNotification::clear_has_account_state() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountStateNotification::clear_account_state() {
  if (account_state_ != NULL) account_state_->::bgs::protocol::account::v1::AccountState::Clear();
  clear_has_account_state();
}
inline const ::bgs::protocol::account::v1::AccountState& AccountStateNotification::account_state() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountStateNotification.account_state)
  return account_state_ != NULL ? *account_state_ : *default_instance_->account_state_;
}
inline ::bgs::protocol::account::v1::AccountState* AccountStateNotification::mutable_account_state() {
  set_has_account_state();
  if (account_state_ == NULL) account_state_ = new ::bgs::protocol::account::v1::AccountState;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountStateNotification.account_state)
  return account_state_;
}
inline ::bgs::protocol::account::v1::AccountState* AccountStateNotification::release_account_state() {
  clear_has_account_state();
  ::bgs::protocol::account::v1::AccountState* temp = account_state_;
  account_state_ = NULL;
  return temp;
}
inline void AccountStateNotification::set_allocated_account_state(::bgs::protocol::account::v1::AccountState* account_state) {
  delete account_state_;
  account_state_ = account_state;
  if (account_state) {
    set_has_account_state();
  } else {
    clear_has_account_state();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountStateNotification.account_state)
}

// optional uint64 subscriber_id = 2;
inline bool AccountStateNotification::has_subscriber_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountStateNotification::set_has_subscriber_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountStateNotification::clear_has_subscriber_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountStateNotification::clear_subscriber_id() {
  subscriber_id_ = GOOGLE_ULONGLONG(0);
  clear_has_subscriber_id();
}
inline ::google::protobuf::uint64 AccountStateNotification::subscriber_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountStateNotification.subscriber_id)
  return subscriber_id_;
}
inline void AccountStateNotification::set_subscriber_id(::google::protobuf::uint64 value) {
  set_has_subscriber_id();
  subscriber_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountStateNotification.subscriber_id)
}

// optional .bgs.protocol.account.v1.AccountFieldTags account_tags = 3;
inline bool AccountStateNotification::has_account_tags() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void AccountStateNotification::set_has_account_tags() {
  _has_bits_[0] |= 0x00000004u;
}
inline void AccountStateNotification::clear_has_account_tags() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void AccountStateNotification::clear_account_tags() {
  if (account_tags_ != NULL) account_tags_->::bgs::protocol::account::v1::AccountFieldTags::Clear();
  clear_has_account_tags();
}
inline const ::bgs::protocol::account::v1::AccountFieldTags& AccountStateNotification::account_tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountStateNotification.account_tags)
  return account_tags_ != NULL ? *account_tags_ : *default_instance_->account_tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* AccountStateNotification::mutable_account_tags() {
  set_has_account_tags();
  if (account_tags_ == NULL) account_tags_ = new ::bgs::protocol::account::v1::AccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountStateNotification.account_tags)
  return account_tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* AccountStateNotification::release_account_tags() {
  clear_has_account_tags();
  ::bgs::protocol::account::v1::AccountFieldTags* temp = account_tags_;
  account_tags_ = NULL;
  return temp;
}
inline void AccountStateNotification::set_allocated_account_tags(::bgs::protocol::account::v1::AccountFieldTags* account_tags) {
  delete account_tags_;
  account_tags_ = account_tags;
  if (account_tags) {
    set_has_account_tags();
  } else {
    clear_has_account_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountStateNotification.account_tags)
}

// optional bool subscription_completed = 4;
inline bool AccountStateNotification::has_subscription_completed() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void AccountStateNotification::set_has_subscription_completed() {
  _has_bits_[0] |= 0x00000008u;
}
inline void AccountStateNotification::clear_has_subscription_completed() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void AccountStateNotification::clear_subscription_completed() {
  subscription_completed_ = false;
  clear_has_subscription_completed();
}
inline bool AccountStateNotification::subscription_completed() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountStateNotification.subscription_completed)
  return subscription_completed_;
}
inline void AccountStateNotification::set_subscription_completed(bool value) {
  set_has_subscription_completed();
  subscription_completed_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountStateNotification.subscription_completed)
}

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

// GameAccountStateNotification

// optional .bgs.protocol.account.v1.GameAccountState game_account_state = 1;
inline bool GameAccountStateNotification::has_game_account_state() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountStateNotification::set_has_game_account_state() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountStateNotification::clear_has_game_account_state() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountStateNotification::clear_game_account_state() {
  if (game_account_state_ != NULL) game_account_state_->::bgs::protocol::account::v1::GameAccountState::Clear();
  clear_has_game_account_state();
}
inline const ::bgs::protocol::account::v1::GameAccountState& GameAccountStateNotification::game_account_state() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountStateNotification.game_account_state)
  return game_account_state_ != NULL ? *game_account_state_ : *default_instance_->game_account_state_;
}
inline ::bgs::protocol::account::v1::GameAccountState* GameAccountStateNotification::mutable_game_account_state() {
  set_has_game_account_state();
  if (game_account_state_ == NULL) game_account_state_ = new ::bgs::protocol::account::v1::GameAccountState;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountStateNotification.game_account_state)
  return game_account_state_;
}
inline ::bgs::protocol::account::v1::GameAccountState* GameAccountStateNotification::release_game_account_state() {
  clear_has_game_account_state();
  ::bgs::protocol::account::v1::GameAccountState* temp = game_account_state_;
  game_account_state_ = NULL;
  return temp;
}
inline void GameAccountStateNotification::set_allocated_game_account_state(::bgs::protocol::account::v1::GameAccountState* game_account_state) {
  delete game_account_state_;
  game_account_state_ = game_account_state;
  if (game_account_state) {
    set_has_game_account_state();
  } else {
    clear_has_game_account_state();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountStateNotification.game_account_state)
}

// optional uint64 subscriber_id = 2;
inline bool GameAccountStateNotification::has_subscriber_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountStateNotification::set_has_subscriber_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountStateNotification::clear_has_subscriber_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountStateNotification::clear_subscriber_id() {
  subscriber_id_ = GOOGLE_ULONGLONG(0);
  clear_has_subscriber_id();
}
inline ::google::protobuf::uint64 GameAccountStateNotification::subscriber_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountStateNotification.subscriber_id)
  return subscriber_id_;
}
inline void GameAccountStateNotification::set_subscriber_id(::google::protobuf::uint64 value) {
  set_has_subscriber_id();
  subscriber_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountStateNotification.subscriber_id)
}

// optional .bgs.protocol.account.v1.GameAccountFieldTags game_account_tags = 3;
inline bool GameAccountStateNotification::has_game_account_tags() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameAccountStateNotification::set_has_game_account_tags() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameAccountStateNotification::clear_has_game_account_tags() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameAccountStateNotification::clear_game_account_tags() {
  if (game_account_tags_ != NULL) game_account_tags_->::bgs::protocol::account::v1::GameAccountFieldTags::Clear();
  clear_has_game_account_tags();
}
inline const ::bgs::protocol::account::v1::GameAccountFieldTags& GameAccountStateNotification::game_account_tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountStateNotification.game_account_tags)
  return game_account_tags_ != NULL ? *game_account_tags_ : *default_instance_->game_account_tags_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldTags* GameAccountStateNotification::mutable_game_account_tags() {
  set_has_game_account_tags();
  if (game_account_tags_ == NULL) game_account_tags_ = new ::bgs::protocol::account::v1::GameAccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountStateNotification.game_account_tags)
  return game_account_tags_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldTags* GameAccountStateNotification::release_game_account_tags() {
  clear_has_game_account_tags();
  ::bgs::protocol::account::v1::GameAccountFieldTags* temp = game_account_tags_;
  game_account_tags_ = NULL;
  return temp;
}
inline void GameAccountStateNotification::set_allocated_game_account_tags(::bgs::protocol::account::v1::GameAccountFieldTags* game_account_tags) {
  delete game_account_tags_;
  game_account_tags_ = game_account_tags;
  if (game_account_tags) {
    set_has_game_account_tags();
  } else {
    clear_has_game_account_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountStateNotification.game_account_tags)
}

// optional bool subscription_completed = 4;
inline bool GameAccountStateNotification::has_subscription_completed() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GameAccountStateNotification::set_has_subscription_completed() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GameAccountStateNotification::clear_has_subscription_completed() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GameAccountStateNotification::clear_subscription_completed() {
  subscription_completed_ = false;
  clear_has_subscription_completed();
}
inline bool GameAccountStateNotification::subscription_completed() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountStateNotification.subscription_completed)
  return subscription_completed_;
}
inline void GameAccountStateNotification::set_subscription_completed(bool value) {
  set_has_subscription_completed();
  subscription_completed_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountStateNotification.subscription_completed)
}

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

// GameAccountNotification

// repeated .bgs.protocol.account.v1.GameAccountList game_accounts = 1;
inline int GameAccountNotification::game_accounts_size() const {
  return game_accounts_.size();
}
inline void GameAccountNotification::clear_game_accounts() {
  game_accounts_.Clear();
}
inline const ::bgs::protocol::account::v1::GameAccountList& GameAccountNotification::game_accounts(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountNotification.game_accounts)
  return game_accounts_.Get(index);
}
inline ::bgs::protocol::account::v1::GameAccountList* GameAccountNotification::mutable_game_accounts(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountNotification.game_accounts)
  return game_accounts_.Mutable(index);
}
inline ::bgs::protocol::account::v1::GameAccountList* GameAccountNotification::add_game_accounts() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.GameAccountNotification.game_accounts)
  return game_accounts_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountList >&
GameAccountNotification::game_accounts() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.GameAccountNotification.game_accounts)
  return game_accounts_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountList >*
GameAccountNotification::mutable_game_accounts() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.GameAccountNotification.game_accounts)
  return &game_accounts_;
}

// optional uint64 subscriber_id = 2;
inline bool GameAccountNotification::has_subscriber_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountNotification::set_has_subscriber_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountNotification::clear_has_subscriber_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountNotification::clear_subscriber_id() {
  subscriber_id_ = GOOGLE_ULONGLONG(0);
  clear_has_subscriber_id();
}
inline ::google::protobuf::uint64 GameAccountNotification::subscriber_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountNotification.subscriber_id)
  return subscriber_id_;
}
inline void GameAccountNotification::set_subscriber_id(::google::protobuf::uint64 value) {
  set_has_subscriber_id();
  subscriber_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountNotification.subscriber_id)
}

// optional .bgs.protocol.account.v1.AccountFieldTags account_tags = 3;
inline bool GameAccountNotification::has_account_tags() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameAccountNotification::set_has_account_tags() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameAccountNotification::clear_has_account_tags() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameAccountNotification::clear_account_tags() {
  if (account_tags_ != NULL) account_tags_->::bgs::protocol::account::v1::AccountFieldTags::Clear();
  clear_has_account_tags();
}
inline const ::bgs::protocol::account::v1::AccountFieldTags& GameAccountNotification::account_tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountNotification.account_tags)
  return account_tags_ != NULL ? *account_tags_ : *default_instance_->account_tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* GameAccountNotification::mutable_account_tags() {
  set_has_account_tags();
  if (account_tags_ == NULL) account_tags_ = new ::bgs::protocol::account::v1::AccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountNotification.account_tags)
  return account_tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* GameAccountNotification::release_account_tags() {
  clear_has_account_tags();
  ::bgs::protocol::account::v1::AccountFieldTags* temp = account_tags_;
  account_tags_ = NULL;
  return temp;
}
inline void GameAccountNotification::set_allocated_account_tags(::bgs::protocol::account::v1::AccountFieldTags* account_tags) {
  delete account_tags_;
  account_tags_ = account_tags;
  if (account_tags) {
    set_has_account_tags();
  } else {
    clear_has_account_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountNotification.account_tags)
}

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

// GameAccountSessionNotification

// optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
inline bool GameAccountSessionNotification::has_game_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountSessionNotification::set_has_game_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountSessionNotification::clear_has_game_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountSessionNotification::clear_game_account() {
  if (game_account_ != NULL) game_account_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
  clear_has_game_account();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& GameAccountSessionNotification::game_account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountSessionNotification.game_account)
  return game_account_ != NULL ? *game_account_ : *default_instance_->game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GameAccountSessionNotification::mutable_game_account() {
  set_has_game_account();
  if (game_account_ == NULL) game_account_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountSessionNotification.game_account)
  return game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GameAccountSessionNotification::release_game_account() {
  clear_has_game_account();
  ::bgs::protocol::account::v1::GameAccountHandle* temp = game_account_;
  game_account_ = NULL;
  return temp;
}
inline void GameAccountSessionNotification::set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account) {
  delete game_account_;
  game_account_ = game_account;
  if (game_account) {
    set_has_game_account();
  } else {
    clear_has_game_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountSessionNotification.game_account)
}

// optional .bgs.protocol.account.v1.GameSessionUpdateInfo session_info = 2;
inline bool GameAccountSessionNotification::has_session_info() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountSessionNotification::set_has_session_info() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountSessionNotification::clear_has_session_info() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountSessionNotification::clear_session_info() {
  if (session_info_ != NULL) session_info_->::bgs::protocol::account::v1::GameSessionUpdateInfo::Clear();
  clear_has_session_info();
}
inline const ::bgs::protocol::account::v1::GameSessionUpdateInfo& GameAccountSessionNotification::session_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountSessionNotification.session_info)
  return session_info_ != NULL ? *session_info_ : *default_instance_->session_info_;
}
inline ::bgs::protocol::account::v1::GameSessionUpdateInfo* GameAccountSessionNotification::mutable_session_info() {
  set_has_session_info();
  if (session_info_ == NULL) session_info_ = new ::bgs::protocol::account::v1::GameSessionUpdateInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountSessionNotification.session_info)
  return session_info_;
}
inline ::bgs::protocol::account::v1::GameSessionUpdateInfo* GameAccountSessionNotification::release_session_info() {
  clear_has_session_info();
  ::bgs::protocol::account::v1::GameSessionUpdateInfo* temp = session_info_;
  session_info_ = NULL;
  return temp;
}
inline void GameAccountSessionNotification::set_allocated_session_info(::bgs::protocol::account::v1::GameSessionUpdateInfo* session_info) {
  delete session_info_;
  session_info_ = session_info;
  if (session_info) {
    set_has_session_info();
  } else {
    clear_has_session_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountSessionNotification.session_info)
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace v1
}  // namespace account
}  // namespace protocol
}  // namespace bgs

#ifndef SWIG
namespace google {
namespace protobuf {


}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_account_5fservice_2eproto__INCLUDED
