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

#ifndef PROTOBUF_NewInit_2eproto__INCLUDED
#define PROTOBUF_NewInit_2eproto__INCLUDED

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 3003000
#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 3003000 < 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/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
namespace com {
namespace tencent {
namespace mars {
namespace microchat {
namespace proto {
class ContactInfo;
class ContactInfoDefaultTypeInternal;
extern ContactInfoDefaultTypeInternal _ContactInfo_default_instance_;
class ContactInfo_GroupMemberList;
class ContactInfo_GroupMemberListDefaultTypeInternal;
extern ContactInfo_GroupMemberListDefaultTypeInternal _ContactInfo_GroupMemberList_default_instance_;
class ContactInfo_GroupMemberList_MemberInfo;
class ContactInfo_GroupMemberList_MemberInfoDefaultTypeInternal;
extern ContactInfo_GroupMemberList_MemberInfoDefaultTypeInternal _ContactInfo_GroupMemberList_MemberInfo_default_instance_;
class ContactInfo_NICKNAME;
class ContactInfo_NICKNAMEDefaultTypeInternal;
extern ContactInfo_NICKNAMEDefaultTypeInternal _ContactInfo_NICKNAME_default_instance_;
class ContactInfo_PY_SHORT;
class ContactInfo_PY_SHORTDefaultTypeInternal;
extern ContactInfo_PY_SHORTDefaultTypeInternal _ContactInfo_PY_SHORT_default_instance_;
class ContactInfo_QuanPin;
class ContactInfo_QuanPinDefaultTypeInternal;
extern ContactInfo_QuanPinDefaultTypeInternal _ContactInfo_QuanPin_default_instance_;
class ContactInfo_REALNICKNAME;
class ContactInfo_REALNICKNAMEDefaultTypeInternal;
extern ContactInfo_REALNICKNAMEDefaultTypeInternal _ContactInfo_REALNICKNAME_default_instance_;
class ContactInfo_REAL_PY_SHORT;
class ContactInfo_REAL_PY_SHORTDefaultTypeInternal;
extern ContactInfo_REAL_PY_SHORTDefaultTypeInternal _ContactInfo_REAL_PY_SHORT_default_instance_;
class ContactInfo_REAL_QuanPin;
class ContactInfo_REAL_QuanPinDefaultTypeInternal;
extern ContactInfo_REAL_QuanPinDefaultTypeInternal _ContactInfo_REAL_QuanPin_default_instance_;
class ContactInfo_WXID;
class ContactInfo_WXIDDefaultTypeInternal;
extern ContactInfo_WXIDDefaultTypeInternal _ContactInfo_WXID_default_instance_;
class NewInitRequest;
class NewInitRequestDefaultTypeInternal;
extern NewInitRequestDefaultTypeInternal _NewInitRequest_default_instance_;
class NewInitRequest_LoginInfo;
class NewInitRequest_LoginInfoDefaultTypeInternal;
extern NewInitRequest_LoginInfoDefaultTypeInternal _NewInitRequest_LoginInfo_default_instance_;
class NewInitRequest_Tag3;
class NewInitRequest_Tag3DefaultTypeInternal;
extern NewInitRequest_Tag3DefaultTypeInternal _NewInitRequest_Tag3_default_instance_;
class NewInitRequest_Tag4;
class NewInitRequest_Tag4DefaultTypeInternal;
extern NewInitRequest_Tag4DefaultTypeInternal _NewInitRequest_Tag4_default_instance_;
class NewInitResponse;
class NewInitResponseDefaultTypeInternal;
extern NewInitResponseDefaultTypeInternal _NewInitResponse_default_instance_;
class NewInitResponse_SyncKey;
class NewInitResponse_SyncKeyDefaultTypeInternal;
extern NewInitResponse_SyncKeyDefaultTypeInternal _NewInitResponse_SyncKey_default_instance_;
class NewInitResponse_SyncKey_SyncArray;
class NewInitResponse_SyncKey_SyncArrayDefaultTypeInternal;
extern NewInitResponse_SyncKey_SyncArrayDefaultTypeInternal _NewInitResponse_SyncKey_SyncArray_default_instance_;
class NewInitResponse_SyncKey_SyncArray_sync;
class NewInitResponse_SyncKey_SyncArray_syncDefaultTypeInternal;
extern NewInitResponse_SyncKey_SyncArray_syncDefaultTypeInternal _NewInitResponse_SyncKey_SyncArray_sync_default_instance_;
class NewInitResponse_Tag7;
class NewInitResponse_Tag7DefaultTypeInternal;
extern NewInitResponse_Tag7DefaultTypeInternal _NewInitResponse_Tag7_default_instance_;
class NewInitResponse_Tag7_Data;
class NewInitResponse_Tag7_DataDefaultTypeInternal;
extern NewInitResponse_Tag7_DataDefaultTypeInternal _NewInitResponse_Tag7_Data_default_instance_;
class UserInfo;
class UserInfoDefaultTypeInternal;
extern UserInfoDefaultTypeInternal _UserInfo_default_instance_;
class UserInfo_BINDMOBILE;
class UserInfo_BINDMOBILEDefaultTypeInternal;
extern UserInfo_BINDMOBILEDefaultTypeInternal _UserInfo_BINDMOBILE_default_instance_;
class UserInfo_NICKNAME;
class UserInfo_NICKNAMEDefaultTypeInternal;
extern UserInfo_NICKNAMEDefaultTypeInternal _UserInfo_NICKNAME_default_instance_;
class UserInfo_WXID;
class UserInfo_WXIDDefaultTypeInternal;
extern UserInfo_WXIDDefaultTypeInternal _UserInfo_WXID_default_instance_;
}  // namespace proto
}  // namespace microchat
}  // namespace mars
}  // namespace tencent
}  // namespace com

namespace com {
namespace tencent {
namespace mars {
namespace microchat {
namespace proto {

namespace protobuf_NewInit_2eproto {
// Internal implementation detail -- do not call these.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[];
  static const ::google::protobuf::uint32 offsets[];
  static void InitDefaultsImpl();
  static void Shutdown();
};
void AddDescriptors();
void InitDefaults();
}  // namespace protobuf_NewInit_2eproto

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

class NewInitRequest_LoginInfo : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo) */ {
 public:
  NewInitRequest_LoginInfo();
  virtual ~NewInitRequest_LoginInfo();

  NewInitRequest_LoginInfo(const NewInitRequest_LoginInfo& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const NewInitRequest_LoginInfo* internal_default_instance() {
    return reinterpret_cast<const NewInitRequest_LoginInfo*>(
               &_NewInitRequest_LoginInfo_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    0;

  void Swap(NewInitRequest_LoginInfo* other);

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

  inline NewInitRequest_LoginInfo* New() const PROTOBUF_FINAL { return New(NULL); }

  NewInitRequest_LoginInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const NewInitRequest_LoginInfo& from);
  void MergeFrom(const NewInitRequest_LoginInfo& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(NewInitRequest_LoginInfo* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // required string aesKey = 1;
  bool has_aeskey() const;
  void clear_aeskey();
  static const int kAesKeyFieldNumber = 1;
  const ::std::string& aeskey() const;
  void set_aeskey(const ::std::string& value);
  #if LANG_CXX11
  void set_aeskey(::std::string&& value);
  #endif
  void set_aeskey(const char* value);
  void set_aeskey(const char* value, size_t size);
  ::std::string* mutable_aeskey();
  ::std::string* release_aeskey();
  void set_allocated_aeskey(::std::string* aeskey);

  // required string guid = 3;
  bool has_guid() const;
  void clear_guid();
  static const int kGuidFieldNumber = 3;
  const ::std::string& guid() const;
  void set_guid(const ::std::string& value);
  #if LANG_CXX11
  void set_guid(::std::string&& value);
  #endif
  void set_guid(const char* value);
  void set_guid(const char* value, size_t size);
  ::std::string* mutable_guid();
  ::std::string* release_guid();
  void set_allocated_guid(::std::string* guid);

  // required string androidVer = 5;
  bool has_androidver() const;
  void clear_androidver();
  static const int kAndroidVerFieldNumber = 5;
  const ::std::string& androidver() const;
  void set_androidver(const ::std::string& value);
  #if LANG_CXX11
  void set_androidver(::std::string&& value);
  #endif
  void set_androidver(const char* value);
  void set_androidver(const char* value, size_t size);
  ::std::string* mutable_androidver();
  ::std::string* release_androidver();
  void set_allocated_androidver(::std::string* androidver);

  // required int32 uin = 2;
  bool has_uin() const;
  void clear_uin();
  static const int kUinFieldNumber = 2;
  ::google::protobuf::int32 uin() const;
  void set_uin(::google::protobuf::int32 value);

  // required int32 clientVer = 4;
  bool has_clientver() const;
  void clear_clientver();
  static const int kClientVerFieldNumber = 4;
  ::google::protobuf::int32 clientver() const;
  void set_clientver(::google::protobuf::int32 value);

  // required int32 unknown3 = 6;
  bool has_unknown3() const;
  void clear_unknown3();
  static const int kUnknown3FieldNumber = 6;
  ::google::protobuf::int32 unknown3() const;
  void set_unknown3(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
 private:
  void set_has_aeskey();
  void clear_has_aeskey();
  void set_has_uin();
  void clear_has_uin();
  void set_has_guid();
  void clear_has_guid();
  void set_has_clientver();
  void clear_has_clientver();
  void set_has_androidver();
  void clear_has_androidver();
  void set_has_unknown3();
  void clear_has_unknown3();

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr aeskey_;
  ::google::protobuf::internal::ArenaStringPtr guid_;
  ::google::protobuf::internal::ArenaStringPtr androidver_;
  ::google::protobuf::int32 uin_;
  ::google::protobuf::int32 clientver_;
  ::google::protobuf::int32 unknown3_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NewInitRequest_Tag3 : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.NewInitRequest.Tag3) */ {
 public:
  NewInitRequest_Tag3();
  virtual ~NewInitRequest_Tag3();

  NewInitRequest_Tag3(const NewInitRequest_Tag3& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const NewInitRequest_Tag3* internal_default_instance() {
    return reinterpret_cast<const NewInitRequest_Tag3*>(
               &_NewInitRequest_Tag3_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    1;

  void Swap(NewInitRequest_Tag3* other);

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

  inline NewInitRequest_Tag3* New() const PROTOBUF_FINAL { return New(NULL); }

  NewInitRequest_Tag3* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const NewInitRequest_Tag3& from);
  void MergeFrom(const NewInitRequest_Tag3& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(NewInitRequest_Tag3* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string tag2 = 2;
  bool has_tag2() const;
  void clear_tag2();
  static const int kTag2FieldNumber = 2;
  const ::std::string& tag2() const;
  void set_tag2(const ::std::string& value);
  #if LANG_CXX11
  void set_tag2(::std::string&& value);
  #endif
  void set_tag2(const char* value);
  void set_tag2(const char* value, size_t size);
  ::std::string* mutable_tag2();
  ::std::string* release_tag2();
  void set_allocated_tag2(::std::string* tag2);

  // optional int32 len = 1;
  bool has_len() const;
  void clear_len();
  static const int kLenFieldNumber = 1;
  ::google::protobuf::int32 len() const;
  void set_len(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
 private:
  void set_has_len();
  void clear_has_len();
  void set_has_tag2();
  void clear_has_tag2();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr tag2_;
  ::google::protobuf::int32 len_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NewInitRequest_Tag4 : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.NewInitRequest.Tag4) */ {
 public:
  NewInitRequest_Tag4();
  virtual ~NewInitRequest_Tag4();

  NewInitRequest_Tag4(const NewInitRequest_Tag4& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const NewInitRequest_Tag4* internal_default_instance() {
    return reinterpret_cast<const NewInitRequest_Tag4*>(
               &_NewInitRequest_Tag4_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    2;

  void Swap(NewInitRequest_Tag4* other);

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

  inline NewInitRequest_Tag4* New() const PROTOBUF_FINAL { return New(NULL); }

  NewInitRequest_Tag4* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const NewInitRequest_Tag4& from);
  void MergeFrom(const NewInitRequest_Tag4& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(NewInitRequest_Tag4* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string tag2 = 2;
  bool has_tag2() const;
  void clear_tag2();
  static const int kTag2FieldNumber = 2;
  const ::std::string& tag2() const;
  void set_tag2(const ::std::string& value);
  #if LANG_CXX11
  void set_tag2(::std::string&& value);
  #endif
  void set_tag2(const char* value);
  void set_tag2(const char* value, size_t size);
  ::std::string* mutable_tag2();
  ::std::string* release_tag2();
  void set_allocated_tag2(::std::string* tag2);

  // optional int32 len = 1;
  bool has_len() const;
  void clear_len();
  static const int kLenFieldNumber = 1;
  ::google::protobuf::int32 len() const;
  void set_len(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
 private:
  void set_has_len();
  void clear_has_len();
  void set_has_tag2();
  void clear_has_tag2();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr tag2_;
  ::google::protobuf::int32 len_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NewInitRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.NewInitRequest) */ {
 public:
  NewInitRequest();
  virtual ~NewInitRequest();

  NewInitRequest(const NewInitRequest& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const NewInitRequest* internal_default_instance() {
    return reinterpret_cast<const NewInitRequest*>(
               &_NewInitRequest_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    3;

  void Swap(NewInitRequest* other);

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

  inline NewInitRequest* New() const PROTOBUF_FINAL { return New(NULL); }

  NewInitRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const NewInitRequest& from);
  void MergeFrom(const NewInitRequest& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(NewInitRequest* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

  typedef NewInitRequest_LoginInfo LoginInfo;
  typedef NewInitRequest_Tag3 Tag3;
  typedef NewInitRequest_Tag4 Tag4;

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

  // required string wxid = 2;
  bool has_wxid() const;
  void clear_wxid();
  static const int kWxidFieldNumber = 2;
  const ::std::string& wxid() const;
  void set_wxid(const ::std::string& value);
  #if LANG_CXX11
  void set_wxid(::std::string&& value);
  #endif
  void set_wxid(const char* value);
  void set_wxid(const char* value, size_t size);
  ::std::string* mutable_wxid();
  ::std::string* release_wxid();
  void set_allocated_wxid(::std::string* wxid);

  // required string language = 5;
  bool has_language() const;
  void clear_language();
  static const int kLanguageFieldNumber = 5;
  const ::std::string& language() const;
  void set_language(const ::std::string& value);
  #if LANG_CXX11
  void set_language(::std::string&& value);
  #endif
  void set_language(const char* value);
  void set_language(const char* value, size_t size);
  ::std::string* mutable_language();
  ::std::string* release_language();
  void set_allocated_language(::std::string* language);

  // required .com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo login = 1;
  bool has_login() const;
  void clear_login();
  static const int kLoginFieldNumber = 1;
  const ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo& login() const;
  ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* mutable_login();
  ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* release_login();
  void set_allocated_login(::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* login);

  // optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag3 tag3 = 3;
  bool has_tag3() const;
  void clear_tag3();
  static const int kTag3FieldNumber = 3;
  const ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3& tag3() const;
  ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* mutable_tag3();
  ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* release_tag3();
  void set_allocated_tag3(::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* tag3);

  // optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag4 tag4 = 4;
  bool has_tag4() const;
  void clear_tag4();
  static const int kTag4FieldNumber = 4;
  const ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4& tag4() const;
  ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* mutable_tag4();
  ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* release_tag4();
  void set_allocated_tag4(::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* tag4);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.NewInitRequest)
 private:
  void set_has_login();
  void clear_has_login();
  void set_has_wxid();
  void clear_has_wxid();
  void set_has_tag3();
  void clear_has_tag3();
  void set_has_tag4();
  void clear_has_tag4();
  void set_has_language();
  void clear_has_language();

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr wxid_;
  ::google::protobuf::internal::ArenaStringPtr language_;
  ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* login_;
  ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* tag3_;
  ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* tag4_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NewInitResponse_SyncKey_SyncArray_sync : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync) */ {
 public:
  NewInitResponse_SyncKey_SyncArray_sync();
  virtual ~NewInitResponse_SyncKey_SyncArray_sync();

  NewInitResponse_SyncKey_SyncArray_sync(const NewInitResponse_SyncKey_SyncArray_sync& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const NewInitResponse_SyncKey_SyncArray_sync* internal_default_instance() {
    return reinterpret_cast<const NewInitResponse_SyncKey_SyncArray_sync*>(
               &_NewInitResponse_SyncKey_SyncArray_sync_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    4;

  void Swap(NewInitResponse_SyncKey_SyncArray_sync* other);

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

  inline NewInitResponse_SyncKey_SyncArray_sync* New() const PROTOBUF_FINAL { return New(NULL); }

  NewInitResponse_SyncKey_SyncArray_sync* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const NewInitResponse_SyncKey_SyncArray_sync& from);
  void MergeFrom(const NewInitResponse_SyncKey_SyncArray_sync& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(NewInitResponse_SyncKey_SyncArray_sync* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string key = 2;
  bool has_key() const;
  void clear_key();
  static const int kKeyFieldNumber = 2;
  const ::std::string& key() const;
  void set_key(const ::std::string& value);
  #if LANG_CXX11
  void set_key(::std::string&& value);
  #endif
  void set_key(const char* value);
  void set_key(const char* value, size_t size);
  ::std::string* mutable_key();
  ::std::string* release_key();
  void set_allocated_key(::std::string* key);

  // optional int32 type = 1;
  bool has_type() const;
  void clear_type();
  static const int kTypeFieldNumber = 1;
  ::google::protobuf::int32 type() const;
  void set_type(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
 private:
  void set_has_type();
  void clear_has_type();
  void set_has_key();
  void clear_has_key();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr key_;
  ::google::protobuf::int32 type_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NewInitResponse_SyncKey_SyncArray : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray) */ {
 public:
  NewInitResponse_SyncKey_SyncArray();
  virtual ~NewInitResponse_SyncKey_SyncArray();

  NewInitResponse_SyncKey_SyncArray(const NewInitResponse_SyncKey_SyncArray& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const NewInitResponse_SyncKey_SyncArray* internal_default_instance() {
    return reinterpret_cast<const NewInitResponse_SyncKey_SyncArray*>(
               &_NewInitResponse_SyncKey_SyncArray_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    5;

  void Swap(NewInitResponse_SyncKey_SyncArray* other);

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

  inline NewInitResponse_SyncKey_SyncArray* New() const PROTOBUF_FINAL { return New(NULL); }

  NewInitResponse_SyncKey_SyncArray* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const NewInitResponse_SyncKey_SyncArray& from);
  void MergeFrom(const NewInitResponse_SyncKey_SyncArray& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(NewInitResponse_SyncKey_SyncArray* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

  typedef NewInitResponse_SyncKey_SyncArray_sync sync;

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

  // repeated .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync sync_array = 2;
  int sync_array_size() const;
  void clear_sync_array();
  static const int kSyncArrayFieldNumber = 2;
  const ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync& sync_array(int index) const;
  ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync* mutable_sync_array(int index);
  ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync* add_sync_array();
  ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync >*
      mutable_sync_array();
  const ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync >&
      sync_array() const;

  // optional int32 cnt = 1;
  bool has_cnt() const;
  void clear_cnt();
  static const int kCntFieldNumber = 1;
  ::google::protobuf::int32 cnt() const;
  void set_cnt(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
 private:
  void set_has_cnt();
  void clear_has_cnt();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync > sync_array_;
  ::google::protobuf::int32 cnt_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NewInitResponse_SyncKey : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey) */ {
 public:
  NewInitResponse_SyncKey();
  virtual ~NewInitResponse_SyncKey();

  NewInitResponse_SyncKey(const NewInitResponse_SyncKey& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const NewInitResponse_SyncKey* internal_default_instance() {
    return reinterpret_cast<const NewInitResponse_SyncKey*>(
               &_NewInitResponse_SyncKey_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    6;

  void Swap(NewInitResponse_SyncKey* other);

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

  inline NewInitResponse_SyncKey* New() const PROTOBUF_FINAL { return New(NULL); }

  NewInitResponse_SyncKey* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const NewInitResponse_SyncKey& from);
  void MergeFrom(const NewInitResponse_SyncKey& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(NewInitResponse_SyncKey* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

  typedef NewInitResponse_SyncKey_SyncArray SyncArray;

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

  // optional int32 len = 1;
  bool has_len() const;
  void clear_len();
  static const int kLenFieldNumber = 1;
  ::google::protobuf::int32 len() const;
  void set_len(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
 private:
  void set_has_len();
  void clear_has_len();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::int32 len_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NewInitResponse_Tag7_Data : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data) */ {
 public:
  NewInitResponse_Tag7_Data();
  virtual ~NewInitResponse_Tag7_Data();

  NewInitResponse_Tag7_Data(const NewInitResponse_Tag7_Data& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const NewInitResponse_Tag7_Data* internal_default_instance() {
    return reinterpret_cast<const NewInitResponse_Tag7_Data*>(
               &_NewInitResponse_Tag7_Data_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    7;

  void Swap(NewInitResponse_Tag7_Data* other);

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

  inline NewInitResponse_Tag7_Data* New() const PROTOBUF_FINAL { return New(NULL); }

  NewInitResponse_Tag7_Data* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const NewInitResponse_Tag7_Data& from);
  void MergeFrom(const NewInitResponse_Tag7_Data& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(NewInitResponse_Tag7_Data* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string data = 2;
  bool has_data() const;
  void clear_data();
  static const int kDataFieldNumber = 2;
  const ::std::string& data() const;
  void set_data(const ::std::string& value);
  #if LANG_CXX11
  void set_data(::std::string&& value);
  #endif
  void set_data(const char* value);
  void set_data(const char* value, size_t size);
  ::std::string* mutable_data();
  ::std::string* release_data();
  void set_allocated_data(::std::string* data);

  // optional int32 len = 1;
  bool has_len() const;
  void clear_len();
  static const int kLenFieldNumber = 1;
  ::google::protobuf::int32 len() const;
  void set_len(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
 private:
  void set_has_len();
  void clear_has_len();
  void set_has_data();
  void clear_has_data();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr data_;
  ::google::protobuf::int32 len_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NewInitResponse_Tag7 : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.NewInitResponse.Tag7) */ {
 public:
  NewInitResponse_Tag7();
  virtual ~NewInitResponse_Tag7();

  NewInitResponse_Tag7(const NewInitResponse_Tag7& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const NewInitResponse_Tag7* internal_default_instance() {
    return reinterpret_cast<const NewInitResponse_Tag7*>(
               &_NewInitResponse_Tag7_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    8;

  void Swap(NewInitResponse_Tag7* other);

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

  inline NewInitResponse_Tag7* New() const PROTOBUF_FINAL { return New(NULL); }

  NewInitResponse_Tag7* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const NewInitResponse_Tag7& from);
  void MergeFrom(const NewInitResponse_Tag7& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(NewInitResponse_Tag7* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

  typedef NewInitResponse_Tag7_Data Data;

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

  // optional .com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data data = 2;
  bool has_data() const;
  void clear_data();
  static const int kDataFieldNumber = 2;
  const ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data& data() const;
  ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* mutable_data();
  ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* release_data();
  void set_allocated_data(::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* data);

  // optional int32 type = 1;
  bool has_type() const;
  void clear_type();
  static const int kTypeFieldNumber = 1;
  ::google::protobuf::int32 type() const;
  void set_type(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
 private:
  void set_has_type();
  void clear_has_type();
  void set_has_data();
  void clear_has_data();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* data_;
  ::google::protobuf::int32 type_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NewInitResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.NewInitResponse) */ {
 public:
  NewInitResponse();
  virtual ~NewInitResponse();

  NewInitResponse(const NewInitResponse& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const NewInitResponse* internal_default_instance() {
    return reinterpret_cast<const NewInitResponse*>(
               &_NewInitResponse_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    9;

  void Swap(NewInitResponse* other);

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

  inline NewInitResponse* New() const PROTOBUF_FINAL { return New(NULL); }

  NewInitResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const NewInitResponse& from);
  void MergeFrom(const NewInitResponse& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(NewInitResponse* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

  typedef NewInitResponse_SyncKey SyncKey;
  typedef NewInitResponse_Tag7 Tag7;

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

  // repeated .com.tencent.mars.microchat.proto.NewInitResponse.Tag7 tag7 = 7;
  int tag7_size() const;
  void clear_tag7();
  static const int kTag7FieldNumber = 7;
  const ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7& tag7(int index) const;
  ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7* mutable_tag7(int index);
  ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7* add_tag7();
  ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7 >*
      mutable_tag7();
  const ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7 >&
      tag7() const;

  // optional string tag1 = 1;
  bool has_tag1() const;
  void clear_tag1();
  static const int kTag1FieldNumber = 1;
  const ::std::string& tag1() const;
  void set_tag1(const ::std::string& value);
  #if LANG_CXX11
  void set_tag1(::std::string&& value);
  #endif
  void set_tag1(const char* value);
  void set_tag1(const char* value, size_t size);
  ::std::string* mutable_tag1();
  ::std::string* release_tag1();
  void set_allocated_tag1(::std::string* tag1);

  // optional string sync2 = 2;
  bool has_sync2() const;
  void clear_sync2();
  static const int kSync2FieldNumber = 2;
  const ::std::string& sync2() const;
  void set_sync2(const ::std::string& value);
  #if LANG_CXX11
  void set_sync2(::std::string&& value);
  #endif
  void set_sync2(const char* value);
  void set_sync2(const char* value, size_t size);
  ::std::string* mutable_sync2();
  ::std::string* release_sync2();
  void set_allocated_sync2(::std::string* sync2);

  // optional .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey sync3 = 3;
  bool has_sync3() const;
  void clear_sync3();
  static const int kSync3FieldNumber = 3;
  const ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey& sync3() const;
  ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* mutable_sync3();
  ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* release_sync3();
  void set_allocated_sync3(::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* sync3);

  // optional int32 tag4 = 4;
  bool has_tag4() const;
  void clear_tag4();
  static const int kTag4FieldNumber = 4;
  ::google::protobuf::int32 tag4() const;
  void set_tag4(::google::protobuf::int32 value);

  // optional int32 tag5 = 5;
  bool has_tag5() const;
  void clear_tag5();
  static const int kTag5FieldNumber = 5;
  ::google::protobuf::int32 tag5() const;
  void set_tag5(::google::protobuf::int32 value);

  // optional int32 cntList = 6;
  bool has_cntlist() const;
  void clear_cntlist();
  static const int kCntListFieldNumber = 6;
  ::google::protobuf::int32 cntlist() const;
  void set_cntlist(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.NewInitResponse)
 private:
  void set_has_tag1();
  void clear_has_tag1();
  void set_has_sync2();
  void clear_has_sync2();
  void set_has_sync3();
  void clear_has_sync3();
  void set_has_tag4();
  void clear_has_tag4();
  void set_has_tag5();
  void clear_has_tag5();
  void set_has_cntlist();
  void clear_has_cntlist();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7 > tag7_;
  ::google::protobuf::internal::ArenaStringPtr tag1_;
  ::google::protobuf::internal::ArenaStringPtr sync2_;
  ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* sync3_;
  ::google::protobuf::int32 tag4_;
  ::google::protobuf::int32 tag5_;
  ::google::protobuf::int32 cntlist_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class UserInfo_WXID : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.UserInfo.WXID) */ {
 public:
  UserInfo_WXID();
  virtual ~UserInfo_WXID();

  UserInfo_WXID(const UserInfo_WXID& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const UserInfo_WXID* internal_default_instance() {
    return reinterpret_cast<const UserInfo_WXID*>(
               &_UserInfo_WXID_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    10;

  void Swap(UserInfo_WXID* other);

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

  inline UserInfo_WXID* New() const PROTOBUF_FINAL { return New(NULL); }

  UserInfo_WXID* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const UserInfo_WXID& from);
  void MergeFrom(const UserInfo_WXID& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(UserInfo_WXID* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string id = 1;
  bool has_id() const;
  void clear_id();
  static const int kIdFieldNumber = 1;
  const ::std::string& id() const;
  void set_id(const ::std::string& value);
  #if LANG_CXX11
  void set_id(::std::string&& value);
  #endif
  void set_id(const char* value);
  void set_id(const char* value, size_t size);
  ::std::string* mutable_id();
  ::std::string* release_id();
  void set_allocated_id(::std::string* id);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.UserInfo.WXID)
 private:
  void set_has_id();
  void clear_has_id();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr id_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class UserInfo_NICKNAME : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.UserInfo.NICKNAME) */ {
 public:
  UserInfo_NICKNAME();
  virtual ~UserInfo_NICKNAME();

  UserInfo_NICKNAME(const UserInfo_NICKNAME& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const UserInfo_NICKNAME* internal_default_instance() {
    return reinterpret_cast<const UserInfo_NICKNAME*>(
               &_UserInfo_NICKNAME_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    11;

  void Swap(UserInfo_NICKNAME* other);

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

  inline UserInfo_NICKNAME* New() const PROTOBUF_FINAL { return New(NULL); }

  UserInfo_NICKNAME* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const UserInfo_NICKNAME& from);
  void MergeFrom(const UserInfo_NICKNAME& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(UserInfo_NICKNAME* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string name = 1;
  bool has_name() const;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  #if LANG_CXX11
  void set_name(::std::string&& value);
  #endif
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
 private:
  void set_has_name();
  void clear_has_name();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class UserInfo_BINDMOBILE : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE) */ {
 public:
  UserInfo_BINDMOBILE();
  virtual ~UserInfo_BINDMOBILE();

  UserInfo_BINDMOBILE(const UserInfo_BINDMOBILE& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const UserInfo_BINDMOBILE* internal_default_instance() {
    return reinterpret_cast<const UserInfo_BINDMOBILE*>(
               &_UserInfo_BINDMOBILE_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    12;

  void Swap(UserInfo_BINDMOBILE* other);

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

  inline UserInfo_BINDMOBILE* New() const PROTOBUF_FINAL { return New(NULL); }

  UserInfo_BINDMOBILE* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const UserInfo_BINDMOBILE& from);
  void MergeFrom(const UserInfo_BINDMOBILE& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(UserInfo_BINDMOBILE* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string mobile = 1;
  bool has_mobile() const;
  void clear_mobile();
  static const int kMobileFieldNumber = 1;
  const ::std::string& mobile() const;
  void set_mobile(const ::std::string& value);
  #if LANG_CXX11
  void set_mobile(::std::string&& value);
  #endif
  void set_mobile(const char* value);
  void set_mobile(const char* value, size_t size);
  ::std::string* mutable_mobile();
  ::std::string* release_mobile();
  void set_allocated_mobile(::std::string* mobile);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
 private:
  void set_has_mobile();
  void clear_has_mobile();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr mobile_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class UserInfo : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.UserInfo) */ {
 public:
  UserInfo();
  virtual ~UserInfo();

  UserInfo(const UserInfo& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const UserInfo* internal_default_instance() {
    return reinterpret_cast<const UserInfo*>(
               &_UserInfo_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    13;

  void Swap(UserInfo* other);

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

  inline UserInfo* New() const PROTOBUF_FINAL { return New(NULL); }

  UserInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const UserInfo& from);
  void MergeFrom(const UserInfo& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(UserInfo* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

  typedef UserInfo_WXID WXID;
  typedef UserInfo_NICKNAME NICKNAME;
  typedef UserInfo_BINDMOBILE BINDMOBILE;

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

  // optional string bindemail = 5;
  bool has_bindemail() const;
  void clear_bindemail();
  static const int kBindemailFieldNumber = 5;
  const ::std::string& bindemail() const;
  void set_bindemail(const ::std::string& value);
  #if LANG_CXX11
  void set_bindemail(::std::string&& value);
  #endif
  void set_bindemail(const char* value);
  void set_bindemail(const char* value, size_t size);
  ::std::string* mutable_bindemail();
  ::std::string* release_bindemail();
  void set_allocated_bindemail(::std::string* bindemail);

  // optional string sheng = 11;
  bool has_sheng() const;
  void clear_sheng();
  static const int kShengFieldNumber = 11;
  const ::std::string& sheng() const;
  void set_sheng(const ::std::string& value);
  #if LANG_CXX11
  void set_sheng(::std::string&& value);
  #endif
  void set_sheng(const char* value);
  void set_sheng(const char* value, size_t size);
  ::std::string* mutable_sheng();
  ::std::string* release_sheng();
  void set_allocated_sheng(::std::string* sheng);

  // optional string shi = 12;
  bool has_shi() const;
  void clear_shi();
  static const int kShiFieldNumber = 12;
  const ::std::string& shi() const;
  void set_shi(const ::std::string& value);
  #if LANG_CXX11
  void set_shi(::std::string&& value);
  #endif
  void set_shi(const char* value);
  void set_shi(const char* value, size_t size);
  ::std::string* mutable_shi();
  ::std::string* release_shi();
  void set_allocated_shi(::std::string* shi);

  // optional string qianming = 13;
  bool has_qianming() const;
  void clear_qianming();
  static const int kQianmingFieldNumber = 13;
  const ::std::string& qianming() const;
  void set_qianming(const ::std::string& value);
  #if LANG_CXX11
  void set_qianming(::std::string&& value);
  #endif
  void set_qianming(const char* value);
  void set_qianming(const char* value, size_t size);
  ::std::string* mutable_qianming();
  ::std::string* release_qianming();
  void set_allocated_qianming(::std::string* qianming);

  // optional string tag15 = 15;
  bool has_tag15() const;
  void clear_tag15();
  static const int kTag15FieldNumber = 15;
  const ::std::string& tag15() const;
  void set_tag15(const ::std::string& value);
  #if LANG_CXX11
  void set_tag15(::std::string&& value);
  #endif
  void set_tag15(const char* value);
  void set_tag15(const char* value, size_t size);
  ::std::string* mutable_tag15();
  ::std::string* release_tag15();
  void set_allocated_tag15(::std::string* tag15);

  // optional string tag26 = 26;
  bool has_tag26() const;
  void clear_tag26();
  static const int kTag26FieldNumber = 26;
  const ::std::string& tag26() const;
  void set_tag26(const ::std::string& value);
  #if LANG_CXX11
  void set_tag26(::std::string&& value);
  #endif
  void set_tag26(const char* value);
  void set_tag26(const char* value, size_t size);
  ::std::string* mutable_tag26();
  ::std::string* release_tag26();
  void set_allocated_tag26(::std::string* tag26);

  // optional string alias = 27;
  bool has_alias() const;
  void clear_alias();
  static const int kAliasFieldNumber = 27;
  const ::std::string& alias() const;
  void set_alias(const ::std::string& value);
  #if LANG_CXX11
  void set_alias(::std::string&& value);
  #endif
  void set_alias(const char* value);
  void set_alias(const char* value, size_t size);
  ::std::string* mutable_alias();
  ::std::string* release_alias();
  void set_allocated_alias(::std::string* alias);

  // optional string country = 38;
  bool has_country() const;
  void clear_country();
  static const int kCountryFieldNumber = 38;
  const ::std::string& country() const;
  void set_country(const ::std::string& value);
  #if LANG_CXX11
  void set_country(::std::string&& value);
  #endif
  void set_country(const char* value);
  void set_country(const char* value, size_t size);
  ::std::string* mutable_country();
  ::std::string* release_country();
  void set_allocated_country(::std::string* country);

  // optional .com.tencent.mars.microchat.proto.UserInfo.WXID wxid = 2;
  bool has_wxid() const;
  void clear_wxid();
  static const int kWxidFieldNumber = 2;
  const ::com::tencent::mars::microchat::proto::UserInfo_WXID& wxid() const;
  ::com::tencent::mars::microchat::proto::UserInfo_WXID* mutable_wxid();
  ::com::tencent::mars::microchat::proto::UserInfo_WXID* release_wxid();
  void set_allocated_wxid(::com::tencent::mars::microchat::proto::UserInfo_WXID* wxid);

  // optional .com.tencent.mars.microchat.proto.UserInfo.NICKNAME nickname = 3;
  bool has_nickname() const;
  void clear_nickname();
  static const int kNicknameFieldNumber = 3;
  const ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME& nickname() const;
  ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* mutable_nickname();
  ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* release_nickname();
  void set_allocated_nickname(::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* nickname);

  // optional .com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE mobile = 6;
  bool has_mobile() const;
  void clear_mobile();
  static const int kMobileFieldNumber = 6;
  const ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE& mobile() const;
  ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* mutable_mobile();
  ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* release_mobile();
  void set_allocated_mobile(::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* mobile);

  // optional int32 bitFlag = 1;
  bool has_bitflag() const;
  void clear_bitflag();
  static const int kBitFlagFieldNumber = 1;
  ::google::protobuf::int32 bitflag() const;
  void set_bitflag(::google::protobuf::int32 value);

  // optional int32 bBindEmail = 4;
  bool has_bbindemail() const;
  void clear_bbindemail();
  static const int kBBindEmailFieldNumber = 4;
  ::google::protobuf::int32 bbindemail() const;
  void set_bbindemail(::google::protobuf::int32 value);

  // optional int32 status = 7;
  bool has_status() const;
  void clear_status();
  static const int kStatusFieldNumber = 7;
  ::google::protobuf::int32 status() const;
  void set_status(::google::protobuf::int32 value);

  // optional int32 tag8 = 8;
  bool has_tag8() const;
  void clear_tag8();
  static const int kTag8FieldNumber = 8;
  ::google::protobuf::int32 tag8() const;
  void set_tag8(::google::protobuf::int32 value);

  // optional int32 tag10 = 10;
  bool has_tag10() const;
  void clear_tag10();
  static const int kTag10FieldNumber = 10;
  ::google::protobuf::int32 tag10() const;
  void set_tag10(::google::protobuf::int32 value);

  // optional int32 tag14 = 14;
  bool has_tag14() const;
  void clear_tag14();
  static const int kTag14FieldNumber = 14;
  ::google::protobuf::int32 tag14() const;
  void set_tag14(::google::protobuf::int32 value);

  // optional int32 pluginFlag = 16;
  bool has_pluginflag() const;
  void clear_pluginflag();
  static const int kPluginFlagFieldNumber = 16;
  ::google::protobuf::int32 pluginflag() const;
  void set_pluginflag(::google::protobuf::int32 value);

  // optional int32 tag17 = 17;
  bool has_tag17() const;
  void clear_tag17();
  static const int kTag17FieldNumber = 17;
  ::google::protobuf::int32 tag17() const;
  void set_tag17(::google::protobuf::int32 value);

  // optional int32 tag19 = 19;
  bool has_tag19() const;
  void clear_tag19();
  static const int kTag19FieldNumber = 19;
  ::google::protobuf::int32 tag19() const;
  void set_tag19(::google::protobuf::int32 value);

  // optional int32 tag20 = 20;
  bool has_tag20() const;
  void clear_tag20();
  static const int kTag20FieldNumber = 20;
  ::google::protobuf::int32 tag20() const;
  void set_tag20(::google::protobuf::int32 value);

  // optional int32 tag21 = 21;
  bool has_tag21() const;
  void clear_tag21();
  static const int kTag21FieldNumber = 21;
  ::google::protobuf::int32 tag21() const;
  void set_tag21(::google::protobuf::int32 value);

  // optional int32 tag22 = 22;
  bool has_tag22() const;
  void clear_tag22();
  static const int kTag22FieldNumber = 22;
  ::google::protobuf::int32 tag22() const;
  void set_tag22(::google::protobuf::int32 value);

  // optional int32 tag23 = 23;
  bool has_tag23() const;
  void clear_tag23();
  static const int kTag23FieldNumber = 23;
  ::google::protobuf::int32 tag23() const;
  void set_tag23(::google::protobuf::int32 value);

  // optional int32 PluginSwitch = 25;
  bool has_pluginswitch() const;
  void clear_pluginswitch();
  static const int kPluginSwitchFieldNumber = 25;
  ::google::protobuf::int32 pluginswitch() const;
  void set_pluginswitch(::google::protobuf::int32 value);

  // optional int32 tag29 = 29;
  bool has_tag29() const;
  void clear_tag29();
  static const int kTag29FieldNumber = 29;
  ::google::protobuf::int32 tag29() const;
  void set_tag29(::google::protobuf::int32 value);

  // optional int32 tag30 = 30;
  bool has_tag30() const;
  void clear_tag30();
  static const int kTag30FieldNumber = 30;
  ::google::protobuf::int32 tag30() const;
  void set_tag30(::google::protobuf::int32 value);

  // optional int32 tag31 = 31;
  bool has_tag31() const;
  void clear_tag31();
  static const int kTag31FieldNumber = 31;
  ::google::protobuf::int32 tag31() const;
  void set_tag31(::google::protobuf::int32 value);

  // optional int32 tag33 = 33;
  bool has_tag33() const;
  void clear_tag33();
  static const int kTag33FieldNumber = 33;
  ::google::protobuf::int32 tag33() const;
  void set_tag33(::google::protobuf::int32 value);

  // optional int32 tag34 = 34;
  bool has_tag34() const;
  void clear_tag34();
  static const int kTag34FieldNumber = 34;
  ::google::protobuf::int32 tag34() const;
  void set_tag34(::google::protobuf::int32 value);

  // optional int32 tag36 = 37;
  bool has_tag36() const;
  void clear_tag36();
  static const int kTag36FieldNumber = 37;
  ::google::protobuf::int32 tag36() const;
  void set_tag36(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.UserInfo)
 private:
  void set_has_bitflag();
  void clear_has_bitflag();
  void set_has_wxid();
  void clear_has_wxid();
  void set_has_nickname();
  void clear_has_nickname();
  void set_has_bbindemail();
  void clear_has_bbindemail();
  void set_has_bindemail();
  void clear_has_bindemail();
  void set_has_mobile();
  void clear_has_mobile();
  void set_has_status();
  void clear_has_status();
  void set_has_tag8();
  void clear_has_tag8();
  void set_has_tag10();
  void clear_has_tag10();
  void set_has_sheng();
  void clear_has_sheng();
  void set_has_shi();
  void clear_has_shi();
  void set_has_qianming();
  void clear_has_qianming();
  void set_has_tag14();
  void clear_has_tag14();
  void set_has_tag15();
  void clear_has_tag15();
  void set_has_pluginflag();
  void clear_has_pluginflag();
  void set_has_tag17();
  void clear_has_tag17();
  void set_has_tag19();
  void clear_has_tag19();
  void set_has_tag20();
  void clear_has_tag20();
  void set_has_tag21();
  void clear_has_tag21();
  void set_has_tag22();
  void clear_has_tag22();
  void set_has_tag23();
  void clear_has_tag23();
  void set_has_pluginswitch();
  void clear_has_pluginswitch();
  void set_has_tag26();
  void clear_has_tag26();
  void set_has_alias();
  void clear_has_alias();
  void set_has_tag29();
  void clear_has_tag29();
  void set_has_tag30();
  void clear_has_tag30();
  void set_has_tag31();
  void clear_has_tag31();
  void set_has_tag33();
  void clear_has_tag33();
  void set_has_tag34();
  void clear_has_tag34();
  void set_has_tag36();
  void clear_has_tag36();
  void set_has_country();
  void clear_has_country();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr bindemail_;
  ::google::protobuf::internal::ArenaStringPtr sheng_;
  ::google::protobuf::internal::ArenaStringPtr shi_;
  ::google::protobuf::internal::ArenaStringPtr qianming_;
  ::google::protobuf::internal::ArenaStringPtr tag15_;
  ::google::protobuf::internal::ArenaStringPtr tag26_;
  ::google::protobuf::internal::ArenaStringPtr alias_;
  ::google::protobuf::internal::ArenaStringPtr country_;
  ::com::tencent::mars::microchat::proto::UserInfo_WXID* wxid_;
  ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* nickname_;
  ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* mobile_;
  ::google::protobuf::int32 bitflag_;
  ::google::protobuf::int32 bbindemail_;
  ::google::protobuf::int32 status_;
  ::google::protobuf::int32 tag8_;
  ::google::protobuf::int32 tag10_;
  ::google::protobuf::int32 tag14_;
  ::google::protobuf::int32 pluginflag_;
  ::google::protobuf::int32 tag17_;
  ::google::protobuf::int32 tag19_;
  ::google::protobuf::int32 tag20_;
  ::google::protobuf::int32 tag21_;
  ::google::protobuf::int32 tag22_;
  ::google::protobuf::int32 tag23_;
  ::google::protobuf::int32 pluginswitch_;
  ::google::protobuf::int32 tag29_;
  ::google::protobuf::int32 tag30_;
  ::google::protobuf::int32 tag31_;
  ::google::protobuf::int32 tag33_;
  ::google::protobuf::int32 tag34_;
  ::google::protobuf::int32 tag36_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ContactInfo_WXID : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.ContactInfo.WXID) */ {
 public:
  ContactInfo_WXID();
  virtual ~ContactInfo_WXID();

  ContactInfo_WXID(const ContactInfo_WXID& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const ContactInfo_WXID* internal_default_instance() {
    return reinterpret_cast<const ContactInfo_WXID*>(
               &_ContactInfo_WXID_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    14;

  void Swap(ContactInfo_WXID* other);

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

  inline ContactInfo_WXID* New() const PROTOBUF_FINAL { return New(NULL); }

  ContactInfo_WXID* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ContactInfo_WXID& from);
  void MergeFrom(const ContactInfo_WXID& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ContactInfo_WXID* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string id = 1;
  bool has_id() const;
  void clear_id();
  static const int kIdFieldNumber = 1;
  const ::std::string& id() const;
  void set_id(const ::std::string& value);
  #if LANG_CXX11
  void set_id(::std::string&& value);
  #endif
  void set_id(const char* value);
  void set_id(const char* value, size_t size);
  ::std::string* mutable_id();
  ::std::string* release_id();
  void set_allocated_id(::std::string* id);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.ContactInfo.WXID)
 private:
  void set_has_id();
  void clear_has_id();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr id_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ContactInfo_NICKNAME : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME) */ {
 public:
  ContactInfo_NICKNAME();
  virtual ~ContactInfo_NICKNAME();

  ContactInfo_NICKNAME(const ContactInfo_NICKNAME& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const ContactInfo_NICKNAME* internal_default_instance() {
    return reinterpret_cast<const ContactInfo_NICKNAME*>(
               &_ContactInfo_NICKNAME_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    15;

  void Swap(ContactInfo_NICKNAME* other);

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

  inline ContactInfo_NICKNAME* New() const PROTOBUF_FINAL { return New(NULL); }

  ContactInfo_NICKNAME* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ContactInfo_NICKNAME& from);
  void MergeFrom(const ContactInfo_NICKNAME& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ContactInfo_NICKNAME* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string name = 1;
  bool has_name() const;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  #if LANG_CXX11
  void set_name(::std::string&& value);
  #endif
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
 private:
  void set_has_name();
  void clear_has_name();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ContactInfo_PY_SHORT : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT) */ {
 public:
  ContactInfo_PY_SHORT();
  virtual ~ContactInfo_PY_SHORT();

  ContactInfo_PY_SHORT(const ContactInfo_PY_SHORT& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const ContactInfo_PY_SHORT* internal_default_instance() {
    return reinterpret_cast<const ContactInfo_PY_SHORT*>(
               &_ContactInfo_PY_SHORT_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    16;

  void Swap(ContactInfo_PY_SHORT* other);

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

  inline ContactInfo_PY_SHORT* New() const PROTOBUF_FINAL { return New(NULL); }

  ContactInfo_PY_SHORT* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ContactInfo_PY_SHORT& from);
  void MergeFrom(const ContactInfo_PY_SHORT& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ContactInfo_PY_SHORT* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string name = 1;
  bool has_name() const;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  #if LANG_CXX11
  void set_name(::std::string&& value);
  #endif
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
 private:
  void set_has_name();
  void clear_has_name();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ContactInfo_QuanPin : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.ContactInfo.QuanPin) */ {
 public:
  ContactInfo_QuanPin();
  virtual ~ContactInfo_QuanPin();

  ContactInfo_QuanPin(const ContactInfo_QuanPin& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const ContactInfo_QuanPin* internal_default_instance() {
    return reinterpret_cast<const ContactInfo_QuanPin*>(
               &_ContactInfo_QuanPin_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    17;

  void Swap(ContactInfo_QuanPin* other);

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

  inline ContactInfo_QuanPin* New() const PROTOBUF_FINAL { return New(NULL); }

  ContactInfo_QuanPin* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ContactInfo_QuanPin& from);
  void MergeFrom(const ContactInfo_QuanPin& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ContactInfo_QuanPin* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string name = 1;
  bool has_name() const;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  #if LANG_CXX11
  void set_name(::std::string&& value);
  #endif
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
 private:
  void set_has_name();
  void clear_has_name();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ContactInfo_REALNICKNAME : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME) */ {
 public:
  ContactInfo_REALNICKNAME();
  virtual ~ContactInfo_REALNICKNAME();

  ContactInfo_REALNICKNAME(const ContactInfo_REALNICKNAME& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const ContactInfo_REALNICKNAME* internal_default_instance() {
    return reinterpret_cast<const ContactInfo_REALNICKNAME*>(
               &_ContactInfo_REALNICKNAME_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    18;

  void Swap(ContactInfo_REALNICKNAME* other);

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

  inline ContactInfo_REALNICKNAME* New() const PROTOBUF_FINAL { return New(NULL); }

  ContactInfo_REALNICKNAME* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ContactInfo_REALNICKNAME& from);
  void MergeFrom(const ContactInfo_REALNICKNAME& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ContactInfo_REALNICKNAME* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string name = 1;
  bool has_name() const;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  #if LANG_CXX11
  void set_name(::std::string&& value);
  #endif
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
 private:
  void set_has_name();
  void clear_has_name();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ContactInfo_REAL_PY_SHORT : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT) */ {
 public:
  ContactInfo_REAL_PY_SHORT();
  virtual ~ContactInfo_REAL_PY_SHORT();

  ContactInfo_REAL_PY_SHORT(const ContactInfo_REAL_PY_SHORT& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const ContactInfo_REAL_PY_SHORT* internal_default_instance() {
    return reinterpret_cast<const ContactInfo_REAL_PY_SHORT*>(
               &_ContactInfo_REAL_PY_SHORT_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    19;

  void Swap(ContactInfo_REAL_PY_SHORT* other);

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

  inline ContactInfo_REAL_PY_SHORT* New() const PROTOBUF_FINAL { return New(NULL); }

  ContactInfo_REAL_PY_SHORT* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ContactInfo_REAL_PY_SHORT& from);
  void MergeFrom(const ContactInfo_REAL_PY_SHORT& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ContactInfo_REAL_PY_SHORT* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string name = 1;
  bool has_name() const;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  #if LANG_CXX11
  void set_name(::std::string&& value);
  #endif
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
 private:
  void set_has_name();
  void clear_has_name();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ContactInfo_REAL_QuanPin : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin) */ {
 public:
  ContactInfo_REAL_QuanPin();
  virtual ~ContactInfo_REAL_QuanPin();

  ContactInfo_REAL_QuanPin(const ContactInfo_REAL_QuanPin& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const ContactInfo_REAL_QuanPin* internal_default_instance() {
    return reinterpret_cast<const ContactInfo_REAL_QuanPin*>(
               &_ContactInfo_REAL_QuanPin_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    20;

  void Swap(ContactInfo_REAL_QuanPin* other);

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

  inline ContactInfo_REAL_QuanPin* New() const PROTOBUF_FINAL { return New(NULL); }

  ContactInfo_REAL_QuanPin* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ContactInfo_REAL_QuanPin& from);
  void MergeFrom(const ContactInfo_REAL_QuanPin& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ContactInfo_REAL_QuanPin* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string name = 1;
  bool has_name() const;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  #if LANG_CXX11
  void set_name(::std::string&& value);
  #endif
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
 private:
  void set_has_name();
  void clear_has_name();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ContactInfo_GroupMemberList_MemberInfo : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo) */ {
 public:
  ContactInfo_GroupMemberList_MemberInfo();
  virtual ~ContactInfo_GroupMemberList_MemberInfo();

  ContactInfo_GroupMemberList_MemberInfo(const ContactInfo_GroupMemberList_MemberInfo& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const ContactInfo_GroupMemberList_MemberInfo* internal_default_instance() {
    return reinterpret_cast<const ContactInfo_GroupMemberList_MemberInfo*>(
               &_ContactInfo_GroupMemberList_MemberInfo_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    21;

  void Swap(ContactInfo_GroupMemberList_MemberInfo* other);

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

  inline ContactInfo_GroupMemberList_MemberInfo* New() const PROTOBUF_FINAL { return New(NULL); }

  ContactInfo_GroupMemberList_MemberInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ContactInfo_GroupMemberList_MemberInfo& from);
  void MergeFrom(const ContactInfo_GroupMemberList_MemberInfo& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ContactInfo_GroupMemberList_MemberInfo* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

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

  // optional string wxid = 1;
  bool has_wxid() const;
  void clear_wxid();
  static const int kWxidFieldNumber = 1;
  const ::std::string& wxid() const;
  void set_wxid(const ::std::string& value);
  #if LANG_CXX11
  void set_wxid(::std::string&& value);
  #endif
  void set_wxid(const char* value);
  void set_wxid(const char* value, size_t size);
  ::std::string* mutable_wxid();
  ::std::string* release_wxid();
  void set_allocated_wxid(::std::string* wxid);

  // optional int32 tag6 = 6;
  bool has_tag6() const;
  void clear_tag6();
  static const int kTag6FieldNumber = 6;
  ::google::protobuf::int32 tag6() const;
  void set_tag6(::google::protobuf::int32 value);

  // optional int32 tag8 = 8;
  bool has_tag8() const;
  void clear_tag8();
  static const int kTag8FieldNumber = 8;
  ::google::protobuf::int32 tag8() const;
  void set_tag8(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
 private:
  void set_has_wxid();
  void clear_has_wxid();
  void set_has_tag6();
  void clear_has_tag6();
  void set_has_tag8();
  void clear_has_tag8();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr wxid_;
  ::google::protobuf::int32 tag6_;
  ::google::protobuf::int32 tag8_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ContactInfo_GroupMemberList : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList) */ {
 public:
  ContactInfo_GroupMemberList();
  virtual ~ContactInfo_GroupMemberList();

  ContactInfo_GroupMemberList(const ContactInfo_GroupMemberList& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const ContactInfo_GroupMemberList* internal_default_instance() {
    return reinterpret_cast<const ContactInfo_GroupMemberList*>(
               &_ContactInfo_GroupMemberList_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    22;

  void Swap(ContactInfo_GroupMemberList* other);

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

  inline ContactInfo_GroupMemberList* New() const PROTOBUF_FINAL { return New(NULL); }

  ContactInfo_GroupMemberList* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ContactInfo_GroupMemberList& from);
  void MergeFrom(const ContactInfo_GroupMemberList& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ContactInfo_GroupMemberList* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

  typedef ContactInfo_GroupMemberList_MemberInfo MemberInfo;

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

  // repeated .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo member = 2;
  int member_size() const;
  void clear_member();
  static const int kMemberFieldNumber = 2;
  const ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo& member(int index) const;
  ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo* mutable_member(int index);
  ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo* add_member();
  ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo >*
      mutable_member();
  const ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo >&
      member() const;

  // optional string tag4 = 4;
  bool has_tag4() const;
  void clear_tag4();
  static const int kTag4FieldNumber = 4;
  const ::std::string& tag4() const;
  void set_tag4(const ::std::string& value);
  #if LANG_CXX11
  void set_tag4(::std::string&& value);
  #endif
  void set_tag4(const char* value);
  void set_tag4(const char* value, size_t size);
  ::std::string* mutable_tag4();
  ::std::string* release_tag4();
  void set_allocated_tag4(::std::string* tag4);

  // optional int32 cnt = 1;
  bool has_cnt() const;
  void clear_cnt();
  static const int kCntFieldNumber = 1;
  ::google::protobuf::int32 cnt() const;
  void set_cnt(::google::protobuf::int32 value);

  // optional int32 tag3 = 3;
  bool has_tag3() const;
  void clear_tag3();
  static const int kTag3FieldNumber = 3;
  ::google::protobuf::int32 tag3() const;
  void set_tag3(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
 private:
  void set_has_cnt();
  void clear_has_cnt();
  void set_has_tag3();
  void clear_has_tag3();
  void set_has_tag4();
  void clear_has_tag4();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo > member_;
  ::google::protobuf::internal::ArenaStringPtr tag4_;
  ::google::protobuf::int32 cnt_;
  ::google::protobuf::int32 tag3_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ContactInfo : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.tencent.mars.microchat.proto.ContactInfo) */ {
 public:
  ContactInfo();
  virtual ~ContactInfo();

  ContactInfo(const ContactInfo& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  static inline const ContactInfo* internal_default_instance() {
    return reinterpret_cast<const ContactInfo*>(
               &_ContactInfo_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    23;

  void Swap(ContactInfo* other);

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

  inline ContactInfo* New() const PROTOBUF_FINAL { return New(NULL); }

  ContactInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ContactInfo& from);
  void MergeFrom(const ContactInfo& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ContactInfo* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

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

  typedef ContactInfo_WXID WXID;
  typedef ContactInfo_NICKNAME NICKNAME;
  typedef ContactInfo_PY_SHORT PY_SHORT;
  typedef ContactInfo_QuanPin QuanPin;
  typedef ContactInfo_REALNICKNAME REALNICKNAME;
  typedef ContactInfo_REAL_PY_SHORT REAL_PY_SHORT;
  typedef ContactInfo_REAL_QuanPin REAL_QuanPin;
  typedef ContactInfo_GroupMemberList GroupMemberList;

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

  // optional string tag6 = 6;
  bool has_tag6() const;
  void clear_tag6();
  static const int kTag6FieldNumber = 6;
  const ::std::string& tag6() const;
  void set_tag6(const ::std::string& value);
  #if LANG_CXX11
  void set_tag6(::std::string&& value);
  #endif
  void set_tag6(const char* value);
  void set_tag6(const char* value, size_t size);
  ::std::string* mutable_tag6();
  ::std::string* release_tag6();
  void set_allocated_tag6(::std::string* tag6);

  // optional string tag16 = 16;
  bool has_tag16() const;
  void clear_tag16();
  static const int kTag16FieldNumber = 16;
  const ::std::string& tag16() const;
  void set_tag16(const ::std::string& value);
  #if LANG_CXX11
  void set_tag16(::std::string&& value);
  #endif
  void set_tag16(const char* value);
  void set_tag16(const char* value, size_t size);
  ::std::string* mutable_tag16();
  ::std::string* release_tag16();
  void set_allocated_tag16(::std::string* tag16);

  // optional string sheng = 19;
  bool has_sheng() const;
  void clear_sheng();
  static const int kShengFieldNumber = 19;
  const ::std::string& sheng() const;
  void set_sheng(const ::std::string& value);
  #if LANG_CXX11
  void set_sheng(::std::string&& value);
  #endif
  void set_sheng(const char* value);
  void set_sheng(const char* value, size_t size);
  ::std::string* mutable_sheng();
  ::std::string* release_sheng();
  void set_allocated_sheng(::std::string* sheng);

  // optional string shi = 20;
  bool has_shi() const;
  void clear_shi();
  static const int kShiFieldNumber = 20;
  const ::std::string& shi() const;
  void set_shi(const ::std::string& value);
  #if LANG_CXX11
  void set_shi(::std::string&& value);
  #endif
  void set_shi(const char* value);
  void set_shi(const char* value, size_t size);
  ::std::string* mutable_shi();
  ::std::string* release_shi();
  void set_allocated_shi(::std::string* shi);

  // optional string qianming = 21;
  bool has_qianming() const;
  void clear_qianming();
  static const int kQianmingFieldNumber = 21;
  const ::std::string& qianming() const;
  void set_qianming(const ::std::string& value);
  #if LANG_CXX11
  void set_qianming(::std::string&& value);
  #endif
  void set_qianming(const char* value);
  void set_qianming(const char* value, size_t size);
  ::std::string* mutable_qianming();
  ::std::string* release_qianming();
  void set_allocated_qianming(::std::string* qianming);

  // optional string tag25 = 25;
  bool has_tag25() const;
  void clear_tag25();
  static const int kTag25FieldNumber = 25;
  const ::std::string& tag25() const;
  void set_tag25(const ::std::string& value);
  #if LANG_CXX11
  void set_tag25(::std::string&& value);
  #endif
  void set_tag25(const char* value);
  void set_tag25(const char* value, size_t size);
  ::std::string* mutable_tag25();
  ::std::string* release_tag25();
  void set_allocated_tag25(::std::string* tag25);

  // optional string lastMsgTime = 29;
  bool has_lastmsgtime() const;
  void clear_lastmsgtime();
  static const int kLastMsgTimeFieldNumber = 29;
  const ::std::string& lastmsgtime() const;
  void set_lastmsgtime(const ::std::string& value);
  #if LANG_CXX11
  void set_lastmsgtime(::std::string&& value);
  #endif
  void set_lastmsgtime(const char* value);
  void set_lastmsgtime(const char* value, size_t size);
  ::std::string* mutable_lastmsgtime();
  ::std::string* release_lastmsgtime();
  void set_allocated_lastmsgtime(::std::string* lastmsgtime);

  // optional string alias = 30;
  bool has_alias() const;
  void clear_alias();
  static const int kAliasFieldNumber = 30;
  const ::std::string& alias() const;
  void set_alias(const ::std::string& value);
  #if LANG_CXX11
  void set_alias(::std::string&& value);
  #endif
  void set_alias(const char* value);
  void set_alias(const char* value, size_t size);
  ::std::string* mutable_alias();
  ::std::string* release_alias();
  void set_allocated_alias(::std::string* alias);

  // optional string chatroomOwnerWxid = 31;
  bool has_chatroomownerwxid() const;
  void clear_chatroomownerwxid();
  static const int kChatroomOwnerWxidFieldNumber = 31;
  const ::std::string& chatroomownerwxid() const;
  void set_chatroomownerwxid(const ::std::string& value);
  #if LANG_CXX11
  void set_chatroomownerwxid(::std::string&& value);
  #endif
  void set_chatroomownerwxid(const char* value);
  void set_chatroomownerwxid(const char* value, size_t size);
  ::std::string* mutable_chatroomownerwxid();
  ::std::string* release_chatroomownerwxid();
  void set_allocated_chatroomownerwxid(::std::string* chatroomownerwxid);

  // optional string tag37 = 37;
  bool has_tag37() const;
  void clear_tag37();
  static const int kTag37FieldNumber = 37;
  const ::std::string& tag37() const;
  void set_tag37(const ::std::string& value);
  #if LANG_CXX11
  void set_tag37(::std::string&& value);
  #endif
  void set_tag37(const char* value);
  void set_tag37(const char* value, size_t size);
  ::std::string* mutable_tag37();
  ::std::string* release_tag37();
  void set_allocated_tag37(::std::string* tag37);

  // optional string country = 38;
  bool has_country() const;
  void clear_country();
  static const int kCountryFieldNumber = 38;
  const ::std::string& country() const;
  void set_country(const ::std::string& value);
  #if LANG_CXX11
  void set_country(::std::string&& value);
  #endif
  void set_country(const char* value);
  void set_country(const char* value, size_t size);
  ::std::string* mutable_country();
  ::std::string* release_country();
  void set_allocated_country(::std::string* country);

  // optional string headicon_big = 39;
  bool has_headicon_big() const;
  void clear_headicon_big();
  static const int kHeadiconBigFieldNumber = 39;
  const ::std::string& headicon_big() const;
  void set_headicon_big(const ::std::string& value);
  #if LANG_CXX11
  void set_headicon_big(::std::string&& value);
  #endif
  void set_headicon_big(const char* value);
  void set_headicon_big(const char* value, size_t size);
  ::std::string* mutable_headicon_big();
  ::std::string* release_headicon_big();
  void set_allocated_headicon_big(::std::string* headicon_big);

  // optional string headicon_small = 40;
  bool has_headicon_small() const;
  void clear_headicon_small();
  static const int kHeadiconSmallFieldNumber = 40;
  const ::std::string& headicon_small() const;
  void set_headicon_small(const ::std::string& value);
  #if LANG_CXX11
  void set_headicon_small(::std::string&& value);
  #endif
  void set_headicon_small(const char* value);
  void set_headicon_small(const char* value, size_t size);
  ::std::string* mutable_headicon_small();
  ::std::string* release_headicon_small();
  void set_allocated_headicon_small(::std::string* headicon_small);

  // optional string tag42 = 42;
  bool has_tag42() const;
  void clear_tag42();
  static const int kTag42FieldNumber = 42;
  const ::std::string& tag42() const;
  void set_tag42(const ::std::string& value);
  #if LANG_CXX11
  void set_tag42(::std::string&& value);
  #endif
  void set_tag42(const char* value);
  void set_tag42(const char* value, size_t size);
  ::std::string* mutable_tag42();
  ::std::string* release_tag42();
  void set_allocated_tag42(::std::string* tag42);

  // optional string encryptName = 45;
  bool has_encryptname() const;
  void clear_encryptname();
  static const int kEncryptNameFieldNumber = 45;
  const ::std::string& encryptname() const;
  void set_encryptname(const ::std::string& value);
  #if LANG_CXX11
  void set_encryptname(::std::string&& value);
  #endif
  void set_encryptname(const char* value);
  void set_encryptname(const char* value, size_t size);
  ::std::string* mutable_encryptname();
  ::std::string* release_encryptname();
  void set_allocated_encryptname(::std::string* encryptname);

  // optional string tag50 = 50;
  bool has_tag50() const;
  void clear_tag50();
  static const int kTag50FieldNumber = 50;
  const ::std::string& tag50() const;
  void set_tag50(const ::std::string& value);
  #if LANG_CXX11
  void set_tag50(::std::string&& value);
  #endif
  void set_tag50(const char* value);
  void set_tag50(const char* value, size_t size);
  ::std::string* mutable_tag50();
  ::std::string* release_tag50();
  void set_allocated_tag50(::std::string* tag50);

  // optional string beizhuName = 62;
  bool has_beizhuname() const;
  void clear_beizhuname();
  static const int kBeizhuNameFieldNumber = 62;
  const ::std::string& beizhuname() const;
  void set_beizhuname(const ::std::string& value);
  #if LANG_CXX11
  void set_beizhuname(::std::string&& value);
  #endif
  void set_beizhuname(const char* value);
  void set_beizhuname(const char* value, size_t size);
  ::std::string* mutable_beizhuname();
  ::std::string* release_beizhuname();
  void set_allocated_beizhuname(::std::string* beizhuname);

  // optional .com.tencent.mars.microchat.proto.ContactInfo.WXID wxid = 1;
  bool has_wxid() const;
  void clear_wxid();
  static const int kWxidFieldNumber = 1;
  const ::com::tencent::mars::microchat::proto::ContactInfo_WXID& wxid() const;
  ::com::tencent::mars::microchat::proto::ContactInfo_WXID* mutable_wxid();
  ::com::tencent::mars::microchat::proto::ContactInfo_WXID* release_wxid();
  void set_allocated_wxid(::com::tencent::mars::microchat::proto::ContactInfo_WXID* wxid);

  // optional .com.tencent.mars.microchat.proto.ContactInfo.NICKNAME nickname = 2;
  bool has_nickname() const;
  void clear_nickname();
  static const int kNicknameFieldNumber = 2;
  const ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME& nickname() const;
  ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* mutable_nickname();
  ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* release_nickname();
  void set_allocated_nickname(::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* nickname);

  // optional .com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT shortPy = 3;
  bool has_shortpy() const;
  void clear_shortpy();
  static const int kShortPyFieldNumber = 3;
  const ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT& shortpy() const;
  ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* mutable_shortpy();
  ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* release_shortpy();
  void set_allocated_shortpy(::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* shortpy);

  // optional .com.tencent.mars.microchat.proto.ContactInfo.QuanPin quanpin = 4;
  bool has_quanpin() const;
  void clear_quanpin();
  static const int kQuanpinFieldNumber = 4;
  const ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin& quanpin() const;
  ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* mutable_quanpin();
  ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* release_quanpin();
  void set_allocated_quanpin(::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* quanpin);

  // optional .com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME real_nickname = 10;
  bool has_real_nickname() const;
  void clear_real_nickname();
  static const int kRealNicknameFieldNumber = 10;
  const ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME& real_nickname() const;
  ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* mutable_real_nickname();
  ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* release_real_nickname();
  void set_allocated_real_nickname(::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* real_nickname);

  // optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT real_shortPy = 11;
  bool has_real_shortpy() const;
  void clear_real_shortpy();
  static const int kRealShortPyFieldNumber = 11;
  const ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT& real_shortpy() const;
  ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* mutable_real_shortpy();
  ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* release_real_shortpy();
  void set_allocated_real_shortpy(::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* real_shortpy);

  // optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin real_quanpin = 12;
  bool has_real_quanpin() const;
  void clear_real_quanpin();
  static const int kRealQuanpinFieldNumber = 12;
  const ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin& real_quanpin() const;
  ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* mutable_real_quanpin();
  ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* release_real_quanpin();
  void set_allocated_real_quanpin(::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* real_quanpin);

  // optional .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList group_member_list = 57;
  bool has_group_member_list() const;
  void clear_group_member_list();
  static const int kGroupMemberListFieldNumber = 57;
  const ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList& group_member_list() const;
  ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* mutable_group_member_list();
  ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* release_group_member_list();
  void set_allocated_group_member_list(::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* group_member_list);

  // optional int32 tag5 = 5;
  bool has_tag5() const;
  void clear_tag5();
  static const int kTag5FieldNumber = 5;
  ::google::protobuf::int32 tag5() const;
  void set_tag5(::google::protobuf::int32 value);

  // optional int32 unknownKey = 7;
  bool has_unknownkey() const;
  void clear_unknownkey();
  static const int kUnknownKeyFieldNumber = 7;
  ::google::protobuf::int32 unknownkey() const;
  void set_unknownkey(::google::protobuf::int32 value);

  // optional int32 tag8 = 8;
  bool has_tag8() const;
  void clear_tag8();
  static const int kTag8FieldNumber = 8;
  ::google::protobuf::int32 tag8() const;
  void set_tag8(::google::protobuf::int32 value);

  // optional int32 tag9 = 9;
  bool has_tag9() const;
  void clear_tag9();
  static const int kTag9FieldNumber = 9;
  ::google::protobuf::int32 tag9() const;
  void set_tag9(::google::protobuf::int32 value);

  // optional int32 tag13 = 13;
  bool has_tag13() const;
  void clear_tag13();
  static const int kTag13FieldNumber = 13;
  ::google::protobuf::int32 tag13() const;
  void set_tag13(::google::protobuf::int32 value);

  // optional int32 tag14 = 14;
  bool has_tag14() const;
  void clear_tag14();
  static const int kTag14FieldNumber = 14;
  ::google::protobuf::int32 tag14() const;
  void set_tag14(::google::protobuf::int32 value);

  // optional int32 bChatRoom = 17;
  bool has_bchatroom() const;
  void clear_bchatroom();
  static const int kBChatRoomFieldNumber = 17;
  ::google::protobuf::int32 bchatroom() const;
  void set_bchatroom(::google::protobuf::int32 value);

  // optional int32 tag18 = 18;
  bool has_tag18() const;
  void clear_tag18();
  static const int kTag18FieldNumber = 18;
  ::google::protobuf::int32 tag18() const;
  void set_tag18(::google::protobuf::int32 value);

  // optional int32 bFriend = 22;
  bool has_bfriend() const;
  void clear_bfriend();
  static const int kBFriendFieldNumber = 22;
  ::google::protobuf::int32 bfriend() const;
  void set_bfriend(::google::protobuf::int32 value);

  // optional int32 bNotChatRoom = 23;
  bool has_bnotchatroom() const;
  void clear_bnotchatroom();
  static const int kBNotChatRoomFieldNumber = 23;
  ::google::protobuf::int32 bnotchatroom() const;
  void set_bnotchatroom(::google::protobuf::int32 value);

  // optional int32 tag24 = 24;
  bool has_tag24() const;
  void clear_tag24();
  static const int kTag24FieldNumber = 24;
  ::google::protobuf::int32 tag24() const;
  void set_tag24(::google::protobuf::int32 value);

  // optional int32 tag26 = 26;
  bool has_tag26() const;
  void clear_tag26();
  static const int kTag26FieldNumber = 26;
  ::google::protobuf::int32 tag26() const;
  void set_tag26(::google::protobuf::int32 value);

  // optional int32 src = 27;
  bool has_src() const;
  void clear_src();
  static const int kSrcFieldNumber = 27;
  ::google::protobuf::int32 src() const;
  void set_src(::google::protobuf::int32 value);

  // optional int32 tag33 = 33;
  bool has_tag33() const;
  void clear_tag33();
  static const int kTag33FieldNumber = 33;
  ::google::protobuf::int32 tag33() const;
  void set_tag33(::google::protobuf::int32 value);

  // optional int32 tag34 = 34;
  bool has_tag34() const;
  void clear_tag34();
  static const int kTag34FieldNumber = 34;
  ::google::protobuf::int32 tag34() const;
  void set_tag34(::google::protobuf::int32 value);

  // optional int32 tag35 = 35;
  bool has_tag35() const;
  void clear_tag35();
  static const int kTag35FieldNumber = 35;
  ::google::protobuf::int32 tag35() const;
  void set_tag35(::google::protobuf::int32 value);

  // optional int32 chatroom_serverVer = 53;
  bool has_chatroom_serverver() const;
  void clear_chatroom_serverver();
  static const int kChatroomServerVerFieldNumber = 53;
  ::google::protobuf::int32 chatroom_serverver() const;
  void set_chatroom_serverver(::google::protobuf::int32 value);

  // optional int32 chatroom_max_member = 55;
  bool has_chatroom_max_member() const;
  void clear_chatroom_max_member();
  static const int kChatroomMaxMemberFieldNumber = 55;
  ::google::protobuf::int32 chatroom_max_member() const;
  void set_chatroom_max_member(::google::protobuf::int32 value);

  // optional int32 tag56 = 56;
  bool has_tag56() const;
  void clear_tag56();
  static const int kTag56FieldNumber = 56;
  ::google::protobuf::int32 tag56() const;
  void set_tag56(::google::protobuf::int32 value);

  // optional int32 tag58 = 58;
  bool has_tag58() const;
  void clear_tag58();
  static const int kTag58FieldNumber = 58;
  ::google::protobuf::int32 tag58() const;
  void set_tag58(::google::protobuf::int32 value);

  // optional int32 tag64 = 64;
  bool has_tag64() const;
  void clear_tag64();
  static const int kTag64FieldNumber = 64;
  ::google::protobuf::int32 tag64() const;
  void set_tag64(::google::protobuf::int32 value);

  // optional int32 tag65 = 65;
  bool has_tag65() const;
  void clear_tag65();
  static const int kTag65FieldNumber = 65;
  ::google::protobuf::int32 tag65() const;
  void set_tag65(::google::protobuf::int32 value);

  // optional int32 tag66 = 66;
  bool has_tag66() const;
  void clear_tag66();
  static const int kTag66FieldNumber = 66;
  ::google::protobuf::int32 tag66() const;
  void set_tag66(::google::protobuf::int32 value);

  // optional int32 tag67 = 67;
  bool has_tag67() const;
  void clear_tag67();
  static const int kTag67FieldNumber = 67;
  ::google::protobuf::int32 tag67() const;
  void set_tag67(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.tencent.mars.microchat.proto.ContactInfo)
 private:
  void set_has_wxid();
  void clear_has_wxid();
  void set_has_nickname();
  void clear_has_nickname();
  void set_has_shortpy();
  void clear_has_shortpy();
  void set_has_quanpin();
  void clear_has_quanpin();
  void set_has_tag5();
  void clear_has_tag5();
  void set_has_tag6();
  void clear_has_tag6();
  void set_has_unknownkey();
  void clear_has_unknownkey();
  void set_has_tag8();
  void clear_has_tag8();
  void set_has_tag9();
  void clear_has_tag9();
  void set_has_real_nickname();
  void clear_has_real_nickname();
  void set_has_real_shortpy();
  void clear_has_real_shortpy();
  void set_has_real_quanpin();
  void clear_has_real_quanpin();
  void set_has_tag13();
  void clear_has_tag13();
  void set_has_tag14();
  void clear_has_tag14();
  void set_has_tag16();
  void clear_has_tag16();
  void set_has_bchatroom();
  void clear_has_bchatroom();
  void set_has_tag18();
  void clear_has_tag18();
  void set_has_sheng();
  void clear_has_sheng();
  void set_has_shi();
  void clear_has_shi();
  void set_has_qianming();
  void clear_has_qianming();
  void set_has_bfriend();
  void clear_has_bfriend();
  void set_has_bnotchatroom();
  void clear_has_bnotchatroom();
  void set_has_tag24();
  void clear_has_tag24();
  void set_has_tag25();
  void clear_has_tag25();
  void set_has_tag26();
  void clear_has_tag26();
  void set_has_src();
  void clear_has_src();
  void set_has_lastmsgtime();
  void clear_has_lastmsgtime();
  void set_has_alias();
  void clear_has_alias();
  void set_has_chatroomownerwxid();
  void clear_has_chatroomownerwxid();
  void set_has_tag33();
  void clear_has_tag33();
  void set_has_tag34();
  void clear_has_tag34();
  void set_has_tag35();
  void clear_has_tag35();
  void set_has_tag37();
  void clear_has_tag37();
  void set_has_country();
  void clear_has_country();
  void set_has_headicon_big();
  void clear_has_headicon_big();
  void set_has_headicon_small();
  void clear_has_headicon_small();
  void set_has_tag42();
  void clear_has_tag42();
  void set_has_encryptname();
  void clear_has_encryptname();
  void set_has_tag50();
  void clear_has_tag50();
  void set_has_chatroom_serverver();
  void clear_has_chatroom_serverver();
  void set_has_chatroom_max_member();
  void clear_has_chatroom_max_member();
  void set_has_tag56();
  void clear_has_tag56();
  void set_has_group_member_list();
  void clear_has_group_member_list();
  void set_has_tag58();
  void clear_has_tag58();
  void set_has_beizhuname();
  void clear_has_beizhuname();
  void set_has_tag64();
  void clear_has_tag64();
  void set_has_tag65();
  void clear_has_tag65();
  void set_has_tag66();
  void clear_has_tag66();
  void set_has_tag67();
  void clear_has_tag67();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<2> _has_bits_;
  ::google::protobuf::internal::ArenaStringPtr tag6_;
  ::google::protobuf::internal::ArenaStringPtr tag16_;
  ::google::protobuf::internal::ArenaStringPtr sheng_;
  ::google::protobuf::internal::ArenaStringPtr shi_;
  ::google::protobuf::internal::ArenaStringPtr qianming_;
  ::google::protobuf::internal::ArenaStringPtr tag25_;
  ::google::protobuf::internal::ArenaStringPtr lastmsgtime_;
  ::google::protobuf::internal::ArenaStringPtr alias_;
  ::google::protobuf::internal::ArenaStringPtr chatroomownerwxid_;
  ::google::protobuf::internal::ArenaStringPtr tag37_;
  ::google::protobuf::internal::ArenaStringPtr country_;
  ::google::protobuf::internal::ArenaStringPtr headicon_big_;
  ::google::protobuf::internal::ArenaStringPtr headicon_small_;
  ::google::protobuf::internal::ArenaStringPtr tag42_;
  ::google::protobuf::internal::ArenaStringPtr encryptname_;
  ::google::protobuf::internal::ArenaStringPtr tag50_;
  ::google::protobuf::internal::ArenaStringPtr beizhuname_;
  ::com::tencent::mars::microchat::proto::ContactInfo_WXID* wxid_;
  ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* nickname_;
  ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* shortpy_;
  ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* quanpin_;
  ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* real_nickname_;
  ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* real_shortpy_;
  ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* real_quanpin_;
  ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* group_member_list_;
  ::google::protobuf::int32 tag5_;
  ::google::protobuf::int32 unknownkey_;
  ::google::protobuf::int32 tag8_;
  ::google::protobuf::int32 tag9_;
  ::google::protobuf::int32 tag13_;
  ::google::protobuf::int32 tag14_;
  ::google::protobuf::int32 bchatroom_;
  ::google::protobuf::int32 tag18_;
  ::google::protobuf::int32 bfriend_;
  ::google::protobuf::int32 bnotchatroom_;
  ::google::protobuf::int32 tag24_;
  ::google::protobuf::int32 tag26_;
  ::google::protobuf::int32 src_;
  ::google::protobuf::int32 tag33_;
  ::google::protobuf::int32 tag34_;
  ::google::protobuf::int32 tag35_;
  ::google::protobuf::int32 chatroom_serverver_;
  ::google::protobuf::int32 chatroom_max_member_;
  ::google::protobuf::int32 tag56_;
  ::google::protobuf::int32 tag58_;
  ::google::protobuf::int32 tag64_;
  ::google::protobuf::int32 tag65_;
  ::google::protobuf::int32 tag66_;
  ::google::protobuf::int32 tag67_;
  mutable int _cached_size_;
  friend struct protobuf_NewInit_2eproto::TableStruct;
};
// ===================================================================


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

#if !PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitRequest_LoginInfo

// required string aesKey = 1;
inline bool NewInitRequest_LoginInfo::has_aeskey() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NewInitRequest_LoginInfo::set_has_aeskey() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NewInitRequest_LoginInfo::clear_has_aeskey() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NewInitRequest_LoginInfo::clear_aeskey() {
  aeskey_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_aeskey();
}
inline const ::std::string& NewInitRequest_LoginInfo::aeskey() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
  return aeskey_.GetNoArena();
}
inline void NewInitRequest_LoginInfo::set_aeskey(const ::std::string& value) {
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
}
#if LANG_CXX11
inline void NewInitRequest_LoginInfo::set_aeskey(::std::string&& value) {
  set_has_aeskey();
  aeskey_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
}
#endif
inline void NewInitRequest_LoginInfo::set_aeskey(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
}
inline void NewInitRequest_LoginInfo::set_aeskey(const char* value, size_t size) {
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
}
inline ::std::string* NewInitRequest_LoginInfo::mutable_aeskey() {
  set_has_aeskey();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
  return aeskey_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitRequest_LoginInfo::release_aeskey() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
  clear_has_aeskey();
  return aeskey_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitRequest_LoginInfo::set_allocated_aeskey(::std::string* aeskey) {
  if (aeskey != NULL) {
    set_has_aeskey();
  } else {
    clear_has_aeskey();
  }
  aeskey_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), aeskey);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
}

// required int32 uin = 2;
inline bool NewInitRequest_LoginInfo::has_uin() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void NewInitRequest_LoginInfo::set_has_uin() {
  _has_bits_[0] |= 0x00000008u;
}
inline void NewInitRequest_LoginInfo::clear_has_uin() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void NewInitRequest_LoginInfo::clear_uin() {
  uin_ = 0;
  clear_has_uin();
}
inline ::google::protobuf::int32 NewInitRequest_LoginInfo::uin() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.uin)
  return uin_;
}
inline void NewInitRequest_LoginInfo::set_uin(::google::protobuf::int32 value) {
  set_has_uin();
  uin_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.uin)
}

// required string guid = 3;
inline bool NewInitRequest_LoginInfo::has_guid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void NewInitRequest_LoginInfo::set_has_guid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void NewInitRequest_LoginInfo::clear_has_guid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void NewInitRequest_LoginInfo::clear_guid() {
  guid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_guid();
}
inline const ::std::string& NewInitRequest_LoginInfo::guid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
  return guid_.GetNoArena();
}
inline void NewInitRequest_LoginInfo::set_guid(const ::std::string& value) {
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
}
#if LANG_CXX11
inline void NewInitRequest_LoginInfo::set_guid(::std::string&& value) {
  set_has_guid();
  guid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
}
#endif
inline void NewInitRequest_LoginInfo::set_guid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
}
inline void NewInitRequest_LoginInfo::set_guid(const char* value, size_t size) {
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
}
inline ::std::string* NewInitRequest_LoginInfo::mutable_guid() {
  set_has_guid();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
  return guid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitRequest_LoginInfo::release_guid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
  clear_has_guid();
  return guid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitRequest_LoginInfo::set_allocated_guid(::std::string* guid) {
  if (guid != NULL) {
    set_has_guid();
  } else {
    clear_has_guid();
  }
  guid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), guid);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
}

// required int32 clientVer = 4;
inline bool NewInitRequest_LoginInfo::has_clientver() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void NewInitRequest_LoginInfo::set_has_clientver() {
  _has_bits_[0] |= 0x00000010u;
}
inline void NewInitRequest_LoginInfo::clear_has_clientver() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void NewInitRequest_LoginInfo::clear_clientver() {
  clientver_ = 0;
  clear_has_clientver();
}
inline ::google::protobuf::int32 NewInitRequest_LoginInfo::clientver() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.clientVer)
  return clientver_;
}
inline void NewInitRequest_LoginInfo::set_clientver(::google::protobuf::int32 value) {
  set_has_clientver();
  clientver_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.clientVer)
}

// required string androidVer = 5;
inline bool NewInitRequest_LoginInfo::has_androidver() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void NewInitRequest_LoginInfo::set_has_androidver() {
  _has_bits_[0] |= 0x00000004u;
}
inline void NewInitRequest_LoginInfo::clear_has_androidver() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void NewInitRequest_LoginInfo::clear_androidver() {
  androidver_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_androidver();
}
inline const ::std::string& NewInitRequest_LoginInfo::androidver() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
  return androidver_.GetNoArena();
}
inline void NewInitRequest_LoginInfo::set_androidver(const ::std::string& value) {
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
}
#if LANG_CXX11
inline void NewInitRequest_LoginInfo::set_androidver(::std::string&& value) {
  set_has_androidver();
  androidver_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
}
#endif
inline void NewInitRequest_LoginInfo::set_androidver(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
}
inline void NewInitRequest_LoginInfo::set_androidver(const char* value, size_t size) {
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
}
inline ::std::string* NewInitRequest_LoginInfo::mutable_androidver() {
  set_has_androidver();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
  return androidver_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitRequest_LoginInfo::release_androidver() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
  clear_has_androidver();
  return androidver_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitRequest_LoginInfo::set_allocated_androidver(::std::string* androidver) {
  if (androidver != NULL) {
    set_has_androidver();
  } else {
    clear_has_androidver();
  }
  androidver_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), androidver);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
}

// required int32 unknown3 = 6;
inline bool NewInitRequest_LoginInfo::has_unknown3() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void NewInitRequest_LoginInfo::set_has_unknown3() {
  _has_bits_[0] |= 0x00000020u;
}
inline void NewInitRequest_LoginInfo::clear_has_unknown3() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void NewInitRequest_LoginInfo::clear_unknown3() {
  unknown3_ = 0;
  clear_has_unknown3();
}
inline ::google::protobuf::int32 NewInitRequest_LoginInfo::unknown3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.unknown3)
  return unknown3_;
}
inline void NewInitRequest_LoginInfo::set_unknown3(::google::protobuf::int32 value) {
  set_has_unknown3();
  unknown3_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.unknown3)
}

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

// NewInitRequest_Tag3

// optional int32 len = 1;
inline bool NewInitRequest_Tag3::has_len() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void NewInitRequest_Tag3::set_has_len() {
  _has_bits_[0] |= 0x00000002u;
}
inline void NewInitRequest_Tag3::clear_has_len() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void NewInitRequest_Tag3::clear_len() {
  len_ = 0;
  clear_has_len();
}
inline ::google::protobuf::int32 NewInitRequest_Tag3::len() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.len)
  return len_;
}
inline void NewInitRequest_Tag3::set_len(::google::protobuf::int32 value) {
  set_has_len();
  len_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.len)
}

// optional string tag2 = 2;
inline bool NewInitRequest_Tag3::has_tag2() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NewInitRequest_Tag3::set_has_tag2() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NewInitRequest_Tag3::clear_has_tag2() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NewInitRequest_Tag3::clear_tag2() {
  tag2_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag2();
}
inline const ::std::string& NewInitRequest_Tag3::tag2() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
  return tag2_.GetNoArena();
}
inline void NewInitRequest_Tag3::set_tag2(const ::std::string& value) {
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
}
#if LANG_CXX11
inline void NewInitRequest_Tag3::set_tag2(::std::string&& value) {
  set_has_tag2();
  tag2_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
}
#endif
inline void NewInitRequest_Tag3::set_tag2(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
}
inline void NewInitRequest_Tag3::set_tag2(const char* value, size_t size) {
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
}
inline ::std::string* NewInitRequest_Tag3::mutable_tag2() {
  set_has_tag2();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
  return tag2_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitRequest_Tag3::release_tag2() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
  clear_has_tag2();
  return tag2_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitRequest_Tag3::set_allocated_tag2(::std::string* tag2) {
  if (tag2 != NULL) {
    set_has_tag2();
  } else {
    clear_has_tag2();
  }
  tag2_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag2);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
}

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

// NewInitRequest_Tag4

// optional int32 len = 1;
inline bool NewInitRequest_Tag4::has_len() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void NewInitRequest_Tag4::set_has_len() {
  _has_bits_[0] |= 0x00000002u;
}
inline void NewInitRequest_Tag4::clear_has_len() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void NewInitRequest_Tag4::clear_len() {
  len_ = 0;
  clear_has_len();
}
inline ::google::protobuf::int32 NewInitRequest_Tag4::len() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.len)
  return len_;
}
inline void NewInitRequest_Tag4::set_len(::google::protobuf::int32 value) {
  set_has_len();
  len_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.len)
}

// optional string tag2 = 2;
inline bool NewInitRequest_Tag4::has_tag2() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NewInitRequest_Tag4::set_has_tag2() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NewInitRequest_Tag4::clear_has_tag2() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NewInitRequest_Tag4::clear_tag2() {
  tag2_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag2();
}
inline const ::std::string& NewInitRequest_Tag4::tag2() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
  return tag2_.GetNoArena();
}
inline void NewInitRequest_Tag4::set_tag2(const ::std::string& value) {
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
}
#if LANG_CXX11
inline void NewInitRequest_Tag4::set_tag2(::std::string&& value) {
  set_has_tag2();
  tag2_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
}
#endif
inline void NewInitRequest_Tag4::set_tag2(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
}
inline void NewInitRequest_Tag4::set_tag2(const char* value, size_t size) {
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
}
inline ::std::string* NewInitRequest_Tag4::mutable_tag2() {
  set_has_tag2();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
  return tag2_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitRequest_Tag4::release_tag2() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
  clear_has_tag2();
  return tag2_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitRequest_Tag4::set_allocated_tag2(::std::string* tag2) {
  if (tag2 != NULL) {
    set_has_tag2();
  } else {
    clear_has_tag2();
  }
  tag2_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag2);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
}

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

// NewInitRequest

// required .com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo login = 1;
inline bool NewInitRequest::has_login() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void NewInitRequest::set_has_login() {
  _has_bits_[0] |= 0x00000004u;
}
inline void NewInitRequest::clear_has_login() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void NewInitRequest::clear_login() {
  if (login_ != NULL) login_->::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo::Clear();
  clear_has_login();
}
inline const ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo& NewInitRequest::login() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.login)
  return login_ != NULL ? *login_
                         : *::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* NewInitRequest::mutable_login() {
  set_has_login();
  if (login_ == NULL) {
    login_ = new ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.login)
  return login_;
}
inline ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* NewInitRequest::release_login() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.login)
  clear_has_login();
  ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* temp = login_;
  login_ = NULL;
  return temp;
}
inline void NewInitRequest::set_allocated_login(::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* login) {
  delete login_;
  login_ = login;
  if (login) {
    set_has_login();
  } else {
    clear_has_login();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.login)
}

// required string wxid = 2;
inline bool NewInitRequest::has_wxid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NewInitRequest::set_has_wxid() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NewInitRequest::clear_has_wxid() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NewInitRequest::clear_wxid() {
  wxid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_wxid();
}
inline const ::std::string& NewInitRequest::wxid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
  return wxid_.GetNoArena();
}
inline void NewInitRequest::set_wxid(const ::std::string& value) {
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
}
#if LANG_CXX11
inline void NewInitRequest::set_wxid(::std::string&& value) {
  set_has_wxid();
  wxid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
}
#endif
inline void NewInitRequest::set_wxid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
}
inline void NewInitRequest::set_wxid(const char* value, size_t size) {
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
}
inline ::std::string* NewInitRequest::mutable_wxid() {
  set_has_wxid();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
  return wxid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitRequest::release_wxid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
  clear_has_wxid();
  return wxid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitRequest::set_allocated_wxid(::std::string* wxid) {
  if (wxid != NULL) {
    set_has_wxid();
  } else {
    clear_has_wxid();
  }
  wxid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), wxid);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
}

// optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag3 tag3 = 3;
inline bool NewInitRequest::has_tag3() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void NewInitRequest::set_has_tag3() {
  _has_bits_[0] |= 0x00000008u;
}
inline void NewInitRequest::clear_has_tag3() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void NewInitRequest::clear_tag3() {
  if (tag3_ != NULL) tag3_->::com::tencent::mars::microchat::proto::NewInitRequest_Tag3::Clear();
  clear_has_tag3();
}
inline const ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3& NewInitRequest::tag3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.tag3)
  return tag3_ != NULL ? *tag3_
                         : *::com::tencent::mars::microchat::proto::NewInitRequest_Tag3::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* NewInitRequest::mutable_tag3() {
  set_has_tag3();
  if (tag3_ == NULL) {
    tag3_ = new ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.tag3)
  return tag3_;
}
inline ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* NewInitRequest::release_tag3() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.tag3)
  clear_has_tag3();
  ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* temp = tag3_;
  tag3_ = NULL;
  return temp;
}
inline void NewInitRequest::set_allocated_tag3(::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* tag3) {
  delete tag3_;
  tag3_ = tag3;
  if (tag3) {
    set_has_tag3();
  } else {
    clear_has_tag3();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.tag3)
}

// optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag4 tag4 = 4;
inline bool NewInitRequest::has_tag4() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void NewInitRequest::set_has_tag4() {
  _has_bits_[0] |= 0x00000010u;
}
inline void NewInitRequest::clear_has_tag4() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void NewInitRequest::clear_tag4() {
  if (tag4_ != NULL) tag4_->::com::tencent::mars::microchat::proto::NewInitRequest_Tag4::Clear();
  clear_has_tag4();
}
inline const ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4& NewInitRequest::tag4() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.tag4)
  return tag4_ != NULL ? *tag4_
                         : *::com::tencent::mars::microchat::proto::NewInitRequest_Tag4::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* NewInitRequest::mutable_tag4() {
  set_has_tag4();
  if (tag4_ == NULL) {
    tag4_ = new ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.tag4)
  return tag4_;
}
inline ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* NewInitRequest::release_tag4() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.tag4)
  clear_has_tag4();
  ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* temp = tag4_;
  tag4_ = NULL;
  return temp;
}
inline void NewInitRequest::set_allocated_tag4(::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* tag4) {
  delete tag4_;
  tag4_ = tag4;
  if (tag4) {
    set_has_tag4();
  } else {
    clear_has_tag4();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.tag4)
}

// required string language = 5;
inline bool NewInitRequest::has_language() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void NewInitRequest::set_has_language() {
  _has_bits_[0] |= 0x00000002u;
}
inline void NewInitRequest::clear_has_language() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void NewInitRequest::clear_language() {
  language_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_language();
}
inline const ::std::string& NewInitRequest::language() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.language)
  return language_.GetNoArena();
}
inline void NewInitRequest::set_language(const ::std::string& value) {
  set_has_language();
  language_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.language)
}
#if LANG_CXX11
inline void NewInitRequest::set_language(::std::string&& value) {
  set_has_language();
  language_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.language)
}
#endif
inline void NewInitRequest::set_language(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_language();
  language_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.language)
}
inline void NewInitRequest::set_language(const char* value, size_t size) {
  set_has_language();
  language_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.language)
}
inline ::std::string* NewInitRequest::mutable_language() {
  set_has_language();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.language)
  return language_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitRequest::release_language() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.language)
  clear_has_language();
  return language_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitRequest::set_allocated_language(::std::string* language) {
  if (language != NULL) {
    set_has_language();
  } else {
    clear_has_language();
  }
  language_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), language);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.language)
}

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

// NewInitResponse_SyncKey_SyncArray_sync

// optional int32 type = 1;
inline bool NewInitResponse_SyncKey_SyncArray_sync::has_type() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void NewInitResponse_SyncKey_SyncArray_sync::set_has_type() {
  _has_bits_[0] |= 0x00000002u;
}
inline void NewInitResponse_SyncKey_SyncArray_sync::clear_has_type() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void NewInitResponse_SyncKey_SyncArray_sync::clear_type() {
  type_ = 0;
  clear_has_type();
}
inline ::google::protobuf::int32 NewInitResponse_SyncKey_SyncArray_sync::type() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.type)
  return type_;
}
inline void NewInitResponse_SyncKey_SyncArray_sync::set_type(::google::protobuf::int32 value) {
  set_has_type();
  type_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.type)
}

// optional string key = 2;
inline bool NewInitResponse_SyncKey_SyncArray_sync::has_key() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NewInitResponse_SyncKey_SyncArray_sync::set_has_key() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NewInitResponse_SyncKey_SyncArray_sync::clear_has_key() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NewInitResponse_SyncKey_SyncArray_sync::clear_key() {
  key_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_key();
}
inline const ::std::string& NewInitResponse_SyncKey_SyncArray_sync::key() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
  return key_.GetNoArena();
}
inline void NewInitResponse_SyncKey_SyncArray_sync::set_key(const ::std::string& value) {
  set_has_key();
  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
}
#if LANG_CXX11
inline void NewInitResponse_SyncKey_SyncArray_sync::set_key(::std::string&& value) {
  set_has_key();
  key_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
}
#endif
inline void NewInitResponse_SyncKey_SyncArray_sync::set_key(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_key();
  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
}
inline void NewInitResponse_SyncKey_SyncArray_sync::set_key(const char* value, size_t size) {
  set_has_key();
  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
}
inline ::std::string* NewInitResponse_SyncKey_SyncArray_sync::mutable_key() {
  set_has_key();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
  return key_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitResponse_SyncKey_SyncArray_sync::release_key() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
  clear_has_key();
  return key_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitResponse_SyncKey_SyncArray_sync::set_allocated_key(::std::string* key) {
  if (key != NULL) {
    set_has_key();
  } else {
    clear_has_key();
  }
  key_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), key);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
}

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

// NewInitResponse_SyncKey_SyncArray

// optional int32 cnt = 1;
inline bool NewInitResponse_SyncKey_SyncArray::has_cnt() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NewInitResponse_SyncKey_SyncArray::set_has_cnt() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NewInitResponse_SyncKey_SyncArray::clear_has_cnt() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NewInitResponse_SyncKey_SyncArray::clear_cnt() {
  cnt_ = 0;
  clear_has_cnt();
}
inline ::google::protobuf::int32 NewInitResponse_SyncKey_SyncArray::cnt() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.cnt)
  return cnt_;
}
inline void NewInitResponse_SyncKey_SyncArray::set_cnt(::google::protobuf::int32 value) {
  set_has_cnt();
  cnt_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.cnt)
}

// repeated .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync sync_array = 2;
inline int NewInitResponse_SyncKey_SyncArray::sync_array_size() const {
  return sync_array_.size();
}
inline void NewInitResponse_SyncKey_SyncArray::clear_sync_array() {
  sync_array_.Clear();
}
inline const ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync& NewInitResponse_SyncKey_SyncArray::sync_array(int index) const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync_array)
  return sync_array_.Get(index);
}
inline ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync* NewInitResponse_SyncKey_SyncArray::mutable_sync_array(int index) {
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync_array)
  return sync_array_.Mutable(index);
}
inline ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync* NewInitResponse_SyncKey_SyncArray::add_sync_array() {
  // @@protoc_insertion_point(field_add:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync_array)
  return sync_array_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync >*
NewInitResponse_SyncKey_SyncArray::mutable_sync_array() {
  // @@protoc_insertion_point(field_mutable_list:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync_array)
  return &sync_array_;
}
inline const ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync >&
NewInitResponse_SyncKey_SyncArray::sync_array() const {
  // @@protoc_insertion_point(field_list:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync_array)
  return sync_array_;
}

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

// NewInitResponse_SyncKey

// optional int32 len = 1;
inline bool NewInitResponse_SyncKey::has_len() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NewInitResponse_SyncKey::set_has_len() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NewInitResponse_SyncKey::clear_has_len() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NewInitResponse_SyncKey::clear_len() {
  len_ = 0;
  clear_has_len();
}
inline ::google::protobuf::int32 NewInitResponse_SyncKey::len() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.len)
  return len_;
}
inline void NewInitResponse_SyncKey::set_len(::google::protobuf::int32 value) {
  set_has_len();
  len_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.len)
}

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

// NewInitResponse_Tag7_Data

// optional int32 len = 1;
inline bool NewInitResponse_Tag7_Data::has_len() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void NewInitResponse_Tag7_Data::set_has_len() {
  _has_bits_[0] |= 0x00000002u;
}
inline void NewInitResponse_Tag7_Data::clear_has_len() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void NewInitResponse_Tag7_Data::clear_len() {
  len_ = 0;
  clear_has_len();
}
inline ::google::protobuf::int32 NewInitResponse_Tag7_Data::len() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.len)
  return len_;
}
inline void NewInitResponse_Tag7_Data::set_len(::google::protobuf::int32 value) {
  set_has_len();
  len_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.len)
}

// optional string data = 2;
inline bool NewInitResponse_Tag7_Data::has_data() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NewInitResponse_Tag7_Data::set_has_data() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NewInitResponse_Tag7_Data::clear_has_data() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NewInitResponse_Tag7_Data::clear_data() {
  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_data();
}
inline const ::std::string& NewInitResponse_Tag7_Data::data() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
  return data_.GetNoArena();
}
inline void NewInitResponse_Tag7_Data::set_data(const ::std::string& value) {
  set_has_data();
  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
}
#if LANG_CXX11
inline void NewInitResponse_Tag7_Data::set_data(::std::string&& value) {
  set_has_data();
  data_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
}
#endif
inline void NewInitResponse_Tag7_Data::set_data(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_data();
  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
}
inline void NewInitResponse_Tag7_Data::set_data(const char* value, size_t size) {
  set_has_data();
  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
}
inline ::std::string* NewInitResponse_Tag7_Data::mutable_data() {
  set_has_data();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
  return data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitResponse_Tag7_Data::release_data() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
  clear_has_data();
  return data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitResponse_Tag7_Data::set_allocated_data(::std::string* data) {
  if (data != NULL) {
    set_has_data();
  } else {
    clear_has_data();
  }
  data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), data);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
}

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

// NewInitResponse_Tag7

// optional int32 type = 1;
inline bool NewInitResponse_Tag7::has_type() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void NewInitResponse_Tag7::set_has_type() {
  _has_bits_[0] |= 0x00000002u;
}
inline void NewInitResponse_Tag7::clear_has_type() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void NewInitResponse_Tag7::clear_type() {
  type_ = 0;
  clear_has_type();
}
inline ::google::protobuf::int32 NewInitResponse_Tag7::type() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.type)
  return type_;
}
inline void NewInitResponse_Tag7::set_type(::google::protobuf::int32 value) {
  set_has_type();
  type_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.type)
}

// optional .com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data data = 2;
inline bool NewInitResponse_Tag7::has_data() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NewInitResponse_Tag7::set_has_data() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NewInitResponse_Tag7::clear_has_data() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NewInitResponse_Tag7::clear_data() {
  if (data_ != NULL) data_->::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data::Clear();
  clear_has_data();
}
inline const ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data& NewInitResponse_Tag7::data() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.data)
  return data_ != NULL ? *data_
                         : *::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* NewInitResponse_Tag7::mutable_data() {
  set_has_data();
  if (data_ == NULL) {
    data_ = new ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.data)
  return data_;
}
inline ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* NewInitResponse_Tag7::release_data() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.data)
  clear_has_data();
  ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* temp = data_;
  data_ = NULL;
  return temp;
}
inline void NewInitResponse_Tag7::set_allocated_data(::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* data) {
  delete data_;
  data_ = data;
  if (data) {
    set_has_data();
  } else {
    clear_has_data();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.data)
}

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

// NewInitResponse

// optional string tag1 = 1;
inline bool NewInitResponse::has_tag1() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void NewInitResponse::set_has_tag1() {
  _has_bits_[0] |= 0x00000001u;
}
inline void NewInitResponse::clear_has_tag1() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void NewInitResponse::clear_tag1() {
  tag1_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag1();
}
inline const ::std::string& NewInitResponse::tag1() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
  return tag1_.GetNoArena();
}
inline void NewInitResponse::set_tag1(const ::std::string& value) {
  set_has_tag1();
  tag1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
}
#if LANG_CXX11
inline void NewInitResponse::set_tag1(::std::string&& value) {
  set_has_tag1();
  tag1_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
}
#endif
inline void NewInitResponse::set_tag1(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag1();
  tag1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
}
inline void NewInitResponse::set_tag1(const char* value, size_t size) {
  set_has_tag1();
  tag1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
}
inline ::std::string* NewInitResponse::mutable_tag1() {
  set_has_tag1();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
  return tag1_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitResponse::release_tag1() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
  clear_has_tag1();
  return tag1_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitResponse::set_allocated_tag1(::std::string* tag1) {
  if (tag1 != NULL) {
    set_has_tag1();
  } else {
    clear_has_tag1();
  }
  tag1_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag1);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
}

// optional string sync2 = 2;
inline bool NewInitResponse::has_sync2() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void NewInitResponse::set_has_sync2() {
  _has_bits_[0] |= 0x00000002u;
}
inline void NewInitResponse::clear_has_sync2() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void NewInitResponse::clear_sync2() {
  sync2_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_sync2();
}
inline const ::std::string& NewInitResponse::sync2() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
  return sync2_.GetNoArena();
}
inline void NewInitResponse::set_sync2(const ::std::string& value) {
  set_has_sync2();
  sync2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
}
#if LANG_CXX11
inline void NewInitResponse::set_sync2(::std::string&& value) {
  set_has_sync2();
  sync2_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
}
#endif
inline void NewInitResponse::set_sync2(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_sync2();
  sync2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
}
inline void NewInitResponse::set_sync2(const char* value, size_t size) {
  set_has_sync2();
  sync2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
}
inline ::std::string* NewInitResponse::mutable_sync2() {
  set_has_sync2();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
  return sync2_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NewInitResponse::release_sync2() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
  clear_has_sync2();
  return sync2_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NewInitResponse::set_allocated_sync2(::std::string* sync2) {
  if (sync2 != NULL) {
    set_has_sync2();
  } else {
    clear_has_sync2();
  }
  sync2_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), sync2);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
}

// optional .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey sync3 = 3;
inline bool NewInitResponse::has_sync3() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void NewInitResponse::set_has_sync3() {
  _has_bits_[0] |= 0x00000004u;
}
inline void NewInitResponse::clear_has_sync3() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void NewInitResponse::clear_sync3() {
  if (sync3_ != NULL) sync3_->::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey::Clear();
  clear_has_sync3();
}
inline const ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey& NewInitResponse::sync3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.sync3)
  return sync3_ != NULL ? *sync3_
                         : *::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* NewInitResponse::mutable_sync3() {
  set_has_sync3();
  if (sync3_ == NULL) {
    sync3_ = new ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.sync3)
  return sync3_;
}
inline ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* NewInitResponse::release_sync3() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.sync3)
  clear_has_sync3();
  ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* temp = sync3_;
  sync3_ = NULL;
  return temp;
}
inline void NewInitResponse::set_allocated_sync3(::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* sync3) {
  delete sync3_;
  sync3_ = sync3;
  if (sync3) {
    set_has_sync3();
  } else {
    clear_has_sync3();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.sync3)
}

// optional int32 tag4 = 4;
inline bool NewInitResponse::has_tag4() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void NewInitResponse::set_has_tag4() {
  _has_bits_[0] |= 0x00000008u;
}
inline void NewInitResponse::clear_has_tag4() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void NewInitResponse::clear_tag4() {
  tag4_ = 0;
  clear_has_tag4();
}
inline ::google::protobuf::int32 NewInitResponse::tag4() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.tag4)
  return tag4_;
}
inline void NewInitResponse::set_tag4(::google::protobuf::int32 value) {
  set_has_tag4();
  tag4_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.tag4)
}

// optional int32 tag5 = 5;
inline bool NewInitResponse::has_tag5() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void NewInitResponse::set_has_tag5() {
  _has_bits_[0] |= 0x00000010u;
}
inline void NewInitResponse::clear_has_tag5() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void NewInitResponse::clear_tag5() {
  tag5_ = 0;
  clear_has_tag5();
}
inline ::google::protobuf::int32 NewInitResponse::tag5() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.tag5)
  return tag5_;
}
inline void NewInitResponse::set_tag5(::google::protobuf::int32 value) {
  set_has_tag5();
  tag5_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.tag5)
}

// optional int32 cntList = 6;
inline bool NewInitResponse::has_cntlist() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void NewInitResponse::set_has_cntlist() {
  _has_bits_[0] |= 0x00000020u;
}
inline void NewInitResponse::clear_has_cntlist() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void NewInitResponse::clear_cntlist() {
  cntlist_ = 0;
  clear_has_cntlist();
}
inline ::google::protobuf::int32 NewInitResponse::cntlist() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.cntList)
  return cntlist_;
}
inline void NewInitResponse::set_cntlist(::google::protobuf::int32 value) {
  set_has_cntlist();
  cntlist_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.cntList)
}

// repeated .com.tencent.mars.microchat.proto.NewInitResponse.Tag7 tag7 = 7;
inline int NewInitResponse::tag7_size() const {
  return tag7_.size();
}
inline void NewInitResponse::clear_tag7() {
  tag7_.Clear();
}
inline const ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7& NewInitResponse::tag7(int index) const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.tag7)
  return tag7_.Get(index);
}
inline ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7* NewInitResponse::mutable_tag7(int index) {
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.tag7)
  return tag7_.Mutable(index);
}
inline ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7* NewInitResponse::add_tag7() {
  // @@protoc_insertion_point(field_add:com.tencent.mars.microchat.proto.NewInitResponse.tag7)
  return tag7_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7 >*
NewInitResponse::mutable_tag7() {
  // @@protoc_insertion_point(field_mutable_list:com.tencent.mars.microchat.proto.NewInitResponse.tag7)
  return &tag7_;
}
inline const ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7 >&
NewInitResponse::tag7() const {
  // @@protoc_insertion_point(field_list:com.tencent.mars.microchat.proto.NewInitResponse.tag7)
  return tag7_;
}

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

// UserInfo_WXID

// optional string id = 1;
inline bool UserInfo_WXID::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void UserInfo_WXID::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void UserInfo_WXID::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void UserInfo_WXID::clear_id() {
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_id();
}
inline const ::std::string& UserInfo_WXID::id() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
  return id_.GetNoArena();
}
inline void UserInfo_WXID::set_id(const ::std::string& value) {
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
}
#if LANG_CXX11
inline void UserInfo_WXID::set_id(::std::string&& value) {
  set_has_id();
  id_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
}
#endif
inline void UserInfo_WXID::set_id(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
}
inline void UserInfo_WXID::set_id(const char* value, size_t size) {
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
}
inline ::std::string* UserInfo_WXID::mutable_id() {
  set_has_id();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
  return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo_WXID::release_id() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
  clear_has_id();
  return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo_WXID::set_allocated_id(::std::string* id) {
  if (id != NULL) {
    set_has_id();
  } else {
    clear_has_id();
  }
  id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
}

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

// UserInfo_NICKNAME

// optional string name = 1;
inline bool UserInfo_NICKNAME::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void UserInfo_NICKNAME::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
inline void UserInfo_NICKNAME::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void UserInfo_NICKNAME::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
inline const ::std::string& UserInfo_NICKNAME::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
  return name_.GetNoArena();
}
inline void UserInfo_NICKNAME::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
}
#if LANG_CXX11
inline void UserInfo_NICKNAME::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
}
#endif
inline void UserInfo_NICKNAME::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
}
inline void UserInfo_NICKNAME::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
}
inline ::std::string* UserInfo_NICKNAME::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo_NICKNAME::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo_NICKNAME::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
}

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

// UserInfo_BINDMOBILE

// optional string mobile = 1;
inline bool UserInfo_BINDMOBILE::has_mobile() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void UserInfo_BINDMOBILE::set_has_mobile() {
  _has_bits_[0] |= 0x00000001u;
}
inline void UserInfo_BINDMOBILE::clear_has_mobile() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void UserInfo_BINDMOBILE::clear_mobile() {
  mobile_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_mobile();
}
inline const ::std::string& UserInfo_BINDMOBILE::mobile() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
  return mobile_.GetNoArena();
}
inline void UserInfo_BINDMOBILE::set_mobile(const ::std::string& value) {
  set_has_mobile();
  mobile_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
}
#if LANG_CXX11
inline void UserInfo_BINDMOBILE::set_mobile(::std::string&& value) {
  set_has_mobile();
  mobile_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
}
#endif
inline void UserInfo_BINDMOBILE::set_mobile(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_mobile();
  mobile_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
}
inline void UserInfo_BINDMOBILE::set_mobile(const char* value, size_t size) {
  set_has_mobile();
  mobile_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
}
inline ::std::string* UserInfo_BINDMOBILE::mutable_mobile() {
  set_has_mobile();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
  return mobile_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo_BINDMOBILE::release_mobile() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
  clear_has_mobile();
  return mobile_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo_BINDMOBILE::set_allocated_mobile(::std::string* mobile) {
  if (mobile != NULL) {
    set_has_mobile();
  } else {
    clear_has_mobile();
  }
  mobile_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), mobile);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
}

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

// UserInfo

// optional int32 bitFlag = 1;
inline bool UserInfo::has_bitflag() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void UserInfo::set_has_bitflag() {
  _has_bits_[0] |= 0x00000800u;
}
inline void UserInfo::clear_has_bitflag() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void UserInfo::clear_bitflag() {
  bitflag_ = 0;
  clear_has_bitflag();
}
inline ::google::protobuf::int32 UserInfo::bitflag() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.bitFlag)
  return bitflag_;
}
inline void UserInfo::set_bitflag(::google::protobuf::int32 value) {
  set_has_bitflag();
  bitflag_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.bitFlag)
}

// optional .com.tencent.mars.microchat.proto.UserInfo.WXID wxid = 2;
inline bool UserInfo::has_wxid() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void UserInfo::set_has_wxid() {
  _has_bits_[0] |= 0x00000100u;
}
inline void UserInfo::clear_has_wxid() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void UserInfo::clear_wxid() {
  if (wxid_ != NULL) wxid_->::com::tencent::mars::microchat::proto::UserInfo_WXID::Clear();
  clear_has_wxid();
}
inline const ::com::tencent::mars::microchat::proto::UserInfo_WXID& UserInfo::wxid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.wxid)
  return wxid_ != NULL ? *wxid_
                         : *::com::tencent::mars::microchat::proto::UserInfo_WXID::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::UserInfo_WXID* UserInfo::mutable_wxid() {
  set_has_wxid();
  if (wxid_ == NULL) {
    wxid_ = new ::com::tencent::mars::microchat::proto::UserInfo_WXID;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.wxid)
  return wxid_;
}
inline ::com::tencent::mars::microchat::proto::UserInfo_WXID* UserInfo::release_wxid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.wxid)
  clear_has_wxid();
  ::com::tencent::mars::microchat::proto::UserInfo_WXID* temp = wxid_;
  wxid_ = NULL;
  return temp;
}
inline void UserInfo::set_allocated_wxid(::com::tencent::mars::microchat::proto::UserInfo_WXID* wxid) {
  delete wxid_;
  wxid_ = wxid;
  if (wxid) {
    set_has_wxid();
  } else {
    clear_has_wxid();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.wxid)
}

// optional .com.tencent.mars.microchat.proto.UserInfo.NICKNAME nickname = 3;
inline bool UserInfo::has_nickname() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void UserInfo::set_has_nickname() {
  _has_bits_[0] |= 0x00000200u;
}
inline void UserInfo::clear_has_nickname() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void UserInfo::clear_nickname() {
  if (nickname_ != NULL) nickname_->::com::tencent::mars::microchat::proto::UserInfo_NICKNAME::Clear();
  clear_has_nickname();
}
inline const ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME& UserInfo::nickname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.nickname)
  return nickname_ != NULL ? *nickname_
                         : *::com::tencent::mars::microchat::proto::UserInfo_NICKNAME::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* UserInfo::mutable_nickname() {
  set_has_nickname();
  if (nickname_ == NULL) {
    nickname_ = new ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.nickname)
  return nickname_;
}
inline ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* UserInfo::release_nickname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.nickname)
  clear_has_nickname();
  ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* temp = nickname_;
  nickname_ = NULL;
  return temp;
}
inline void UserInfo::set_allocated_nickname(::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* nickname) {
  delete nickname_;
  nickname_ = nickname;
  if (nickname) {
    set_has_nickname();
  } else {
    clear_has_nickname();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.nickname)
}

// optional int32 bBindEmail = 4;
inline bool UserInfo::has_bbindemail() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void UserInfo::set_has_bbindemail() {
  _has_bits_[0] |= 0x00001000u;
}
inline void UserInfo::clear_has_bbindemail() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void UserInfo::clear_bbindemail() {
  bbindemail_ = 0;
  clear_has_bbindemail();
}
inline ::google::protobuf::int32 UserInfo::bbindemail() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.bBindEmail)
  return bbindemail_;
}
inline void UserInfo::set_bbindemail(::google::protobuf::int32 value) {
  set_has_bbindemail();
  bbindemail_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.bBindEmail)
}

// optional string bindemail = 5;
inline bool UserInfo::has_bindemail() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void UserInfo::set_has_bindemail() {
  _has_bits_[0] |= 0x00000001u;
}
inline void UserInfo::clear_has_bindemail() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void UserInfo::clear_bindemail() {
  bindemail_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_bindemail();
}
inline const ::std::string& UserInfo::bindemail() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.bindemail)
  return bindemail_.GetNoArena();
}
inline void UserInfo::set_bindemail(const ::std::string& value) {
  set_has_bindemail();
  bindemail_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.bindemail)
}
#if LANG_CXX11
inline void UserInfo::set_bindemail(::std::string&& value) {
  set_has_bindemail();
  bindemail_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.bindemail)
}
#endif
inline void UserInfo::set_bindemail(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_bindemail();
  bindemail_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.bindemail)
}
inline void UserInfo::set_bindemail(const char* value, size_t size) {
  set_has_bindemail();
  bindemail_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.bindemail)
}
inline ::std::string* UserInfo::mutable_bindemail() {
  set_has_bindemail();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.bindemail)
  return bindemail_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo::release_bindemail() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.bindemail)
  clear_has_bindemail();
  return bindemail_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo::set_allocated_bindemail(::std::string* bindemail) {
  if (bindemail != NULL) {
    set_has_bindemail();
  } else {
    clear_has_bindemail();
  }
  bindemail_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), bindemail);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.bindemail)
}

// optional .com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE mobile = 6;
inline bool UserInfo::has_mobile() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void UserInfo::set_has_mobile() {
  _has_bits_[0] |= 0x00000400u;
}
inline void UserInfo::clear_has_mobile() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void UserInfo::clear_mobile() {
  if (mobile_ != NULL) mobile_->::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE::Clear();
  clear_has_mobile();
}
inline const ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE& UserInfo::mobile() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.mobile)
  return mobile_ != NULL ? *mobile_
                         : *::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* UserInfo::mutable_mobile() {
  set_has_mobile();
  if (mobile_ == NULL) {
    mobile_ = new ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.mobile)
  return mobile_;
}
inline ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* UserInfo::release_mobile() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.mobile)
  clear_has_mobile();
  ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* temp = mobile_;
  mobile_ = NULL;
  return temp;
}
inline void UserInfo::set_allocated_mobile(::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* mobile) {
  delete mobile_;
  mobile_ = mobile;
  if (mobile) {
    set_has_mobile();
  } else {
    clear_has_mobile();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.mobile)
}

// optional int32 status = 7;
inline bool UserInfo::has_status() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void UserInfo::set_has_status() {
  _has_bits_[0] |= 0x00002000u;
}
inline void UserInfo::clear_has_status() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void UserInfo::clear_status() {
  status_ = 0;
  clear_has_status();
}
inline ::google::protobuf::int32 UserInfo::status() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.status)
  return status_;
}
inline void UserInfo::set_status(::google::protobuf::int32 value) {
  set_has_status();
  status_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.status)
}

// optional int32 tag8 = 8;
inline bool UserInfo::has_tag8() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void UserInfo::set_has_tag8() {
  _has_bits_[0] |= 0x00004000u;
}
inline void UserInfo::clear_has_tag8() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void UserInfo::clear_tag8() {
  tag8_ = 0;
  clear_has_tag8();
}
inline ::google::protobuf::int32 UserInfo::tag8() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag8)
  return tag8_;
}
inline void UserInfo::set_tag8(::google::protobuf::int32 value) {
  set_has_tag8();
  tag8_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag8)
}

// optional int32 tag10 = 10;
inline bool UserInfo::has_tag10() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void UserInfo::set_has_tag10() {
  _has_bits_[0] |= 0x00008000u;
}
inline void UserInfo::clear_has_tag10() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void UserInfo::clear_tag10() {
  tag10_ = 0;
  clear_has_tag10();
}
inline ::google::protobuf::int32 UserInfo::tag10() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag10)
  return tag10_;
}
inline void UserInfo::set_tag10(::google::protobuf::int32 value) {
  set_has_tag10();
  tag10_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag10)
}

// optional string sheng = 11;
inline bool UserInfo::has_sheng() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void UserInfo::set_has_sheng() {
  _has_bits_[0] |= 0x00000002u;
}
inline void UserInfo::clear_has_sheng() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void UserInfo::clear_sheng() {
  sheng_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_sheng();
}
inline const ::std::string& UserInfo::sheng() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.sheng)
  return sheng_.GetNoArena();
}
inline void UserInfo::set_sheng(const ::std::string& value) {
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.sheng)
}
#if LANG_CXX11
inline void UserInfo::set_sheng(::std::string&& value) {
  set_has_sheng();
  sheng_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.sheng)
}
#endif
inline void UserInfo::set_sheng(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.sheng)
}
inline void UserInfo::set_sheng(const char* value, size_t size) {
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.sheng)
}
inline ::std::string* UserInfo::mutable_sheng() {
  set_has_sheng();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.sheng)
  return sheng_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo::release_sheng() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.sheng)
  clear_has_sheng();
  return sheng_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo::set_allocated_sheng(::std::string* sheng) {
  if (sheng != NULL) {
    set_has_sheng();
  } else {
    clear_has_sheng();
  }
  sheng_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), sheng);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.sheng)
}

// optional string shi = 12;
inline bool UserInfo::has_shi() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void UserInfo::set_has_shi() {
  _has_bits_[0] |= 0x00000004u;
}
inline void UserInfo::clear_has_shi() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void UserInfo::clear_shi() {
  shi_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_shi();
}
inline const ::std::string& UserInfo::shi() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.shi)
  return shi_.GetNoArena();
}
inline void UserInfo::set_shi(const ::std::string& value) {
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.shi)
}
#if LANG_CXX11
inline void UserInfo::set_shi(::std::string&& value) {
  set_has_shi();
  shi_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.shi)
}
#endif
inline void UserInfo::set_shi(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.shi)
}
inline void UserInfo::set_shi(const char* value, size_t size) {
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.shi)
}
inline ::std::string* UserInfo::mutable_shi() {
  set_has_shi();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.shi)
  return shi_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo::release_shi() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.shi)
  clear_has_shi();
  return shi_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo::set_allocated_shi(::std::string* shi) {
  if (shi != NULL) {
    set_has_shi();
  } else {
    clear_has_shi();
  }
  shi_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), shi);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.shi)
}

// optional string qianming = 13;
inline bool UserInfo::has_qianming() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void UserInfo::set_has_qianming() {
  _has_bits_[0] |= 0x00000008u;
}
inline void UserInfo::clear_has_qianming() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void UserInfo::clear_qianming() {
  qianming_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_qianming();
}
inline const ::std::string& UserInfo::qianming() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.qianming)
  return qianming_.GetNoArena();
}
inline void UserInfo::set_qianming(const ::std::string& value) {
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.qianming)
}
#if LANG_CXX11
inline void UserInfo::set_qianming(::std::string&& value) {
  set_has_qianming();
  qianming_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.qianming)
}
#endif
inline void UserInfo::set_qianming(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.qianming)
}
inline void UserInfo::set_qianming(const char* value, size_t size) {
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.qianming)
}
inline ::std::string* UserInfo::mutable_qianming() {
  set_has_qianming();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.qianming)
  return qianming_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo::release_qianming() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.qianming)
  clear_has_qianming();
  return qianming_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo::set_allocated_qianming(::std::string* qianming) {
  if (qianming != NULL) {
    set_has_qianming();
  } else {
    clear_has_qianming();
  }
  qianming_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), qianming);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.qianming)
}

// optional int32 tag14 = 14;
inline bool UserInfo::has_tag14() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void UserInfo::set_has_tag14() {
  _has_bits_[0] |= 0x00010000u;
}
inline void UserInfo::clear_has_tag14() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void UserInfo::clear_tag14() {
  tag14_ = 0;
  clear_has_tag14();
}
inline ::google::protobuf::int32 UserInfo::tag14() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag14)
  return tag14_;
}
inline void UserInfo::set_tag14(::google::protobuf::int32 value) {
  set_has_tag14();
  tag14_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag14)
}

// optional string tag15 = 15;
inline bool UserInfo::has_tag15() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void UserInfo::set_has_tag15() {
  _has_bits_[0] |= 0x00000010u;
}
inline void UserInfo::clear_has_tag15() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void UserInfo::clear_tag15() {
  tag15_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag15();
}
inline const ::std::string& UserInfo::tag15() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag15)
  return tag15_.GetNoArena();
}
inline void UserInfo::set_tag15(const ::std::string& value) {
  set_has_tag15();
  tag15_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag15)
}
#if LANG_CXX11
inline void UserInfo::set_tag15(::std::string&& value) {
  set_has_tag15();
  tag15_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.tag15)
}
#endif
inline void UserInfo::set_tag15(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag15();
  tag15_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.tag15)
}
inline void UserInfo::set_tag15(const char* value, size_t size) {
  set_has_tag15();
  tag15_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.tag15)
}
inline ::std::string* UserInfo::mutable_tag15() {
  set_has_tag15();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.tag15)
  return tag15_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo::release_tag15() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.tag15)
  clear_has_tag15();
  return tag15_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo::set_allocated_tag15(::std::string* tag15) {
  if (tag15 != NULL) {
    set_has_tag15();
  } else {
    clear_has_tag15();
  }
  tag15_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag15);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.tag15)
}

// optional int32 pluginFlag = 16;
inline bool UserInfo::has_pluginflag() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void UserInfo::set_has_pluginflag() {
  _has_bits_[0] |= 0x00020000u;
}
inline void UserInfo::clear_has_pluginflag() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void UserInfo::clear_pluginflag() {
  pluginflag_ = 0;
  clear_has_pluginflag();
}
inline ::google::protobuf::int32 UserInfo::pluginflag() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.pluginFlag)
  return pluginflag_;
}
inline void UserInfo::set_pluginflag(::google::protobuf::int32 value) {
  set_has_pluginflag();
  pluginflag_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.pluginFlag)
}

// optional int32 tag17 = 17;
inline bool UserInfo::has_tag17() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void UserInfo::set_has_tag17() {
  _has_bits_[0] |= 0x00040000u;
}
inline void UserInfo::clear_has_tag17() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void UserInfo::clear_tag17() {
  tag17_ = 0;
  clear_has_tag17();
}
inline ::google::protobuf::int32 UserInfo::tag17() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag17)
  return tag17_;
}
inline void UserInfo::set_tag17(::google::protobuf::int32 value) {
  set_has_tag17();
  tag17_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag17)
}

// optional int32 tag19 = 19;
inline bool UserInfo::has_tag19() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void UserInfo::set_has_tag19() {
  _has_bits_[0] |= 0x00080000u;
}
inline void UserInfo::clear_has_tag19() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void UserInfo::clear_tag19() {
  tag19_ = 0;
  clear_has_tag19();
}
inline ::google::protobuf::int32 UserInfo::tag19() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag19)
  return tag19_;
}
inline void UserInfo::set_tag19(::google::protobuf::int32 value) {
  set_has_tag19();
  tag19_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag19)
}

// optional int32 tag20 = 20;
inline bool UserInfo::has_tag20() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void UserInfo::set_has_tag20() {
  _has_bits_[0] |= 0x00100000u;
}
inline void UserInfo::clear_has_tag20() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void UserInfo::clear_tag20() {
  tag20_ = 0;
  clear_has_tag20();
}
inline ::google::protobuf::int32 UserInfo::tag20() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag20)
  return tag20_;
}
inline void UserInfo::set_tag20(::google::protobuf::int32 value) {
  set_has_tag20();
  tag20_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag20)
}

// optional int32 tag21 = 21;
inline bool UserInfo::has_tag21() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void UserInfo::set_has_tag21() {
  _has_bits_[0] |= 0x00200000u;
}
inline void UserInfo::clear_has_tag21() {
  _has_bits_[0] &= ~0x00200000u;
}
inline void UserInfo::clear_tag21() {
  tag21_ = 0;
  clear_has_tag21();
}
inline ::google::protobuf::int32 UserInfo::tag21() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag21)
  return tag21_;
}
inline void UserInfo::set_tag21(::google::protobuf::int32 value) {
  set_has_tag21();
  tag21_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag21)
}

// optional int32 tag22 = 22;
inline bool UserInfo::has_tag22() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
inline void UserInfo::set_has_tag22() {
  _has_bits_[0] |= 0x00400000u;
}
inline void UserInfo::clear_has_tag22() {
  _has_bits_[0] &= ~0x00400000u;
}
inline void UserInfo::clear_tag22() {
  tag22_ = 0;
  clear_has_tag22();
}
inline ::google::protobuf::int32 UserInfo::tag22() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag22)
  return tag22_;
}
inline void UserInfo::set_tag22(::google::protobuf::int32 value) {
  set_has_tag22();
  tag22_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag22)
}

// optional int32 tag23 = 23;
inline bool UserInfo::has_tag23() const {
  return (_has_bits_[0] & 0x00800000u) != 0;
}
inline void UserInfo::set_has_tag23() {
  _has_bits_[0] |= 0x00800000u;
}
inline void UserInfo::clear_has_tag23() {
  _has_bits_[0] &= ~0x00800000u;
}
inline void UserInfo::clear_tag23() {
  tag23_ = 0;
  clear_has_tag23();
}
inline ::google::protobuf::int32 UserInfo::tag23() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag23)
  return tag23_;
}
inline void UserInfo::set_tag23(::google::protobuf::int32 value) {
  set_has_tag23();
  tag23_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag23)
}

// optional int32 PluginSwitch = 25;
inline bool UserInfo::has_pluginswitch() const {
  return (_has_bits_[0] & 0x01000000u) != 0;
}
inline void UserInfo::set_has_pluginswitch() {
  _has_bits_[0] |= 0x01000000u;
}
inline void UserInfo::clear_has_pluginswitch() {
  _has_bits_[0] &= ~0x01000000u;
}
inline void UserInfo::clear_pluginswitch() {
  pluginswitch_ = 0;
  clear_has_pluginswitch();
}
inline ::google::protobuf::int32 UserInfo::pluginswitch() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.PluginSwitch)
  return pluginswitch_;
}
inline void UserInfo::set_pluginswitch(::google::protobuf::int32 value) {
  set_has_pluginswitch();
  pluginswitch_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.PluginSwitch)
}

// optional string tag26 = 26;
inline bool UserInfo::has_tag26() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void UserInfo::set_has_tag26() {
  _has_bits_[0] |= 0x00000020u;
}
inline void UserInfo::clear_has_tag26() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void UserInfo::clear_tag26() {
  tag26_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag26();
}
inline const ::std::string& UserInfo::tag26() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag26)
  return tag26_.GetNoArena();
}
inline void UserInfo::set_tag26(const ::std::string& value) {
  set_has_tag26();
  tag26_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag26)
}
#if LANG_CXX11
inline void UserInfo::set_tag26(::std::string&& value) {
  set_has_tag26();
  tag26_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.tag26)
}
#endif
inline void UserInfo::set_tag26(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag26();
  tag26_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.tag26)
}
inline void UserInfo::set_tag26(const char* value, size_t size) {
  set_has_tag26();
  tag26_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.tag26)
}
inline ::std::string* UserInfo::mutable_tag26() {
  set_has_tag26();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.tag26)
  return tag26_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo::release_tag26() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.tag26)
  clear_has_tag26();
  return tag26_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo::set_allocated_tag26(::std::string* tag26) {
  if (tag26 != NULL) {
    set_has_tag26();
  } else {
    clear_has_tag26();
  }
  tag26_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag26);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.tag26)
}

// optional string alias = 27;
inline bool UserInfo::has_alias() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void UserInfo::set_has_alias() {
  _has_bits_[0] |= 0x00000040u;
}
inline void UserInfo::clear_has_alias() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void UserInfo::clear_alias() {
  alias_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_alias();
}
inline const ::std::string& UserInfo::alias() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.alias)
  return alias_.GetNoArena();
}
inline void UserInfo::set_alias(const ::std::string& value) {
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.alias)
}
#if LANG_CXX11
inline void UserInfo::set_alias(::std::string&& value) {
  set_has_alias();
  alias_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.alias)
}
#endif
inline void UserInfo::set_alias(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.alias)
}
inline void UserInfo::set_alias(const char* value, size_t size) {
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.alias)
}
inline ::std::string* UserInfo::mutable_alias() {
  set_has_alias();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.alias)
  return alias_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo::release_alias() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.alias)
  clear_has_alias();
  return alias_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo::set_allocated_alias(::std::string* alias) {
  if (alias != NULL) {
    set_has_alias();
  } else {
    clear_has_alias();
  }
  alias_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), alias);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.alias)
}

// optional int32 tag29 = 29;
inline bool UserInfo::has_tag29() const {
  return (_has_bits_[0] & 0x02000000u) != 0;
}
inline void UserInfo::set_has_tag29() {
  _has_bits_[0] |= 0x02000000u;
}
inline void UserInfo::clear_has_tag29() {
  _has_bits_[0] &= ~0x02000000u;
}
inline void UserInfo::clear_tag29() {
  tag29_ = 0;
  clear_has_tag29();
}
inline ::google::protobuf::int32 UserInfo::tag29() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag29)
  return tag29_;
}
inline void UserInfo::set_tag29(::google::protobuf::int32 value) {
  set_has_tag29();
  tag29_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag29)
}

// optional int32 tag30 = 30;
inline bool UserInfo::has_tag30() const {
  return (_has_bits_[0] & 0x04000000u) != 0;
}
inline void UserInfo::set_has_tag30() {
  _has_bits_[0] |= 0x04000000u;
}
inline void UserInfo::clear_has_tag30() {
  _has_bits_[0] &= ~0x04000000u;
}
inline void UserInfo::clear_tag30() {
  tag30_ = 0;
  clear_has_tag30();
}
inline ::google::protobuf::int32 UserInfo::tag30() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag30)
  return tag30_;
}
inline void UserInfo::set_tag30(::google::protobuf::int32 value) {
  set_has_tag30();
  tag30_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag30)
}

// optional int32 tag31 = 31;
inline bool UserInfo::has_tag31() const {
  return (_has_bits_[0] & 0x08000000u) != 0;
}
inline void UserInfo::set_has_tag31() {
  _has_bits_[0] |= 0x08000000u;
}
inline void UserInfo::clear_has_tag31() {
  _has_bits_[0] &= ~0x08000000u;
}
inline void UserInfo::clear_tag31() {
  tag31_ = 0;
  clear_has_tag31();
}
inline ::google::protobuf::int32 UserInfo::tag31() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag31)
  return tag31_;
}
inline void UserInfo::set_tag31(::google::protobuf::int32 value) {
  set_has_tag31();
  tag31_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag31)
}

// optional int32 tag33 = 33;
inline bool UserInfo::has_tag33() const {
  return (_has_bits_[0] & 0x10000000u) != 0;
}
inline void UserInfo::set_has_tag33() {
  _has_bits_[0] |= 0x10000000u;
}
inline void UserInfo::clear_has_tag33() {
  _has_bits_[0] &= ~0x10000000u;
}
inline void UserInfo::clear_tag33() {
  tag33_ = 0;
  clear_has_tag33();
}
inline ::google::protobuf::int32 UserInfo::tag33() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag33)
  return tag33_;
}
inline void UserInfo::set_tag33(::google::protobuf::int32 value) {
  set_has_tag33();
  tag33_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag33)
}

// optional int32 tag34 = 34;
inline bool UserInfo::has_tag34() const {
  return (_has_bits_[0] & 0x20000000u) != 0;
}
inline void UserInfo::set_has_tag34() {
  _has_bits_[0] |= 0x20000000u;
}
inline void UserInfo::clear_has_tag34() {
  _has_bits_[0] &= ~0x20000000u;
}
inline void UserInfo::clear_tag34() {
  tag34_ = 0;
  clear_has_tag34();
}
inline ::google::protobuf::int32 UserInfo::tag34() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag34)
  return tag34_;
}
inline void UserInfo::set_tag34(::google::protobuf::int32 value) {
  set_has_tag34();
  tag34_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag34)
}

// optional int32 tag36 = 37;
inline bool UserInfo::has_tag36() const {
  return (_has_bits_[0] & 0x40000000u) != 0;
}
inline void UserInfo::set_has_tag36() {
  _has_bits_[0] |= 0x40000000u;
}
inline void UserInfo::clear_has_tag36() {
  _has_bits_[0] &= ~0x40000000u;
}
inline void UserInfo::clear_tag36() {
  tag36_ = 0;
  clear_has_tag36();
}
inline ::google::protobuf::int32 UserInfo::tag36() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag36)
  return tag36_;
}
inline void UserInfo::set_tag36(::google::protobuf::int32 value) {
  set_has_tag36();
  tag36_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag36)
}

// optional string country = 38;
inline bool UserInfo::has_country() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void UserInfo::set_has_country() {
  _has_bits_[0] |= 0x00000080u;
}
inline void UserInfo::clear_has_country() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void UserInfo::clear_country() {
  country_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_country();
}
inline const ::std::string& UserInfo::country() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.country)
  return country_.GetNoArena();
}
inline void UserInfo::set_country(const ::std::string& value) {
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.country)
}
#if LANG_CXX11
inline void UserInfo::set_country(::std::string&& value) {
  set_has_country();
  country_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.country)
}
#endif
inline void UserInfo::set_country(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.country)
}
inline void UserInfo::set_country(const char* value, size_t size) {
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.country)
}
inline ::std::string* UserInfo::mutable_country() {
  set_has_country();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.country)
  return country_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* UserInfo::release_country() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.country)
  clear_has_country();
  return country_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void UserInfo::set_allocated_country(::std::string* country) {
  if (country != NULL) {
    set_has_country();
  } else {
    clear_has_country();
  }
  country_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), country);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.country)
}

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

// ContactInfo_WXID

// optional string id = 1;
inline bool ContactInfo_WXID::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContactInfo_WXID::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContactInfo_WXID::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContactInfo_WXID::clear_id() {
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_id();
}
inline const ::std::string& ContactInfo_WXID::id() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
  return id_.GetNoArena();
}
inline void ContactInfo_WXID::set_id(const ::std::string& value) {
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
}
#if LANG_CXX11
inline void ContactInfo_WXID::set_id(::std::string&& value) {
  set_has_id();
  id_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
}
#endif
inline void ContactInfo_WXID::set_id(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
}
inline void ContactInfo_WXID::set_id(const char* value, size_t size) {
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
}
inline ::std::string* ContactInfo_WXID::mutable_id() {
  set_has_id();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
  return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo_WXID::release_id() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
  clear_has_id();
  return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo_WXID::set_allocated_id(::std::string* id) {
  if (id != NULL) {
    set_has_id();
  } else {
    clear_has_id();
  }
  id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
}

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

// ContactInfo_NICKNAME

// optional string name = 1;
inline bool ContactInfo_NICKNAME::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContactInfo_NICKNAME::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContactInfo_NICKNAME::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContactInfo_NICKNAME::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
inline const ::std::string& ContactInfo_NICKNAME::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
  return name_.GetNoArena();
}
inline void ContactInfo_NICKNAME::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
}
#if LANG_CXX11
inline void ContactInfo_NICKNAME::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
}
#endif
inline void ContactInfo_NICKNAME::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
}
inline void ContactInfo_NICKNAME::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
}
inline ::std::string* ContactInfo_NICKNAME::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo_NICKNAME::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo_NICKNAME::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
}

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

// ContactInfo_PY_SHORT

// optional string name = 1;
inline bool ContactInfo_PY_SHORT::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContactInfo_PY_SHORT::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContactInfo_PY_SHORT::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContactInfo_PY_SHORT::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
inline const ::std::string& ContactInfo_PY_SHORT::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
  return name_.GetNoArena();
}
inline void ContactInfo_PY_SHORT::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
}
#if LANG_CXX11
inline void ContactInfo_PY_SHORT::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
}
#endif
inline void ContactInfo_PY_SHORT::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
}
inline void ContactInfo_PY_SHORT::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
}
inline ::std::string* ContactInfo_PY_SHORT::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo_PY_SHORT::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo_PY_SHORT::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
}

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

// ContactInfo_QuanPin

// optional string name = 1;
inline bool ContactInfo_QuanPin::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContactInfo_QuanPin::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContactInfo_QuanPin::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContactInfo_QuanPin::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
inline const ::std::string& ContactInfo_QuanPin::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
  return name_.GetNoArena();
}
inline void ContactInfo_QuanPin::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
}
#if LANG_CXX11
inline void ContactInfo_QuanPin::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
}
#endif
inline void ContactInfo_QuanPin::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
}
inline void ContactInfo_QuanPin::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
}
inline ::std::string* ContactInfo_QuanPin::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo_QuanPin::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo_QuanPin::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
}

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

// ContactInfo_REALNICKNAME

// optional string name = 1;
inline bool ContactInfo_REALNICKNAME::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContactInfo_REALNICKNAME::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContactInfo_REALNICKNAME::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContactInfo_REALNICKNAME::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
inline const ::std::string& ContactInfo_REALNICKNAME::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
  return name_.GetNoArena();
}
inline void ContactInfo_REALNICKNAME::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
}
#if LANG_CXX11
inline void ContactInfo_REALNICKNAME::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
}
#endif
inline void ContactInfo_REALNICKNAME::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
}
inline void ContactInfo_REALNICKNAME::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
}
inline ::std::string* ContactInfo_REALNICKNAME::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo_REALNICKNAME::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo_REALNICKNAME::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
}

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

// ContactInfo_REAL_PY_SHORT

// optional string name = 1;
inline bool ContactInfo_REAL_PY_SHORT::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContactInfo_REAL_PY_SHORT::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContactInfo_REAL_PY_SHORT::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContactInfo_REAL_PY_SHORT::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
inline const ::std::string& ContactInfo_REAL_PY_SHORT::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
  return name_.GetNoArena();
}
inline void ContactInfo_REAL_PY_SHORT::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
}
#if LANG_CXX11
inline void ContactInfo_REAL_PY_SHORT::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
}
#endif
inline void ContactInfo_REAL_PY_SHORT::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
}
inline void ContactInfo_REAL_PY_SHORT::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
}
inline ::std::string* ContactInfo_REAL_PY_SHORT::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo_REAL_PY_SHORT::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo_REAL_PY_SHORT::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
}

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

// ContactInfo_REAL_QuanPin

// optional string name = 1;
inline bool ContactInfo_REAL_QuanPin::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContactInfo_REAL_QuanPin::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContactInfo_REAL_QuanPin::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContactInfo_REAL_QuanPin::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
inline const ::std::string& ContactInfo_REAL_QuanPin::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
  return name_.GetNoArena();
}
inline void ContactInfo_REAL_QuanPin::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
}
#if LANG_CXX11
inline void ContactInfo_REAL_QuanPin::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
}
#endif
inline void ContactInfo_REAL_QuanPin::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
}
inline void ContactInfo_REAL_QuanPin::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
}
inline ::std::string* ContactInfo_REAL_QuanPin::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo_REAL_QuanPin::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo_REAL_QuanPin::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
}

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

// ContactInfo_GroupMemberList_MemberInfo

// optional string wxid = 1;
inline bool ContactInfo_GroupMemberList_MemberInfo::has_wxid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContactInfo_GroupMemberList_MemberInfo::set_has_wxid() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContactInfo_GroupMemberList_MemberInfo::clear_has_wxid() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContactInfo_GroupMemberList_MemberInfo::clear_wxid() {
  wxid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_wxid();
}
inline const ::std::string& ContactInfo_GroupMemberList_MemberInfo::wxid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
  return wxid_.GetNoArena();
}
inline void ContactInfo_GroupMemberList_MemberInfo::set_wxid(const ::std::string& value) {
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
}
#if LANG_CXX11
inline void ContactInfo_GroupMemberList_MemberInfo::set_wxid(::std::string&& value) {
  set_has_wxid();
  wxid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
}
#endif
inline void ContactInfo_GroupMemberList_MemberInfo::set_wxid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
}
inline void ContactInfo_GroupMemberList_MemberInfo::set_wxid(const char* value, size_t size) {
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
}
inline ::std::string* ContactInfo_GroupMemberList_MemberInfo::mutable_wxid() {
  set_has_wxid();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
  return wxid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo_GroupMemberList_MemberInfo::release_wxid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
  clear_has_wxid();
  return wxid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo_GroupMemberList_MemberInfo::set_allocated_wxid(::std::string* wxid) {
  if (wxid != NULL) {
    set_has_wxid();
  } else {
    clear_has_wxid();
  }
  wxid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), wxid);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
}

// optional int32 tag6 = 6;
inline bool ContactInfo_GroupMemberList_MemberInfo::has_tag6() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ContactInfo_GroupMemberList_MemberInfo::set_has_tag6() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ContactInfo_GroupMemberList_MemberInfo::clear_has_tag6() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ContactInfo_GroupMemberList_MemberInfo::clear_tag6() {
  tag6_ = 0;
  clear_has_tag6();
}
inline ::google::protobuf::int32 ContactInfo_GroupMemberList_MemberInfo::tag6() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.tag6)
  return tag6_;
}
inline void ContactInfo_GroupMemberList_MemberInfo::set_tag6(::google::protobuf::int32 value) {
  set_has_tag6();
  tag6_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.tag6)
}

// optional int32 tag8 = 8;
inline bool ContactInfo_GroupMemberList_MemberInfo::has_tag8() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ContactInfo_GroupMemberList_MemberInfo::set_has_tag8() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ContactInfo_GroupMemberList_MemberInfo::clear_has_tag8() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ContactInfo_GroupMemberList_MemberInfo::clear_tag8() {
  tag8_ = 0;
  clear_has_tag8();
}
inline ::google::protobuf::int32 ContactInfo_GroupMemberList_MemberInfo::tag8() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.tag8)
  return tag8_;
}
inline void ContactInfo_GroupMemberList_MemberInfo::set_tag8(::google::protobuf::int32 value) {
  set_has_tag8();
  tag8_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.tag8)
}

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

// ContactInfo_GroupMemberList

// optional int32 cnt = 1;
inline bool ContactInfo_GroupMemberList::has_cnt() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ContactInfo_GroupMemberList::set_has_cnt() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ContactInfo_GroupMemberList::clear_has_cnt() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ContactInfo_GroupMemberList::clear_cnt() {
  cnt_ = 0;
  clear_has_cnt();
}
inline ::google::protobuf::int32 ContactInfo_GroupMemberList::cnt() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.cnt)
  return cnt_;
}
inline void ContactInfo_GroupMemberList::set_cnt(::google::protobuf::int32 value) {
  set_has_cnt();
  cnt_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.cnt)
}

// repeated .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo member = 2;
inline int ContactInfo_GroupMemberList::member_size() const {
  return member_.size();
}
inline void ContactInfo_GroupMemberList::clear_member() {
  member_.Clear();
}
inline const ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo& ContactInfo_GroupMemberList::member(int index) const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.member)
  return member_.Get(index);
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo* ContactInfo_GroupMemberList::mutable_member(int index) {
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.member)
  return member_.Mutable(index);
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo* ContactInfo_GroupMemberList::add_member() {
  // @@protoc_insertion_point(field_add:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.member)
  return member_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo >*
ContactInfo_GroupMemberList::mutable_member() {
  // @@protoc_insertion_point(field_mutable_list:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.member)
  return &member_;
}
inline const ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo >&
ContactInfo_GroupMemberList::member() const {
  // @@protoc_insertion_point(field_list:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.member)
  return member_;
}

// optional int32 tag3 = 3;
inline bool ContactInfo_GroupMemberList::has_tag3() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ContactInfo_GroupMemberList::set_has_tag3() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ContactInfo_GroupMemberList::clear_has_tag3() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ContactInfo_GroupMemberList::clear_tag3() {
  tag3_ = 0;
  clear_has_tag3();
}
inline ::google::protobuf::int32 ContactInfo_GroupMemberList::tag3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag3)
  return tag3_;
}
inline void ContactInfo_GroupMemberList::set_tag3(::google::protobuf::int32 value) {
  set_has_tag3();
  tag3_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag3)
}

// optional string tag4 = 4;
inline bool ContactInfo_GroupMemberList::has_tag4() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContactInfo_GroupMemberList::set_has_tag4() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContactInfo_GroupMemberList::clear_has_tag4() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContactInfo_GroupMemberList::clear_tag4() {
  tag4_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag4();
}
inline const ::std::string& ContactInfo_GroupMemberList::tag4() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
  return tag4_.GetNoArena();
}
inline void ContactInfo_GroupMemberList::set_tag4(const ::std::string& value) {
  set_has_tag4();
  tag4_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
}
#if LANG_CXX11
inline void ContactInfo_GroupMemberList::set_tag4(::std::string&& value) {
  set_has_tag4();
  tag4_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
}
#endif
inline void ContactInfo_GroupMemberList::set_tag4(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag4();
  tag4_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
}
inline void ContactInfo_GroupMemberList::set_tag4(const char* value, size_t size) {
  set_has_tag4();
  tag4_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
}
inline ::std::string* ContactInfo_GroupMemberList::mutable_tag4() {
  set_has_tag4();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
  return tag4_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo_GroupMemberList::release_tag4() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
  clear_has_tag4();
  return tag4_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo_GroupMemberList::set_allocated_tag4(::std::string* tag4) {
  if (tag4 != NULL) {
    set_has_tag4();
  } else {
    clear_has_tag4();
  }
  tag4_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag4);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
}

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

// ContactInfo

// optional .com.tencent.mars.microchat.proto.ContactInfo.WXID wxid = 1;
inline bool ContactInfo::has_wxid() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void ContactInfo::set_has_wxid() {
  _has_bits_[0] |= 0x00020000u;
}
inline void ContactInfo::clear_has_wxid() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void ContactInfo::clear_wxid() {
  if (wxid_ != NULL) wxid_->::com::tencent::mars::microchat::proto::ContactInfo_WXID::Clear();
  clear_has_wxid();
}
inline const ::com::tencent::mars::microchat::proto::ContactInfo_WXID& ContactInfo::wxid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.wxid)
  return wxid_ != NULL ? *wxid_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_WXID::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_WXID* ContactInfo::mutable_wxid() {
  set_has_wxid();
  if (wxid_ == NULL) {
    wxid_ = new ::com::tencent::mars::microchat::proto::ContactInfo_WXID;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.wxid)
  return wxid_;
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_WXID* ContactInfo::release_wxid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.wxid)
  clear_has_wxid();
  ::com::tencent::mars::microchat::proto::ContactInfo_WXID* temp = wxid_;
  wxid_ = NULL;
  return temp;
}
inline void ContactInfo::set_allocated_wxid(::com::tencent::mars::microchat::proto::ContactInfo_WXID* wxid) {
  delete wxid_;
  wxid_ = wxid;
  if (wxid) {
    set_has_wxid();
  } else {
    clear_has_wxid();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.wxid)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.NICKNAME nickname = 2;
inline bool ContactInfo::has_nickname() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void ContactInfo::set_has_nickname() {
  _has_bits_[0] |= 0x00040000u;
}
inline void ContactInfo::clear_has_nickname() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void ContactInfo::clear_nickname() {
  if (nickname_ != NULL) nickname_->::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME::Clear();
  clear_has_nickname();
}
inline const ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME& ContactInfo::nickname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.nickname)
  return nickname_ != NULL ? *nickname_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* ContactInfo::mutable_nickname() {
  set_has_nickname();
  if (nickname_ == NULL) {
    nickname_ = new ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.nickname)
  return nickname_;
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* ContactInfo::release_nickname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.nickname)
  clear_has_nickname();
  ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* temp = nickname_;
  nickname_ = NULL;
  return temp;
}
inline void ContactInfo::set_allocated_nickname(::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* nickname) {
  delete nickname_;
  nickname_ = nickname;
  if (nickname) {
    set_has_nickname();
  } else {
    clear_has_nickname();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.nickname)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT shortPy = 3;
inline bool ContactInfo::has_shortpy() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void ContactInfo::set_has_shortpy() {
  _has_bits_[0] |= 0x00080000u;
}
inline void ContactInfo::clear_has_shortpy() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void ContactInfo::clear_shortpy() {
  if (shortpy_ != NULL) shortpy_->::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT::Clear();
  clear_has_shortpy();
}
inline const ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT& ContactInfo::shortpy() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.shortPy)
  return shortpy_ != NULL ? *shortpy_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* ContactInfo::mutable_shortpy() {
  set_has_shortpy();
  if (shortpy_ == NULL) {
    shortpy_ = new ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.shortPy)
  return shortpy_;
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* ContactInfo::release_shortpy() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.shortPy)
  clear_has_shortpy();
  ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* temp = shortpy_;
  shortpy_ = NULL;
  return temp;
}
inline void ContactInfo::set_allocated_shortpy(::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* shortpy) {
  delete shortpy_;
  shortpy_ = shortpy;
  if (shortpy) {
    set_has_shortpy();
  } else {
    clear_has_shortpy();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.shortPy)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.QuanPin quanpin = 4;
inline bool ContactInfo::has_quanpin() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void ContactInfo::set_has_quanpin() {
  _has_bits_[0] |= 0x00100000u;
}
inline void ContactInfo::clear_has_quanpin() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void ContactInfo::clear_quanpin() {
  if (quanpin_ != NULL) quanpin_->::com::tencent::mars::microchat::proto::ContactInfo_QuanPin::Clear();
  clear_has_quanpin();
}
inline const ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin& ContactInfo::quanpin() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.quanpin)
  return quanpin_ != NULL ? *quanpin_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_QuanPin::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* ContactInfo::mutable_quanpin() {
  set_has_quanpin();
  if (quanpin_ == NULL) {
    quanpin_ = new ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.quanpin)
  return quanpin_;
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* ContactInfo::release_quanpin() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.quanpin)
  clear_has_quanpin();
  ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* temp = quanpin_;
  quanpin_ = NULL;
  return temp;
}
inline void ContactInfo::set_allocated_quanpin(::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* quanpin) {
  delete quanpin_;
  quanpin_ = quanpin;
  if (quanpin) {
    set_has_quanpin();
  } else {
    clear_has_quanpin();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.quanpin)
}

// optional int32 tag5 = 5;
inline bool ContactInfo::has_tag5() const {
  return (_has_bits_[0] & 0x02000000u) != 0;
}
inline void ContactInfo::set_has_tag5() {
  _has_bits_[0] |= 0x02000000u;
}
inline void ContactInfo::clear_has_tag5() {
  _has_bits_[0] &= ~0x02000000u;
}
inline void ContactInfo::clear_tag5() {
  tag5_ = 0;
  clear_has_tag5();
}
inline ::google::protobuf::int32 ContactInfo::tag5() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag5)
  return tag5_;
}
inline void ContactInfo::set_tag5(::google::protobuf::int32 value) {
  set_has_tag5();
  tag5_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag5)
}

// optional string tag6 = 6;
inline bool ContactInfo::has_tag6() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContactInfo::set_has_tag6() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContactInfo::clear_has_tag6() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContactInfo::clear_tag6() {
  tag6_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag6();
}
inline const ::std::string& ContactInfo::tag6() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag6)
  return tag6_.GetNoArena();
}
inline void ContactInfo::set_tag6(const ::std::string& value) {
  set_has_tag6();
  tag6_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag6)
}
#if LANG_CXX11
inline void ContactInfo::set_tag6(::std::string&& value) {
  set_has_tag6();
  tag6_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag6)
}
#endif
inline void ContactInfo::set_tag6(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag6();
  tag6_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag6)
}
inline void ContactInfo::set_tag6(const char* value, size_t size) {
  set_has_tag6();
  tag6_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag6)
}
inline ::std::string* ContactInfo::mutable_tag6() {
  set_has_tag6();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag6)
  return tag6_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_tag6() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag6)
  clear_has_tag6();
  return tag6_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_tag6(::std::string* tag6) {
  if (tag6 != NULL) {
    set_has_tag6();
  } else {
    clear_has_tag6();
  }
  tag6_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag6);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag6)
}

// optional int32 unknownKey = 7;
inline bool ContactInfo::has_unknownkey() const {
  return (_has_bits_[0] & 0x04000000u) != 0;
}
inline void ContactInfo::set_has_unknownkey() {
  _has_bits_[0] |= 0x04000000u;
}
inline void ContactInfo::clear_has_unknownkey() {
  _has_bits_[0] &= ~0x04000000u;
}
inline void ContactInfo::clear_unknownkey() {
  unknownkey_ = 0;
  clear_has_unknownkey();
}
inline ::google::protobuf::int32 ContactInfo::unknownkey() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.unknownKey)
  return unknownkey_;
}
inline void ContactInfo::set_unknownkey(::google::protobuf::int32 value) {
  set_has_unknownkey();
  unknownkey_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.unknownKey)
}

// optional int32 tag8 = 8;
inline bool ContactInfo::has_tag8() const {
  return (_has_bits_[0] & 0x08000000u) != 0;
}
inline void ContactInfo::set_has_tag8() {
  _has_bits_[0] |= 0x08000000u;
}
inline void ContactInfo::clear_has_tag8() {
  _has_bits_[0] &= ~0x08000000u;
}
inline void ContactInfo::clear_tag8() {
  tag8_ = 0;
  clear_has_tag8();
}
inline ::google::protobuf::int32 ContactInfo::tag8() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag8)
  return tag8_;
}
inline void ContactInfo::set_tag8(::google::protobuf::int32 value) {
  set_has_tag8();
  tag8_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag8)
}

// optional int32 tag9 = 9;
inline bool ContactInfo::has_tag9() const {
  return (_has_bits_[0] & 0x10000000u) != 0;
}
inline void ContactInfo::set_has_tag9() {
  _has_bits_[0] |= 0x10000000u;
}
inline void ContactInfo::clear_has_tag9() {
  _has_bits_[0] &= ~0x10000000u;
}
inline void ContactInfo::clear_tag9() {
  tag9_ = 0;
  clear_has_tag9();
}
inline ::google::protobuf::int32 ContactInfo::tag9() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag9)
  return tag9_;
}
inline void ContactInfo::set_tag9(::google::protobuf::int32 value) {
  set_has_tag9();
  tag9_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag9)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME real_nickname = 10;
inline bool ContactInfo::has_real_nickname() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void ContactInfo::set_has_real_nickname() {
  _has_bits_[0] |= 0x00200000u;
}
inline void ContactInfo::clear_has_real_nickname() {
  _has_bits_[0] &= ~0x00200000u;
}
inline void ContactInfo::clear_real_nickname() {
  if (real_nickname_ != NULL) real_nickname_->::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME::Clear();
  clear_has_real_nickname();
}
inline const ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME& ContactInfo::real_nickname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.real_nickname)
  return real_nickname_ != NULL ? *real_nickname_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* ContactInfo::mutable_real_nickname() {
  set_has_real_nickname();
  if (real_nickname_ == NULL) {
    real_nickname_ = new ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.real_nickname)
  return real_nickname_;
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* ContactInfo::release_real_nickname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.real_nickname)
  clear_has_real_nickname();
  ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* temp = real_nickname_;
  real_nickname_ = NULL;
  return temp;
}
inline void ContactInfo::set_allocated_real_nickname(::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* real_nickname) {
  delete real_nickname_;
  real_nickname_ = real_nickname;
  if (real_nickname) {
    set_has_real_nickname();
  } else {
    clear_has_real_nickname();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.real_nickname)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT real_shortPy = 11;
inline bool ContactInfo::has_real_shortpy() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
inline void ContactInfo::set_has_real_shortpy() {
  _has_bits_[0] |= 0x00400000u;
}
inline void ContactInfo::clear_has_real_shortpy() {
  _has_bits_[0] &= ~0x00400000u;
}
inline void ContactInfo::clear_real_shortpy() {
  if (real_shortpy_ != NULL) real_shortpy_->::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT::Clear();
  clear_has_real_shortpy();
}
inline const ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT& ContactInfo::real_shortpy() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.real_shortPy)
  return real_shortpy_ != NULL ? *real_shortpy_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* ContactInfo::mutable_real_shortpy() {
  set_has_real_shortpy();
  if (real_shortpy_ == NULL) {
    real_shortpy_ = new ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.real_shortPy)
  return real_shortpy_;
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* ContactInfo::release_real_shortpy() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.real_shortPy)
  clear_has_real_shortpy();
  ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* temp = real_shortpy_;
  real_shortpy_ = NULL;
  return temp;
}
inline void ContactInfo::set_allocated_real_shortpy(::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* real_shortpy) {
  delete real_shortpy_;
  real_shortpy_ = real_shortpy;
  if (real_shortpy) {
    set_has_real_shortpy();
  } else {
    clear_has_real_shortpy();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.real_shortPy)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin real_quanpin = 12;
inline bool ContactInfo::has_real_quanpin() const {
  return (_has_bits_[0] & 0x00800000u) != 0;
}
inline void ContactInfo::set_has_real_quanpin() {
  _has_bits_[0] |= 0x00800000u;
}
inline void ContactInfo::clear_has_real_quanpin() {
  _has_bits_[0] &= ~0x00800000u;
}
inline void ContactInfo::clear_real_quanpin() {
  if (real_quanpin_ != NULL) real_quanpin_->::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin::Clear();
  clear_has_real_quanpin();
}
inline const ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin& ContactInfo::real_quanpin() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.real_quanpin)
  return real_quanpin_ != NULL ? *real_quanpin_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* ContactInfo::mutable_real_quanpin() {
  set_has_real_quanpin();
  if (real_quanpin_ == NULL) {
    real_quanpin_ = new ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.real_quanpin)
  return real_quanpin_;
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* ContactInfo::release_real_quanpin() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.real_quanpin)
  clear_has_real_quanpin();
  ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* temp = real_quanpin_;
  real_quanpin_ = NULL;
  return temp;
}
inline void ContactInfo::set_allocated_real_quanpin(::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* real_quanpin) {
  delete real_quanpin_;
  real_quanpin_ = real_quanpin;
  if (real_quanpin) {
    set_has_real_quanpin();
  } else {
    clear_has_real_quanpin();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.real_quanpin)
}

// optional int32 tag13 = 13;
inline bool ContactInfo::has_tag13() const {
  return (_has_bits_[0] & 0x20000000u) != 0;
}
inline void ContactInfo::set_has_tag13() {
  _has_bits_[0] |= 0x20000000u;
}
inline void ContactInfo::clear_has_tag13() {
  _has_bits_[0] &= ~0x20000000u;
}
inline void ContactInfo::clear_tag13() {
  tag13_ = 0;
  clear_has_tag13();
}
inline ::google::protobuf::int32 ContactInfo::tag13() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag13)
  return tag13_;
}
inline void ContactInfo::set_tag13(::google::protobuf::int32 value) {
  set_has_tag13();
  tag13_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag13)
}

// optional int32 tag14 = 14;
inline bool ContactInfo::has_tag14() const {
  return (_has_bits_[0] & 0x40000000u) != 0;
}
inline void ContactInfo::set_has_tag14() {
  _has_bits_[0] |= 0x40000000u;
}
inline void ContactInfo::clear_has_tag14() {
  _has_bits_[0] &= ~0x40000000u;
}
inline void ContactInfo::clear_tag14() {
  tag14_ = 0;
  clear_has_tag14();
}
inline ::google::protobuf::int32 ContactInfo::tag14() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag14)
  return tag14_;
}
inline void ContactInfo::set_tag14(::google::protobuf::int32 value) {
  set_has_tag14();
  tag14_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag14)
}

// optional string tag16 = 16;
inline bool ContactInfo::has_tag16() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ContactInfo::set_has_tag16() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ContactInfo::clear_has_tag16() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ContactInfo::clear_tag16() {
  tag16_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag16();
}
inline const ::std::string& ContactInfo::tag16() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag16)
  return tag16_.GetNoArena();
}
inline void ContactInfo::set_tag16(const ::std::string& value) {
  set_has_tag16();
  tag16_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag16)
}
#if LANG_CXX11
inline void ContactInfo::set_tag16(::std::string&& value) {
  set_has_tag16();
  tag16_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag16)
}
#endif
inline void ContactInfo::set_tag16(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag16();
  tag16_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag16)
}
inline void ContactInfo::set_tag16(const char* value, size_t size) {
  set_has_tag16();
  tag16_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag16)
}
inline ::std::string* ContactInfo::mutable_tag16() {
  set_has_tag16();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag16)
  return tag16_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_tag16() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag16)
  clear_has_tag16();
  return tag16_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_tag16(::std::string* tag16) {
  if (tag16 != NULL) {
    set_has_tag16();
  } else {
    clear_has_tag16();
  }
  tag16_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag16);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag16)
}

// optional int32 bChatRoom = 17;
inline bool ContactInfo::has_bchatroom() const {
  return (_has_bits_[0] & 0x80000000u) != 0;
}
inline void ContactInfo::set_has_bchatroom() {
  _has_bits_[0] |= 0x80000000u;
}
inline void ContactInfo::clear_has_bchatroom() {
  _has_bits_[0] &= ~0x80000000u;
}
inline void ContactInfo::clear_bchatroom() {
  bchatroom_ = 0;
  clear_has_bchatroom();
}
inline ::google::protobuf::int32 ContactInfo::bchatroom() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.bChatRoom)
  return bchatroom_;
}
inline void ContactInfo::set_bchatroom(::google::protobuf::int32 value) {
  set_has_bchatroom();
  bchatroom_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.bChatRoom)
}

// optional int32 tag18 = 18;
inline bool ContactInfo::has_tag18() const {
  return (_has_bits_[1] & 0x00000001u) != 0;
}
inline void ContactInfo::set_has_tag18() {
  _has_bits_[1] |= 0x00000001u;
}
inline void ContactInfo::clear_has_tag18() {
  _has_bits_[1] &= ~0x00000001u;
}
inline void ContactInfo::clear_tag18() {
  tag18_ = 0;
  clear_has_tag18();
}
inline ::google::protobuf::int32 ContactInfo::tag18() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag18)
  return tag18_;
}
inline void ContactInfo::set_tag18(::google::protobuf::int32 value) {
  set_has_tag18();
  tag18_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag18)
}

// optional string sheng = 19;
inline bool ContactInfo::has_sheng() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ContactInfo::set_has_sheng() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ContactInfo::clear_has_sheng() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ContactInfo::clear_sheng() {
  sheng_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_sheng();
}
inline const ::std::string& ContactInfo::sheng() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.sheng)
  return sheng_.GetNoArena();
}
inline void ContactInfo::set_sheng(const ::std::string& value) {
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.sheng)
}
#if LANG_CXX11
inline void ContactInfo::set_sheng(::std::string&& value) {
  set_has_sheng();
  sheng_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.sheng)
}
#endif
inline void ContactInfo::set_sheng(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.sheng)
}
inline void ContactInfo::set_sheng(const char* value, size_t size) {
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.sheng)
}
inline ::std::string* ContactInfo::mutable_sheng() {
  set_has_sheng();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.sheng)
  return sheng_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_sheng() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.sheng)
  clear_has_sheng();
  return sheng_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_sheng(::std::string* sheng) {
  if (sheng != NULL) {
    set_has_sheng();
  } else {
    clear_has_sheng();
  }
  sheng_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), sheng);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.sheng)
}

// optional string shi = 20;
inline bool ContactInfo::has_shi() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void ContactInfo::set_has_shi() {
  _has_bits_[0] |= 0x00000008u;
}
inline void ContactInfo::clear_has_shi() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void ContactInfo::clear_shi() {
  shi_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_shi();
}
inline const ::std::string& ContactInfo::shi() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.shi)
  return shi_.GetNoArena();
}
inline void ContactInfo::set_shi(const ::std::string& value) {
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.shi)
}
#if LANG_CXX11
inline void ContactInfo::set_shi(::std::string&& value) {
  set_has_shi();
  shi_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.shi)
}
#endif
inline void ContactInfo::set_shi(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.shi)
}
inline void ContactInfo::set_shi(const char* value, size_t size) {
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.shi)
}
inline ::std::string* ContactInfo::mutable_shi() {
  set_has_shi();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.shi)
  return shi_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_shi() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.shi)
  clear_has_shi();
  return shi_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_shi(::std::string* shi) {
  if (shi != NULL) {
    set_has_shi();
  } else {
    clear_has_shi();
  }
  shi_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), shi);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.shi)
}

// optional string qianming = 21;
inline bool ContactInfo::has_qianming() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void ContactInfo::set_has_qianming() {
  _has_bits_[0] |= 0x00000010u;
}
inline void ContactInfo::clear_has_qianming() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void ContactInfo::clear_qianming() {
  qianming_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_qianming();
}
inline const ::std::string& ContactInfo::qianming() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.qianming)
  return qianming_.GetNoArena();
}
inline void ContactInfo::set_qianming(const ::std::string& value) {
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.qianming)
}
#if LANG_CXX11
inline void ContactInfo::set_qianming(::std::string&& value) {
  set_has_qianming();
  qianming_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.qianming)
}
#endif
inline void ContactInfo::set_qianming(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.qianming)
}
inline void ContactInfo::set_qianming(const char* value, size_t size) {
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.qianming)
}
inline ::std::string* ContactInfo::mutable_qianming() {
  set_has_qianming();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.qianming)
  return qianming_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_qianming() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.qianming)
  clear_has_qianming();
  return qianming_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_qianming(::std::string* qianming) {
  if (qianming != NULL) {
    set_has_qianming();
  } else {
    clear_has_qianming();
  }
  qianming_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), qianming);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.qianming)
}

// optional int32 bFriend = 22;
inline bool ContactInfo::has_bfriend() const {
  return (_has_bits_[1] & 0x00000002u) != 0;
}
inline void ContactInfo::set_has_bfriend() {
  _has_bits_[1] |= 0x00000002u;
}
inline void ContactInfo::clear_has_bfriend() {
  _has_bits_[1] &= ~0x00000002u;
}
inline void ContactInfo::clear_bfriend() {
  bfriend_ = 0;
  clear_has_bfriend();
}
inline ::google::protobuf::int32 ContactInfo::bfriend() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.bFriend)
  return bfriend_;
}
inline void ContactInfo::set_bfriend(::google::protobuf::int32 value) {
  set_has_bfriend();
  bfriend_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.bFriend)
}

// optional int32 bNotChatRoom = 23;
inline bool ContactInfo::has_bnotchatroom() const {
  return (_has_bits_[1] & 0x00000004u) != 0;
}
inline void ContactInfo::set_has_bnotchatroom() {
  _has_bits_[1] |= 0x00000004u;
}
inline void ContactInfo::clear_has_bnotchatroom() {
  _has_bits_[1] &= ~0x00000004u;
}
inline void ContactInfo::clear_bnotchatroom() {
  bnotchatroom_ = 0;
  clear_has_bnotchatroom();
}
inline ::google::protobuf::int32 ContactInfo::bnotchatroom() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.bNotChatRoom)
  return bnotchatroom_;
}
inline void ContactInfo::set_bnotchatroom(::google::protobuf::int32 value) {
  set_has_bnotchatroom();
  bnotchatroom_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.bNotChatRoom)
}

// optional int32 tag24 = 24;
inline bool ContactInfo::has_tag24() const {
  return (_has_bits_[1] & 0x00000008u) != 0;
}
inline void ContactInfo::set_has_tag24() {
  _has_bits_[1] |= 0x00000008u;
}
inline void ContactInfo::clear_has_tag24() {
  _has_bits_[1] &= ~0x00000008u;
}
inline void ContactInfo::clear_tag24() {
  tag24_ = 0;
  clear_has_tag24();
}
inline ::google::protobuf::int32 ContactInfo::tag24() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag24)
  return tag24_;
}
inline void ContactInfo::set_tag24(::google::protobuf::int32 value) {
  set_has_tag24();
  tag24_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag24)
}

// optional string tag25 = 25;
inline bool ContactInfo::has_tag25() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void ContactInfo::set_has_tag25() {
  _has_bits_[0] |= 0x00000020u;
}
inline void ContactInfo::clear_has_tag25() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void ContactInfo::clear_tag25() {
  tag25_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag25();
}
inline const ::std::string& ContactInfo::tag25() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag25)
  return tag25_.GetNoArena();
}
inline void ContactInfo::set_tag25(const ::std::string& value) {
  set_has_tag25();
  tag25_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag25)
}
#if LANG_CXX11
inline void ContactInfo::set_tag25(::std::string&& value) {
  set_has_tag25();
  tag25_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag25)
}
#endif
inline void ContactInfo::set_tag25(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag25();
  tag25_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag25)
}
inline void ContactInfo::set_tag25(const char* value, size_t size) {
  set_has_tag25();
  tag25_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag25)
}
inline ::std::string* ContactInfo::mutable_tag25() {
  set_has_tag25();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag25)
  return tag25_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_tag25() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag25)
  clear_has_tag25();
  return tag25_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_tag25(::std::string* tag25) {
  if (tag25 != NULL) {
    set_has_tag25();
  } else {
    clear_has_tag25();
  }
  tag25_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag25);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag25)
}

// optional int32 tag26 = 26;
inline bool ContactInfo::has_tag26() const {
  return (_has_bits_[1] & 0x00000010u) != 0;
}
inline void ContactInfo::set_has_tag26() {
  _has_bits_[1] |= 0x00000010u;
}
inline void ContactInfo::clear_has_tag26() {
  _has_bits_[1] &= ~0x00000010u;
}
inline void ContactInfo::clear_tag26() {
  tag26_ = 0;
  clear_has_tag26();
}
inline ::google::protobuf::int32 ContactInfo::tag26() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag26)
  return tag26_;
}
inline void ContactInfo::set_tag26(::google::protobuf::int32 value) {
  set_has_tag26();
  tag26_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag26)
}

// optional int32 src = 27;
inline bool ContactInfo::has_src() const {
  return (_has_bits_[1] & 0x00000020u) != 0;
}
inline void ContactInfo::set_has_src() {
  _has_bits_[1] |= 0x00000020u;
}
inline void ContactInfo::clear_has_src() {
  _has_bits_[1] &= ~0x00000020u;
}
inline void ContactInfo::clear_src() {
  src_ = 0;
  clear_has_src();
}
inline ::google::protobuf::int32 ContactInfo::src() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.src)
  return src_;
}
inline void ContactInfo::set_src(::google::protobuf::int32 value) {
  set_has_src();
  src_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.src)
}

// optional string lastMsgTime = 29;
inline bool ContactInfo::has_lastmsgtime() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void ContactInfo::set_has_lastmsgtime() {
  _has_bits_[0] |= 0x00000040u;
}
inline void ContactInfo::clear_has_lastmsgtime() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void ContactInfo::clear_lastmsgtime() {
  lastmsgtime_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_lastmsgtime();
}
inline const ::std::string& ContactInfo::lastmsgtime() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
  return lastmsgtime_.GetNoArena();
}
inline void ContactInfo::set_lastmsgtime(const ::std::string& value) {
  set_has_lastmsgtime();
  lastmsgtime_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
}
#if LANG_CXX11
inline void ContactInfo::set_lastmsgtime(::std::string&& value) {
  set_has_lastmsgtime();
  lastmsgtime_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
}
#endif
inline void ContactInfo::set_lastmsgtime(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_lastmsgtime();
  lastmsgtime_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
}
inline void ContactInfo::set_lastmsgtime(const char* value, size_t size) {
  set_has_lastmsgtime();
  lastmsgtime_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
}
inline ::std::string* ContactInfo::mutable_lastmsgtime() {
  set_has_lastmsgtime();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
  return lastmsgtime_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_lastmsgtime() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
  clear_has_lastmsgtime();
  return lastmsgtime_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_lastmsgtime(::std::string* lastmsgtime) {
  if (lastmsgtime != NULL) {
    set_has_lastmsgtime();
  } else {
    clear_has_lastmsgtime();
  }
  lastmsgtime_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), lastmsgtime);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
}

// optional string alias = 30;
inline bool ContactInfo::has_alias() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void ContactInfo::set_has_alias() {
  _has_bits_[0] |= 0x00000080u;
}
inline void ContactInfo::clear_has_alias() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void ContactInfo::clear_alias() {
  alias_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_alias();
}
inline const ::std::string& ContactInfo::alias() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.alias)
  return alias_.GetNoArena();
}
inline void ContactInfo::set_alias(const ::std::string& value) {
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.alias)
}
#if LANG_CXX11
inline void ContactInfo::set_alias(::std::string&& value) {
  set_has_alias();
  alias_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.alias)
}
#endif
inline void ContactInfo::set_alias(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.alias)
}
inline void ContactInfo::set_alias(const char* value, size_t size) {
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.alias)
}
inline ::std::string* ContactInfo::mutable_alias() {
  set_has_alias();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.alias)
  return alias_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_alias() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.alias)
  clear_has_alias();
  return alias_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_alias(::std::string* alias) {
  if (alias != NULL) {
    set_has_alias();
  } else {
    clear_has_alias();
  }
  alias_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), alias);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.alias)
}

// optional string chatroomOwnerWxid = 31;
inline bool ContactInfo::has_chatroomownerwxid() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void ContactInfo::set_has_chatroomownerwxid() {
  _has_bits_[0] |= 0x00000100u;
}
inline void ContactInfo::clear_has_chatroomownerwxid() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void ContactInfo::clear_chatroomownerwxid() {
  chatroomownerwxid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_chatroomownerwxid();
}
inline const ::std::string& ContactInfo::chatroomownerwxid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
  return chatroomownerwxid_.GetNoArena();
}
inline void ContactInfo::set_chatroomownerwxid(const ::std::string& value) {
  set_has_chatroomownerwxid();
  chatroomownerwxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
}
#if LANG_CXX11
inline void ContactInfo::set_chatroomownerwxid(::std::string&& value) {
  set_has_chatroomownerwxid();
  chatroomownerwxid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
}
#endif
inline void ContactInfo::set_chatroomownerwxid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_chatroomownerwxid();
  chatroomownerwxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
}
inline void ContactInfo::set_chatroomownerwxid(const char* value, size_t size) {
  set_has_chatroomownerwxid();
  chatroomownerwxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
}
inline ::std::string* ContactInfo::mutable_chatroomownerwxid() {
  set_has_chatroomownerwxid();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
  return chatroomownerwxid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_chatroomownerwxid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
  clear_has_chatroomownerwxid();
  return chatroomownerwxid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_chatroomownerwxid(::std::string* chatroomownerwxid) {
  if (chatroomownerwxid != NULL) {
    set_has_chatroomownerwxid();
  } else {
    clear_has_chatroomownerwxid();
  }
  chatroomownerwxid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), chatroomownerwxid);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
}

// optional int32 tag33 = 33;
inline bool ContactInfo::has_tag33() const {
  return (_has_bits_[1] & 0x00000040u) != 0;
}
inline void ContactInfo::set_has_tag33() {
  _has_bits_[1] |= 0x00000040u;
}
inline void ContactInfo::clear_has_tag33() {
  _has_bits_[1] &= ~0x00000040u;
}
inline void ContactInfo::clear_tag33() {
  tag33_ = 0;
  clear_has_tag33();
}
inline ::google::protobuf::int32 ContactInfo::tag33() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag33)
  return tag33_;
}
inline void ContactInfo::set_tag33(::google::protobuf::int32 value) {
  set_has_tag33();
  tag33_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag33)
}

// optional int32 tag34 = 34;
inline bool ContactInfo::has_tag34() const {
  return (_has_bits_[1] & 0x00000080u) != 0;
}
inline void ContactInfo::set_has_tag34() {
  _has_bits_[1] |= 0x00000080u;
}
inline void ContactInfo::clear_has_tag34() {
  _has_bits_[1] &= ~0x00000080u;
}
inline void ContactInfo::clear_tag34() {
  tag34_ = 0;
  clear_has_tag34();
}
inline ::google::protobuf::int32 ContactInfo::tag34() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag34)
  return tag34_;
}
inline void ContactInfo::set_tag34(::google::protobuf::int32 value) {
  set_has_tag34();
  tag34_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag34)
}

// optional int32 tag35 = 35;
inline bool ContactInfo::has_tag35() const {
  return (_has_bits_[1] & 0x00000100u) != 0;
}
inline void ContactInfo::set_has_tag35() {
  _has_bits_[1] |= 0x00000100u;
}
inline void ContactInfo::clear_has_tag35() {
  _has_bits_[1] &= ~0x00000100u;
}
inline void ContactInfo::clear_tag35() {
  tag35_ = 0;
  clear_has_tag35();
}
inline ::google::protobuf::int32 ContactInfo::tag35() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag35)
  return tag35_;
}
inline void ContactInfo::set_tag35(::google::protobuf::int32 value) {
  set_has_tag35();
  tag35_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag35)
}

// optional string tag37 = 37;
inline bool ContactInfo::has_tag37() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void ContactInfo::set_has_tag37() {
  _has_bits_[0] |= 0x00000200u;
}
inline void ContactInfo::clear_has_tag37() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void ContactInfo::clear_tag37() {
  tag37_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag37();
}
inline const ::std::string& ContactInfo::tag37() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag37)
  return tag37_.GetNoArena();
}
inline void ContactInfo::set_tag37(const ::std::string& value) {
  set_has_tag37();
  tag37_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag37)
}
#if LANG_CXX11
inline void ContactInfo::set_tag37(::std::string&& value) {
  set_has_tag37();
  tag37_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag37)
}
#endif
inline void ContactInfo::set_tag37(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag37();
  tag37_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag37)
}
inline void ContactInfo::set_tag37(const char* value, size_t size) {
  set_has_tag37();
  tag37_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag37)
}
inline ::std::string* ContactInfo::mutable_tag37() {
  set_has_tag37();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag37)
  return tag37_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_tag37() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag37)
  clear_has_tag37();
  return tag37_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_tag37(::std::string* tag37) {
  if (tag37 != NULL) {
    set_has_tag37();
  } else {
    clear_has_tag37();
  }
  tag37_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag37);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag37)
}

// optional string country = 38;
inline bool ContactInfo::has_country() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void ContactInfo::set_has_country() {
  _has_bits_[0] |= 0x00000400u;
}
inline void ContactInfo::clear_has_country() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void ContactInfo::clear_country() {
  country_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_country();
}
inline const ::std::string& ContactInfo::country() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.country)
  return country_.GetNoArena();
}
inline void ContactInfo::set_country(const ::std::string& value) {
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.country)
}
#if LANG_CXX11
inline void ContactInfo::set_country(::std::string&& value) {
  set_has_country();
  country_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.country)
}
#endif
inline void ContactInfo::set_country(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.country)
}
inline void ContactInfo::set_country(const char* value, size_t size) {
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.country)
}
inline ::std::string* ContactInfo::mutable_country() {
  set_has_country();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.country)
  return country_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_country() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.country)
  clear_has_country();
  return country_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_country(::std::string* country) {
  if (country != NULL) {
    set_has_country();
  } else {
    clear_has_country();
  }
  country_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), country);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.country)
}

// optional string headicon_big = 39;
inline bool ContactInfo::has_headicon_big() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void ContactInfo::set_has_headicon_big() {
  _has_bits_[0] |= 0x00000800u;
}
inline void ContactInfo::clear_has_headicon_big() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void ContactInfo::clear_headicon_big() {
  headicon_big_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_headicon_big();
}
inline const ::std::string& ContactInfo::headicon_big() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
  return headicon_big_.GetNoArena();
}
inline void ContactInfo::set_headicon_big(const ::std::string& value) {
  set_has_headicon_big();
  headicon_big_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
}
#if LANG_CXX11
inline void ContactInfo::set_headicon_big(::std::string&& value) {
  set_has_headicon_big();
  headicon_big_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
}
#endif
inline void ContactInfo::set_headicon_big(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_headicon_big();
  headicon_big_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
}
inline void ContactInfo::set_headicon_big(const char* value, size_t size) {
  set_has_headicon_big();
  headicon_big_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
}
inline ::std::string* ContactInfo::mutable_headicon_big() {
  set_has_headicon_big();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
  return headicon_big_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_headicon_big() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
  clear_has_headicon_big();
  return headicon_big_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_headicon_big(::std::string* headicon_big) {
  if (headicon_big != NULL) {
    set_has_headicon_big();
  } else {
    clear_has_headicon_big();
  }
  headicon_big_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), headicon_big);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
}

// optional string headicon_small = 40;
inline bool ContactInfo::has_headicon_small() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void ContactInfo::set_has_headicon_small() {
  _has_bits_[0] |= 0x00001000u;
}
inline void ContactInfo::clear_has_headicon_small() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void ContactInfo::clear_headicon_small() {
  headicon_small_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_headicon_small();
}
inline const ::std::string& ContactInfo::headicon_small() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
  return headicon_small_.GetNoArena();
}
inline void ContactInfo::set_headicon_small(const ::std::string& value) {
  set_has_headicon_small();
  headicon_small_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
}
#if LANG_CXX11
inline void ContactInfo::set_headicon_small(::std::string&& value) {
  set_has_headicon_small();
  headicon_small_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
}
#endif
inline void ContactInfo::set_headicon_small(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_headicon_small();
  headicon_small_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
}
inline void ContactInfo::set_headicon_small(const char* value, size_t size) {
  set_has_headicon_small();
  headicon_small_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
}
inline ::std::string* ContactInfo::mutable_headicon_small() {
  set_has_headicon_small();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
  return headicon_small_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_headicon_small() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
  clear_has_headicon_small();
  return headicon_small_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_headicon_small(::std::string* headicon_small) {
  if (headicon_small != NULL) {
    set_has_headicon_small();
  } else {
    clear_has_headicon_small();
  }
  headicon_small_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), headicon_small);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
}

// optional string tag42 = 42;
inline bool ContactInfo::has_tag42() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void ContactInfo::set_has_tag42() {
  _has_bits_[0] |= 0x00002000u;
}
inline void ContactInfo::clear_has_tag42() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void ContactInfo::clear_tag42() {
  tag42_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag42();
}
inline const ::std::string& ContactInfo::tag42() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag42)
  return tag42_.GetNoArena();
}
inline void ContactInfo::set_tag42(const ::std::string& value) {
  set_has_tag42();
  tag42_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag42)
}
#if LANG_CXX11
inline void ContactInfo::set_tag42(::std::string&& value) {
  set_has_tag42();
  tag42_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag42)
}
#endif
inline void ContactInfo::set_tag42(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag42();
  tag42_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag42)
}
inline void ContactInfo::set_tag42(const char* value, size_t size) {
  set_has_tag42();
  tag42_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag42)
}
inline ::std::string* ContactInfo::mutable_tag42() {
  set_has_tag42();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag42)
  return tag42_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_tag42() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag42)
  clear_has_tag42();
  return tag42_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_tag42(::std::string* tag42) {
  if (tag42 != NULL) {
    set_has_tag42();
  } else {
    clear_has_tag42();
  }
  tag42_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag42);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag42)
}

// optional string encryptName = 45;
inline bool ContactInfo::has_encryptname() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void ContactInfo::set_has_encryptname() {
  _has_bits_[0] |= 0x00004000u;
}
inline void ContactInfo::clear_has_encryptname() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void ContactInfo::clear_encryptname() {
  encryptname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_encryptname();
}
inline const ::std::string& ContactInfo::encryptname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
  return encryptname_.GetNoArena();
}
inline void ContactInfo::set_encryptname(const ::std::string& value) {
  set_has_encryptname();
  encryptname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
}
#if LANG_CXX11
inline void ContactInfo::set_encryptname(::std::string&& value) {
  set_has_encryptname();
  encryptname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
}
#endif
inline void ContactInfo::set_encryptname(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_encryptname();
  encryptname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
}
inline void ContactInfo::set_encryptname(const char* value, size_t size) {
  set_has_encryptname();
  encryptname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
}
inline ::std::string* ContactInfo::mutable_encryptname() {
  set_has_encryptname();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
  return encryptname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_encryptname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
  clear_has_encryptname();
  return encryptname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_encryptname(::std::string* encryptname) {
  if (encryptname != NULL) {
    set_has_encryptname();
  } else {
    clear_has_encryptname();
  }
  encryptname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), encryptname);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
}

// optional string tag50 = 50;
inline bool ContactInfo::has_tag50() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void ContactInfo::set_has_tag50() {
  _has_bits_[0] |= 0x00008000u;
}
inline void ContactInfo::clear_has_tag50() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void ContactInfo::clear_tag50() {
  tag50_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag50();
}
inline const ::std::string& ContactInfo::tag50() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag50)
  return tag50_.GetNoArena();
}
inline void ContactInfo::set_tag50(const ::std::string& value) {
  set_has_tag50();
  tag50_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag50)
}
#if LANG_CXX11
inline void ContactInfo::set_tag50(::std::string&& value) {
  set_has_tag50();
  tag50_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag50)
}
#endif
inline void ContactInfo::set_tag50(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag50();
  tag50_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag50)
}
inline void ContactInfo::set_tag50(const char* value, size_t size) {
  set_has_tag50();
  tag50_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag50)
}
inline ::std::string* ContactInfo::mutable_tag50() {
  set_has_tag50();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag50)
  return tag50_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_tag50() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag50)
  clear_has_tag50();
  return tag50_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_tag50(::std::string* tag50) {
  if (tag50 != NULL) {
    set_has_tag50();
  } else {
    clear_has_tag50();
  }
  tag50_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag50);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag50)
}

// optional int32 chatroom_serverVer = 53;
inline bool ContactInfo::has_chatroom_serverver() const {
  return (_has_bits_[1] & 0x00000200u) != 0;
}
inline void ContactInfo::set_has_chatroom_serverver() {
  _has_bits_[1] |= 0x00000200u;
}
inline void ContactInfo::clear_has_chatroom_serverver() {
  _has_bits_[1] &= ~0x00000200u;
}
inline void ContactInfo::clear_chatroom_serverver() {
  chatroom_serverver_ = 0;
  clear_has_chatroom_serverver();
}
inline ::google::protobuf::int32 ContactInfo::chatroom_serverver() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.chatroom_serverVer)
  return chatroom_serverver_;
}
inline void ContactInfo::set_chatroom_serverver(::google::protobuf::int32 value) {
  set_has_chatroom_serverver();
  chatroom_serverver_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.chatroom_serverVer)
}

// optional int32 chatroom_max_member = 55;
inline bool ContactInfo::has_chatroom_max_member() const {
  return (_has_bits_[1] & 0x00000400u) != 0;
}
inline void ContactInfo::set_has_chatroom_max_member() {
  _has_bits_[1] |= 0x00000400u;
}
inline void ContactInfo::clear_has_chatroom_max_member() {
  _has_bits_[1] &= ~0x00000400u;
}
inline void ContactInfo::clear_chatroom_max_member() {
  chatroom_max_member_ = 0;
  clear_has_chatroom_max_member();
}
inline ::google::protobuf::int32 ContactInfo::chatroom_max_member() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.chatroom_max_member)
  return chatroom_max_member_;
}
inline void ContactInfo::set_chatroom_max_member(::google::protobuf::int32 value) {
  set_has_chatroom_max_member();
  chatroom_max_member_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.chatroom_max_member)
}

// optional int32 tag56 = 56;
inline bool ContactInfo::has_tag56() const {
  return (_has_bits_[1] & 0x00000800u) != 0;
}
inline void ContactInfo::set_has_tag56() {
  _has_bits_[1] |= 0x00000800u;
}
inline void ContactInfo::clear_has_tag56() {
  _has_bits_[1] &= ~0x00000800u;
}
inline void ContactInfo::clear_tag56() {
  tag56_ = 0;
  clear_has_tag56();
}
inline ::google::protobuf::int32 ContactInfo::tag56() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag56)
  return tag56_;
}
inline void ContactInfo::set_tag56(::google::protobuf::int32 value) {
  set_has_tag56();
  tag56_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag56)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList group_member_list = 57;
inline bool ContactInfo::has_group_member_list() const {
  return (_has_bits_[0] & 0x01000000u) != 0;
}
inline void ContactInfo::set_has_group_member_list() {
  _has_bits_[0] |= 0x01000000u;
}
inline void ContactInfo::clear_has_group_member_list() {
  _has_bits_[0] &= ~0x01000000u;
}
inline void ContactInfo::clear_group_member_list() {
  if (group_member_list_ != NULL) group_member_list_->::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList::Clear();
  clear_has_group_member_list();
}
inline const ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList& ContactInfo::group_member_list() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.group_member_list)
  return group_member_list_ != NULL ? *group_member_list_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList::internal_default_instance();
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* ContactInfo::mutable_group_member_list() {
  set_has_group_member_list();
  if (group_member_list_ == NULL) {
    group_member_list_ = new ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.group_member_list)
  return group_member_list_;
}
inline ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* ContactInfo::release_group_member_list() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.group_member_list)
  clear_has_group_member_list();
  ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* temp = group_member_list_;
  group_member_list_ = NULL;
  return temp;
}
inline void ContactInfo::set_allocated_group_member_list(::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* group_member_list) {
  delete group_member_list_;
  group_member_list_ = group_member_list;
  if (group_member_list) {
    set_has_group_member_list();
  } else {
    clear_has_group_member_list();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.group_member_list)
}

// optional int32 tag58 = 58;
inline bool ContactInfo::has_tag58() const {
  return (_has_bits_[1] & 0x00001000u) != 0;
}
inline void ContactInfo::set_has_tag58() {
  _has_bits_[1] |= 0x00001000u;
}
inline void ContactInfo::clear_has_tag58() {
  _has_bits_[1] &= ~0x00001000u;
}
inline void ContactInfo::clear_tag58() {
  tag58_ = 0;
  clear_has_tag58();
}
inline ::google::protobuf::int32 ContactInfo::tag58() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag58)
  return tag58_;
}
inline void ContactInfo::set_tag58(::google::protobuf::int32 value) {
  set_has_tag58();
  tag58_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag58)
}

// optional string beizhuName = 62;
inline bool ContactInfo::has_beizhuname() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void ContactInfo::set_has_beizhuname() {
  _has_bits_[0] |= 0x00010000u;
}
inline void ContactInfo::clear_has_beizhuname() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void ContactInfo::clear_beizhuname() {
  beizhuname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_beizhuname();
}
inline const ::std::string& ContactInfo::beizhuname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
  return beizhuname_.GetNoArena();
}
inline void ContactInfo::set_beizhuname(const ::std::string& value) {
  set_has_beizhuname();
  beizhuname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
}
#if LANG_CXX11
inline void ContactInfo::set_beizhuname(::std::string&& value) {
  set_has_beizhuname();
  beizhuname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
}
#endif
inline void ContactInfo::set_beizhuname(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_beizhuname();
  beizhuname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
}
inline void ContactInfo::set_beizhuname(const char* value, size_t size) {
  set_has_beizhuname();
  beizhuname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
}
inline ::std::string* ContactInfo::mutable_beizhuname() {
  set_has_beizhuname();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
  return beizhuname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ContactInfo::release_beizhuname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
  clear_has_beizhuname();
  return beizhuname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ContactInfo::set_allocated_beizhuname(::std::string* beizhuname) {
  if (beizhuname != NULL) {
    set_has_beizhuname();
  } else {
    clear_has_beizhuname();
  }
  beizhuname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), beizhuname);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
}

// optional int32 tag64 = 64;
inline bool ContactInfo::has_tag64() const {
  return (_has_bits_[1] & 0x00002000u) != 0;
}
inline void ContactInfo::set_has_tag64() {
  _has_bits_[1] |= 0x00002000u;
}
inline void ContactInfo::clear_has_tag64() {
  _has_bits_[1] &= ~0x00002000u;
}
inline void ContactInfo::clear_tag64() {
  tag64_ = 0;
  clear_has_tag64();
}
inline ::google::protobuf::int32 ContactInfo::tag64() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag64)
  return tag64_;
}
inline void ContactInfo::set_tag64(::google::protobuf::int32 value) {
  set_has_tag64();
  tag64_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag64)
}

// optional int32 tag65 = 65;
inline bool ContactInfo::has_tag65() const {
  return (_has_bits_[1] & 0x00004000u) != 0;
}
inline void ContactInfo::set_has_tag65() {
  _has_bits_[1] |= 0x00004000u;
}
inline void ContactInfo::clear_has_tag65() {
  _has_bits_[1] &= ~0x00004000u;
}
inline void ContactInfo::clear_tag65() {
  tag65_ = 0;
  clear_has_tag65();
}
inline ::google::protobuf::int32 ContactInfo::tag65() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag65)
  return tag65_;
}
inline void ContactInfo::set_tag65(::google::protobuf::int32 value) {
  set_has_tag65();
  tag65_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag65)
}

// optional int32 tag66 = 66;
inline bool ContactInfo::has_tag66() const {
  return (_has_bits_[1] & 0x00008000u) != 0;
}
inline void ContactInfo::set_has_tag66() {
  _has_bits_[1] |= 0x00008000u;
}
inline void ContactInfo::clear_has_tag66() {
  _has_bits_[1] &= ~0x00008000u;
}
inline void ContactInfo::clear_tag66() {
  tag66_ = 0;
  clear_has_tag66();
}
inline ::google::protobuf::int32 ContactInfo::tag66() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag66)
  return tag66_;
}
inline void ContactInfo::set_tag66(::google::protobuf::int32 value) {
  set_has_tag66();
  tag66_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag66)
}

// optional int32 tag67 = 67;
inline bool ContactInfo::has_tag67() const {
  return (_has_bits_[1] & 0x00010000u) != 0;
}
inline void ContactInfo::set_has_tag67() {
  _has_bits_[1] |= 0x00010000u;
}
inline void ContactInfo::clear_has_tag67() {
  _has_bits_[1] &= ~0x00010000u;
}
inline void ContactInfo::clear_tag67() {
  tag67_ = 0;
  clear_has_tag67();
}
inline ::google::protobuf::int32 ContactInfo::tag67() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag67)
  return tag67_;
}
inline void ContactInfo::set_tag67(::google::protobuf::int32 value) {
  set_has_tag67();
  tag67_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag67)
}

#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)


}  // namespace proto
}  // namespace microchat
}  // namespace mars
}  // namespace tencent
}  // namespace com

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_NewInit_2eproto__INCLUDED
