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

package pb.xiugou.x1.protobuf.player;

public final class Player {
  private Player() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code pb.LoginStatus}
   */
  public enum LoginStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>NONE = 0;</code>
     */
    NONE(0),
    /**
     * <pre>
     *正常
     * </pre>
     *
     * <code>NORMAL = 1;</code>
     */
    NORMAL(1),
    /**
     * <pre>
     *被封号
     * </pre>
     *
     * <code>FORBID = 2;</code>
     */
    FORBID(2),
    /**
     * <pre>
     *服务器维护中
     * </pre>
     *
     * <code>MAINTAIN = 3;</code>
     */
    MAINTAIN(3),
    /**
     * <pre>
     *违规
     * </pre>
     *
     * <code>VIOLATION = 4;</code>
     */
    VIOLATION(4),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>NONE = 0;</code>
     */
    public static final int NONE_VALUE = 0;
    /**
     * <pre>
     *正常
     * </pre>
     *
     * <code>NORMAL = 1;</code>
     */
    public static final int NORMAL_VALUE = 1;
    /**
     * <pre>
     *被封号
     * </pre>
     *
     * <code>FORBID = 2;</code>
     */
    public static final int FORBID_VALUE = 2;
    /**
     * <pre>
     *服务器维护中
     * </pre>
     *
     * <code>MAINTAIN = 3;</code>
     */
    public static final int MAINTAIN_VALUE = 3;
    /**
     * <pre>
     *违规
     * </pre>
     *
     * <code>VIOLATION = 4;</code>
     */
    public static final int VIOLATION_VALUE = 4;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static LoginStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static LoginStatus forNumber(int value) {
      switch (value) {
        case 0: return NONE;
        case 1: return NORMAL;
        case 2: return FORBID;
        case 3: return MAINTAIN;
        case 4: return VIOLATION;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<LoginStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        LoginStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<LoginStatus>() {
            public LoginStatus findValueByNumber(int number) {
              return LoginStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.getDescriptor().getEnumTypes().get(0);
    }

    private static final LoginStatus[] VALUES = values();

    public static LoginStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private LoginStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:pb.LoginStatus)
  }

  public interface LoginRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.LoginRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *SDK提供的openId
     * </pre>
     *
     * <code>string open_id = 1;</code>
     * @return The openId.
     */
    java.lang.String getOpenId();
    /**
     * <pre>
     *SDK提供的openId
     * </pre>
     *
     * <code>string open_id = 1;</code>
     * @return The bytes for openId.
     */
    com.google.protobuf.ByteString
        getOpenIdBytes();

    /**
     * <pre>
     *服务器ID
     * </pre>
     *
     * <code>int32 server_id = 2;</code>
     * @return The serverId.
     */
    int getServerId();

    /**
     * <pre>
     *设备类型，ANDROID，IOS，H5，PC，OTHER
     * </pre>
     *
     * <code>string device_type = 3;</code>
     * @return The deviceType.
     */
    java.lang.String getDeviceType();
    /**
     * <pre>
     *设备类型，ANDROID，IOS，H5，PC，OTHER
     * </pre>
     *
     * <code>string device_type = 3;</code>
     * @return The bytes for deviceType.
     */
    com.google.protobuf.ByteString
        getDeviceTypeBytes();

    /**
     * <pre>
     *设备ID
     * </pre>
     *
     * <code>string device_id = 4;</code>
     * @return The deviceId.
     */
    java.lang.String getDeviceId();
    /**
     * <pre>
     *设备ID
     * </pre>
     *
     * <code>string device_id = 4;</code>
     * @return The bytes for deviceId.
     */
    com.google.protobuf.ByteString
        getDeviceIdBytes();

    /**
     * <pre>
     *渠道ID
     * </pre>
     *
     * <code>int32 channel_id = 5;</code>
     * @return The channelId.
     */
    int getChannelId();

    /**
     * <pre>
     *渠道标识，如37、
     * </pre>
     *
     * <code>string channel_identity = 6;</code>
     * @return The channelIdentity.
     */
    java.lang.String getChannelIdentity();
    /**
     * <pre>
     *渠道标识，如37、
     * </pre>
     *
     * <code>string channel_identity = 6;</code>
     * @return The bytes for channelIdentity.
     */
    com.google.protobuf.ByteString
        getChannelIdentityBytes();

    /**
     * <pre>
     *不同渠道的个性化数据
     * </pre>
     *
     * <code>bytes channel_data = 7;</code>
     * @return The channelData.
     */
    com.google.protobuf.ByteString getChannelData();

    /**
     * <pre>
     *是否断线重现
     * </pre>
     *
     * <code>bool re_connect = 8;</code>
     * @return The reConnect.
     */
    boolean getReConnect();
  }
  /**
   * <pre>
   *登录
   * </pre>
   *
   * Protobuf type {@code pb.LoginRequest}
   */
  public  static final class LoginRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.LoginRequest)
      LoginRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LoginRequest.newBuilder() to construct.
    private LoginRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LoginRequest() {
      openId_ = "";
      deviceType_ = "";
      deviceId_ = "";
      channelIdentity_ = "";
      channelData_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new LoginRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LoginRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              openId_ = s;
              break;
            }
            case 16: {

              serverId_ = input.readInt32();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              deviceType_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();

              deviceId_ = s;
              break;
            }
            case 40: {

              channelId_ = input.readInt32();
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();

              channelIdentity_ = s;
              break;
            }
            case 58: {

              channelData_ = input.readBytes();
              break;
            }
            case 64: {

              reConnect_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LoginRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LoginRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.LoginRequest.class, pb.xiugou.x1.protobuf.player.Player.LoginRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.LoginRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200001;</code>
       */
      ID(200001),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200001;</code>
       */
      public static final int ID_VALUE = 200001;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200001: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.LoginRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.LoginRequest.Proto)
    }

    public static final int OPEN_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object openId_;
    /**
     * <pre>
     *SDK提供的openId
     * </pre>
     *
     * <code>string open_id = 1;</code>
     * @return The openId.
     */
    public java.lang.String getOpenId() {
      java.lang.Object ref = openId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        openId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *SDK提供的openId
     * </pre>
     *
     * <code>string open_id = 1;</code>
     * @return The bytes for openId.
     */
    public com.google.protobuf.ByteString
        getOpenIdBytes() {
      java.lang.Object ref = openId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        openId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SERVER_ID_FIELD_NUMBER = 2;
    private int serverId_;
    /**
     * <pre>
     *服务器ID
     * </pre>
     *
     * <code>int32 server_id = 2;</code>
     * @return The serverId.
     */
    public int getServerId() {
      return serverId_;
    }

    public static final int DEVICE_TYPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object deviceType_;
    /**
     * <pre>
     *设备类型，ANDROID，IOS，H5，PC，OTHER
     * </pre>
     *
     * <code>string device_type = 3;</code>
     * @return The deviceType.
     */
    public java.lang.String getDeviceType() {
      java.lang.Object ref = deviceType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        deviceType_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *设备类型，ANDROID，IOS，H5，PC，OTHER
     * </pre>
     *
     * <code>string device_type = 3;</code>
     * @return The bytes for deviceType.
     */
    public com.google.protobuf.ByteString
        getDeviceTypeBytes() {
      java.lang.Object ref = deviceType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 4;
    private volatile java.lang.Object deviceId_;
    /**
     * <pre>
     *设备ID
     * </pre>
     *
     * <code>string device_id = 4;</code>
     * @return The deviceId.
     */
    public java.lang.String getDeviceId() {
      java.lang.Object ref = deviceId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        deviceId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *设备ID
     * </pre>
     *
     * <code>string device_id = 4;</code>
     * @return The bytes for deviceId.
     */
    public com.google.protobuf.ByteString
        getDeviceIdBytes() {
      java.lang.Object ref = deviceId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CHANNEL_ID_FIELD_NUMBER = 5;
    private int channelId_;
    /**
     * <pre>
     *渠道ID
     * </pre>
     *
     * <code>int32 channel_id = 5;</code>
     * @return The channelId.
     */
    public int getChannelId() {
      return channelId_;
    }

    public static final int CHANNEL_IDENTITY_FIELD_NUMBER = 6;
    private volatile java.lang.Object channelIdentity_;
    /**
     * <pre>
     *渠道标识，如37、
     * </pre>
     *
     * <code>string channel_identity = 6;</code>
     * @return The channelIdentity.
     */
    public java.lang.String getChannelIdentity() {
      java.lang.Object ref = channelIdentity_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        channelIdentity_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *渠道标识，如37、
     * </pre>
     *
     * <code>string channel_identity = 6;</code>
     * @return The bytes for channelIdentity.
     */
    public com.google.protobuf.ByteString
        getChannelIdentityBytes() {
      java.lang.Object ref = channelIdentity_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        channelIdentity_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CHANNEL_DATA_FIELD_NUMBER = 7;
    private com.google.protobuf.ByteString channelData_;
    /**
     * <pre>
     *不同渠道的个性化数据
     * </pre>
     *
     * <code>bytes channel_data = 7;</code>
     * @return The channelData.
     */
    public com.google.protobuf.ByteString getChannelData() {
      return channelData_;
    }

    public static final int RE_CONNECT_FIELD_NUMBER = 8;
    private boolean reConnect_;
    /**
     * <pre>
     *是否断线重现
     * </pre>
     *
     * <code>bool re_connect = 8;</code>
     * @return The reConnect.
     */
    public boolean getReConnect() {
      return reConnect_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getOpenIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, openId_);
      }
      if (serverId_ != 0) {
        output.writeInt32(2, serverId_);
      }
      if (!getDeviceTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, deviceType_);
      }
      if (!getDeviceIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, deviceId_);
      }
      if (channelId_ != 0) {
        output.writeInt32(5, channelId_);
      }
      if (!getChannelIdentityBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, channelIdentity_);
      }
      if (!channelData_.isEmpty()) {
        output.writeBytes(7, channelData_);
      }
      if (reConnect_ != false) {
        output.writeBool(8, reConnect_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getOpenIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, openId_);
      }
      if (serverId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, serverId_);
      }
      if (!getDeviceTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, deviceType_);
      }
      if (!getDeviceIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, deviceId_);
      }
      if (channelId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, channelId_);
      }
      if (!getChannelIdentityBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, channelIdentity_);
      }
      if (!channelData_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(7, channelData_);
      }
      if (reConnect_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, reConnect_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.LoginRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.LoginRequest other = (pb.xiugou.x1.protobuf.player.Player.LoginRequest) obj;

      if (!getOpenId()
          .equals(other.getOpenId())) return false;
      if (getServerId()
          != other.getServerId()) return false;
      if (!getDeviceType()
          .equals(other.getDeviceType())) return false;
      if (!getDeviceId()
          .equals(other.getDeviceId())) return false;
      if (getChannelId()
          != other.getChannelId()) return false;
      if (!getChannelIdentity()
          .equals(other.getChannelIdentity())) return false;
      if (!getChannelData()
          .equals(other.getChannelData())) return false;
      if (getReConnect()
          != other.getReConnect()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + OPEN_ID_FIELD_NUMBER;
      hash = (53 * hash) + getOpenId().hashCode();
      hash = (37 * hash) + SERVER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getServerId();
      hash = (37 * hash) + DEVICE_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceType().hashCode();
      hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId().hashCode();
      hash = (37 * hash) + CHANNEL_ID_FIELD_NUMBER;
      hash = (53 * hash) + getChannelId();
      hash = (37 * hash) + CHANNEL_IDENTITY_FIELD_NUMBER;
      hash = (53 * hash) + getChannelIdentity().hashCode();
      hash = (37 * hash) + CHANNEL_DATA_FIELD_NUMBER;
      hash = (53 * hash) + getChannelData().hashCode();
      hash = (37 * hash) + RE_CONNECT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getReConnect());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.LoginRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *登录
     * </pre>
     *
     * Protobuf type {@code pb.LoginRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.LoginRequest)
        pb.xiugou.x1.protobuf.player.Player.LoginRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LoginRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LoginRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.LoginRequest.class, pb.xiugou.x1.protobuf.player.Player.LoginRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.LoginRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        openId_ = "";

        serverId_ = 0;

        deviceType_ = "";

        deviceId_ = "";

        channelId_ = 0;

        channelIdentity_ = "";

        channelData_ = com.google.protobuf.ByteString.EMPTY;

        reConnect_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LoginRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LoginRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.LoginRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LoginRequest build() {
        pb.xiugou.x1.protobuf.player.Player.LoginRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LoginRequest buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.LoginRequest result = new pb.xiugou.x1.protobuf.player.Player.LoginRequest(this);
        result.openId_ = openId_;
        result.serverId_ = serverId_;
        result.deviceType_ = deviceType_;
        result.deviceId_ = deviceId_;
        result.channelId_ = channelId_;
        result.channelIdentity_ = channelIdentity_;
        result.channelData_ = channelData_;
        result.reConnect_ = reConnect_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.LoginRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.LoginRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.LoginRequest other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.LoginRequest.getDefaultInstance()) return this;
        if (!other.getOpenId().isEmpty()) {
          openId_ = other.openId_;
          onChanged();
        }
        if (other.getServerId() != 0) {
          setServerId(other.getServerId());
        }
        if (!other.getDeviceType().isEmpty()) {
          deviceType_ = other.deviceType_;
          onChanged();
        }
        if (!other.getDeviceId().isEmpty()) {
          deviceId_ = other.deviceId_;
          onChanged();
        }
        if (other.getChannelId() != 0) {
          setChannelId(other.getChannelId());
        }
        if (!other.getChannelIdentity().isEmpty()) {
          channelIdentity_ = other.channelIdentity_;
          onChanged();
        }
        if (other.getChannelData() != com.google.protobuf.ByteString.EMPTY) {
          setChannelData(other.getChannelData());
        }
        if (other.getReConnect() != false) {
          setReConnect(other.getReConnect());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.LoginRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.LoginRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object openId_ = "";
      /**
       * <pre>
       *SDK提供的openId
       * </pre>
       *
       * <code>string open_id = 1;</code>
       * @return The openId.
       */
      public java.lang.String getOpenId() {
        java.lang.Object ref = openId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          openId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *SDK提供的openId
       * </pre>
       *
       * <code>string open_id = 1;</code>
       * @return The bytes for openId.
       */
      public com.google.protobuf.ByteString
          getOpenIdBytes() {
        java.lang.Object ref = openId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          openId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *SDK提供的openId
       * </pre>
       *
       * <code>string open_id = 1;</code>
       * @param value The openId to set.
       * @return This builder for chaining.
       */
      public Builder setOpenId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        openId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *SDK提供的openId
       * </pre>
       *
       * <code>string open_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOpenId() {
        
        openId_ = getDefaultInstance().getOpenId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *SDK提供的openId
       * </pre>
       *
       * <code>string open_id = 1;</code>
       * @param value The bytes for openId to set.
       * @return This builder for chaining.
       */
      public Builder setOpenIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        openId_ = value;
        onChanged();
        return this;
      }

      private int serverId_ ;
      /**
       * <pre>
       *服务器ID
       * </pre>
       *
       * <code>int32 server_id = 2;</code>
       * @return The serverId.
       */
      public int getServerId() {
        return serverId_;
      }
      /**
       * <pre>
       *服务器ID
       * </pre>
       *
       * <code>int32 server_id = 2;</code>
       * @param value The serverId to set.
       * @return This builder for chaining.
       */
      public Builder setServerId(int value) {
        
        serverId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *服务器ID
       * </pre>
       *
       * <code>int32 server_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerId() {
        
        serverId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object deviceType_ = "";
      /**
       * <pre>
       *设备类型，ANDROID，IOS，H5，PC，OTHER
       * </pre>
       *
       * <code>string device_type = 3;</code>
       * @return The deviceType.
       */
      public java.lang.String getDeviceType() {
        java.lang.Object ref = deviceType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deviceType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *设备类型，ANDROID，IOS，H5，PC，OTHER
       * </pre>
       *
       * <code>string device_type = 3;</code>
       * @return The bytes for deviceType.
       */
      public com.google.protobuf.ByteString
          getDeviceTypeBytes() {
        java.lang.Object ref = deviceType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *设备类型，ANDROID，IOS，H5，PC，OTHER
       * </pre>
       *
       * <code>string device_type = 3;</code>
       * @param value The deviceType to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        deviceType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *设备类型，ANDROID，IOS，H5，PC，OTHER
       * </pre>
       *
       * <code>string device_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceType() {
        
        deviceType_ = getDefaultInstance().getDeviceType();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *设备类型，ANDROID，IOS，H5，PC，OTHER
       * </pre>
       *
       * <code>string device_type = 3;</code>
       * @param value The bytes for deviceType to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        deviceType_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object deviceId_ = "";
      /**
       * <pre>
       *设备ID
       * </pre>
       *
       * <code>string device_id = 4;</code>
       * @return The deviceId.
       */
      public java.lang.String getDeviceId() {
        java.lang.Object ref = deviceId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deviceId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *设备ID
       * </pre>
       *
       * <code>string device_id = 4;</code>
       * @return The bytes for deviceId.
       */
      public com.google.protobuf.ByteString
          getDeviceIdBytes() {
        java.lang.Object ref = deviceId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *设备ID
       * </pre>
       *
       * <code>string device_id = 4;</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        deviceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *设备ID
       * </pre>
       *
       * <code>string device_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        
        deviceId_ = getDefaultInstance().getDeviceId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *设备ID
       * </pre>
       *
       * <code>string device_id = 4;</code>
       * @param value The bytes for deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        deviceId_ = value;
        onChanged();
        return this;
      }

      private int channelId_ ;
      /**
       * <pre>
       *渠道ID
       * </pre>
       *
       * <code>int32 channel_id = 5;</code>
       * @return The channelId.
       */
      public int getChannelId() {
        return channelId_;
      }
      /**
       * <pre>
       *渠道ID
       * </pre>
       *
       * <code>int32 channel_id = 5;</code>
       * @param value The channelId to set.
       * @return This builder for chaining.
       */
      public Builder setChannelId(int value) {
        
        channelId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *渠道ID
       * </pre>
       *
       * <code>int32 channel_id = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannelId() {
        
        channelId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object channelIdentity_ = "";
      /**
       * <pre>
       *渠道标识，如37、
       * </pre>
       *
       * <code>string channel_identity = 6;</code>
       * @return The channelIdentity.
       */
      public java.lang.String getChannelIdentity() {
        java.lang.Object ref = channelIdentity_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          channelIdentity_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *渠道标识，如37、
       * </pre>
       *
       * <code>string channel_identity = 6;</code>
       * @return The bytes for channelIdentity.
       */
      public com.google.protobuf.ByteString
          getChannelIdentityBytes() {
        java.lang.Object ref = channelIdentity_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          channelIdentity_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *渠道标识，如37、
       * </pre>
       *
       * <code>string channel_identity = 6;</code>
       * @param value The channelIdentity to set.
       * @return This builder for chaining.
       */
      public Builder setChannelIdentity(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        channelIdentity_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *渠道标识，如37、
       * </pre>
       *
       * <code>string channel_identity = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannelIdentity() {
        
        channelIdentity_ = getDefaultInstance().getChannelIdentity();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *渠道标识，如37、
       * </pre>
       *
       * <code>string channel_identity = 6;</code>
       * @param value The bytes for channelIdentity to set.
       * @return This builder for chaining.
       */
      public Builder setChannelIdentityBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        channelIdentity_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString channelData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *不同渠道的个性化数据
       * </pre>
       *
       * <code>bytes channel_data = 7;</code>
       * @return The channelData.
       */
      public com.google.protobuf.ByteString getChannelData() {
        return channelData_;
      }
      /**
       * <pre>
       *不同渠道的个性化数据
       * </pre>
       *
       * <code>bytes channel_data = 7;</code>
       * @param value The channelData to set.
       * @return This builder for chaining.
       */
      public Builder setChannelData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        channelData_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *不同渠道的个性化数据
       * </pre>
       *
       * <code>bytes channel_data = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannelData() {
        
        channelData_ = getDefaultInstance().getChannelData();
        onChanged();
        return this;
      }

      private boolean reConnect_ ;
      /**
       * <pre>
       *是否断线重现
       * </pre>
       *
       * <code>bool re_connect = 8;</code>
       * @return The reConnect.
       */
      public boolean getReConnect() {
        return reConnect_;
      }
      /**
       * <pre>
       *是否断线重现
       * </pre>
       *
       * <code>bool re_connect = 8;</code>
       * @param value The reConnect to set.
       * @return This builder for chaining.
       */
      public Builder setReConnect(boolean value) {
        
        reConnect_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *是否断线重现
       * </pre>
       *
       * <code>bool re_connect = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearReConnect() {
        
        reConnect_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.LoginRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.LoginRequest)
    private static final pb.xiugou.x1.protobuf.player.Player.LoginRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.LoginRequest();
    }

    public static pb.xiugou.x1.protobuf.player.Player.LoginRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<LoginRequest>
        PARSER = new com.google.protobuf.AbstractParser<LoginRequest>() {
      @java.lang.Override
      public LoginRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LoginRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<LoginRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LoginRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.LoginRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LoginResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.LoginResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *登录状态
     * </pre>
     *
     * <code>.pb.LoginStatus status = 1;</code>
     * @return The enum numeric value on the wire for status.
     */
    int getStatusValue();
    /**
     * <pre>
     *登录状态
     * </pre>
     *
     * <code>.pb.LoginStatus status = 1;</code>
     * @return The status.
     */
    pb.xiugou.x1.protobuf.player.Player.LoginStatus getStatus();

    /**
     * <pre>
     *玩家ID
     * </pre>
     *
     * <code>int64 pid = 2;</code>
     * @return The pid.
     */
    long getPid();

    /**
     * <pre>
     *服务器时间，毫秒
     * </pre>
     *
     * <code>int64 server_time = 3;</code>
     * @return The serverTime.
     */
    long getServerTime();

    /**
     * <pre>
     *时区偏移，毫秒
     * </pre>
     *
     * <code>int64 offset_utc = 4;</code>
     * @return The offsetUtc.
     */
    long getOffsetUtc();

    /**
     * <pre>
     * </pre>
     *
     * <code>string nick = 5;</code>
     * @return The nick.
     */
    java.lang.String getNick();
    /**
     * <pre>
     * </pre>
     *
     * <code>string nick = 5;</code>
     * @return The bytes for nick.
     */
    com.google.protobuf.ByteString
        getNickBytes();

    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 6;</code>
     * @return The head.
     */
    java.lang.String getHead();
    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 6;</code>
     * @return The bytes for head.
     */
    com.google.protobuf.ByteString
        getHeadBytes();

    /**
     * <pre>
     *等级
     * </pre>
     *
     * <code>int32 level = 7;</code>
     * @return The level.
     */
    int getLevel();

    /**
     * <pre>
     *经验
     * </pre>
     *
     * <code>int64 exp = 8;</code>
     * @return The exp.
     */
    long getExp();

    /**
     * <pre>
     *封号结束时间
     * </pre>
     *
     * <code>int64 forbind_end_time = 9;</code>
     * @return The forbindEndTime.
     */
    long getForbindEndTime();

    /**
     * <pre>
     *修改名字次数
     * </pre>
     *
     * <code>int32 change_name_times = 10;</code>
     * @return The changeNameTimes.
     */
    int getChangeNameTimes();

    /**
     * <pre>
     *是否已经买永久去广告特权
     * </pre>
     *
     * <code>bool buy_privilege = 11;</code>
     * @return The buyPrivilege.
     */
    boolean getBuyPrivilege();

    /**
     * <pre>
     *VIP等级
     * </pre>
     *
     * <code>int32 vip_level = 12;</code>
     * @return The vipLevel.
     */
    int getVipLevel();

    /**
     * <pre>
     *开服天数
     * </pre>
     *
     * <code>int32 open_day = 13;</code>
     * @return The openDay.
     */
    int getOpenDay();

    /**
     * <pre>
     *是否开启GM
     * </pre>
     *
     * <code>bool open_gm = 14;</code>
     * @return The openGm.
     */
    boolean getOpenGm();

    /**
     * <pre>
     *是不是创号登录
     * </pre>
     *
     * <code>bool is_create = 15;</code>
     * @return The isCreate.
     */
    boolean getIsCreate();

    /**
     * <pre>
     *创号时间
     * </pre>
     *
     * <code>int64 create_time = 16;</code>
     * @return The createTime.
     */
    long getCreateTime();

    /**
     * <pre>
     *VIP经验
     * </pre>
     *
     * <code>int64 vip_exp = 17;</code>
     * @return The vipExp.
     */
    long getVipExp();
  }
  /**
   * Protobuf type {@code pb.LoginResponse}
   */
  public  static final class LoginResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.LoginResponse)
      LoginResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LoginResponse.newBuilder() to construct.
    private LoginResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LoginResponse() {
      status_ = 0;
      nick_ = "";
      head_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new LoginResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LoginResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              int rawValue = input.readEnum();

              status_ = rawValue;
              break;
            }
            case 16: {

              pid_ = input.readInt64();
              break;
            }
            case 24: {

              serverTime_ = input.readInt64();
              break;
            }
            case 32: {

              offsetUtc_ = input.readInt64();
              break;
            }
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();

              nick_ = s;
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();

              head_ = s;
              break;
            }
            case 56: {

              level_ = input.readInt32();
              break;
            }
            case 64: {

              exp_ = input.readInt64();
              break;
            }
            case 72: {

              forbindEndTime_ = input.readInt64();
              break;
            }
            case 80: {

              changeNameTimes_ = input.readInt32();
              break;
            }
            case 88: {

              buyPrivilege_ = input.readBool();
              break;
            }
            case 96: {

              vipLevel_ = input.readInt32();
              break;
            }
            case 104: {

              openDay_ = input.readInt32();
              break;
            }
            case 112: {

              openGm_ = input.readBool();
              break;
            }
            case 120: {

              isCreate_ = input.readBool();
              break;
            }
            case 128: {

              createTime_ = input.readInt64();
              break;
            }
            case 136: {

              vipExp_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LoginResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LoginResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.LoginResponse.class, pb.xiugou.x1.protobuf.player.Player.LoginResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.LoginResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200001;</code>
       */
      ID(200001),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200001;</code>
       */
      public static final int ID_VALUE = 200001;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200001: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.LoginResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.LoginResponse.Proto)
    }

    public static final int STATUS_FIELD_NUMBER = 1;
    private int status_;
    /**
     * <pre>
     *登录状态
     * </pre>
     *
     * <code>.pb.LoginStatus status = 1;</code>
     * @return The enum numeric value on the wire for status.
     */
    public int getStatusValue() {
      return status_;
    }
    /**
     * <pre>
     *登录状态
     * </pre>
     *
     * <code>.pb.LoginStatus status = 1;</code>
     * @return The status.
     */
    public pb.xiugou.x1.protobuf.player.Player.LoginStatus getStatus() {
      @SuppressWarnings("deprecation")
      pb.xiugou.x1.protobuf.player.Player.LoginStatus result = pb.xiugou.x1.protobuf.player.Player.LoginStatus.valueOf(status_);
      return result == null ? pb.xiugou.x1.protobuf.player.Player.LoginStatus.UNRECOGNIZED : result;
    }

    public static final int PID_FIELD_NUMBER = 2;
    private long pid_;
    /**
     * <pre>
     *玩家ID
     * </pre>
     *
     * <code>int64 pid = 2;</code>
     * @return The pid.
     */
    public long getPid() {
      return pid_;
    }

    public static final int SERVER_TIME_FIELD_NUMBER = 3;
    private long serverTime_;
    /**
     * <pre>
     *服务器时间，毫秒
     * </pre>
     *
     * <code>int64 server_time = 3;</code>
     * @return The serverTime.
     */
    public long getServerTime() {
      return serverTime_;
    }

    public static final int OFFSET_UTC_FIELD_NUMBER = 4;
    private long offsetUtc_;
    /**
     * <pre>
     *时区偏移，毫秒
     * </pre>
     *
     * <code>int64 offset_utc = 4;</code>
     * @return The offsetUtc.
     */
    public long getOffsetUtc() {
      return offsetUtc_;
    }

    public static final int NICK_FIELD_NUMBER = 5;
    private volatile java.lang.Object nick_;
    /**
     * <pre>
     * </pre>
     *
     * <code>string nick = 5;</code>
     * @return The nick.
     */
    public java.lang.String getNick() {
      java.lang.Object ref = nick_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        nick_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * </pre>
     *
     * <code>string nick = 5;</code>
     * @return The bytes for nick.
     */
    public com.google.protobuf.ByteString
        getNickBytes() {
      java.lang.Object ref = nick_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nick_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HEAD_FIELD_NUMBER = 6;
    private volatile java.lang.Object head_;
    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 6;</code>
     * @return The head.
     */
    public java.lang.String getHead() {
      java.lang.Object ref = head_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        head_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 6;</code>
     * @return The bytes for head.
     */
    public com.google.protobuf.ByteString
        getHeadBytes() {
      java.lang.Object ref = head_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        head_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LEVEL_FIELD_NUMBER = 7;
    private int level_;
    /**
     * <pre>
     *等级
     * </pre>
     *
     * <code>int32 level = 7;</code>
     * @return The level.
     */
    public int getLevel() {
      return level_;
    }

    public static final int EXP_FIELD_NUMBER = 8;
    private long exp_;
    /**
     * <pre>
     *经验
     * </pre>
     *
     * <code>int64 exp = 8;</code>
     * @return The exp.
     */
    public long getExp() {
      return exp_;
    }

    public static final int FORBIND_END_TIME_FIELD_NUMBER = 9;
    private long forbindEndTime_;
    /**
     * <pre>
     *封号结束时间
     * </pre>
     *
     * <code>int64 forbind_end_time = 9;</code>
     * @return The forbindEndTime.
     */
    public long getForbindEndTime() {
      return forbindEndTime_;
    }

    public static final int CHANGE_NAME_TIMES_FIELD_NUMBER = 10;
    private int changeNameTimes_;
    /**
     * <pre>
     *修改名字次数
     * </pre>
     *
     * <code>int32 change_name_times = 10;</code>
     * @return The changeNameTimes.
     */
    public int getChangeNameTimes() {
      return changeNameTimes_;
    }

    public static final int BUY_PRIVILEGE_FIELD_NUMBER = 11;
    private boolean buyPrivilege_;
    /**
     * <pre>
     *是否已经买永久去广告特权
     * </pre>
     *
     * <code>bool buy_privilege = 11;</code>
     * @return The buyPrivilege.
     */
    public boolean getBuyPrivilege() {
      return buyPrivilege_;
    }

    public static final int VIP_LEVEL_FIELD_NUMBER = 12;
    private int vipLevel_;
    /**
     * <pre>
     *VIP等级
     * </pre>
     *
     * <code>int32 vip_level = 12;</code>
     * @return The vipLevel.
     */
    public int getVipLevel() {
      return vipLevel_;
    }

    public static final int OPEN_DAY_FIELD_NUMBER = 13;
    private int openDay_;
    /**
     * <pre>
     *开服天数
     * </pre>
     *
     * <code>int32 open_day = 13;</code>
     * @return The openDay.
     */
    public int getOpenDay() {
      return openDay_;
    }

    public static final int OPEN_GM_FIELD_NUMBER = 14;
    private boolean openGm_;
    /**
     * <pre>
     *是否开启GM
     * </pre>
     *
     * <code>bool open_gm = 14;</code>
     * @return The openGm.
     */
    public boolean getOpenGm() {
      return openGm_;
    }

    public static final int IS_CREATE_FIELD_NUMBER = 15;
    private boolean isCreate_;
    /**
     * <pre>
     *是不是创号登录
     * </pre>
     *
     * <code>bool is_create = 15;</code>
     * @return The isCreate.
     */
    public boolean getIsCreate() {
      return isCreate_;
    }

    public static final int CREATE_TIME_FIELD_NUMBER = 16;
    private long createTime_;
    /**
     * <pre>
     *创号时间
     * </pre>
     *
     * <code>int64 create_time = 16;</code>
     * @return The createTime.
     */
    public long getCreateTime() {
      return createTime_;
    }

    public static final int VIP_EXP_FIELD_NUMBER = 17;
    private long vipExp_;
    /**
     * <pre>
     *VIP经验
     * </pre>
     *
     * <code>int64 vip_exp = 17;</code>
     * @return The vipExp.
     */
    public long getVipExp() {
      return vipExp_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (status_ != pb.xiugou.x1.protobuf.player.Player.LoginStatus.NONE.getNumber()) {
        output.writeEnum(1, status_);
      }
      if (pid_ != 0L) {
        output.writeInt64(2, pid_);
      }
      if (serverTime_ != 0L) {
        output.writeInt64(3, serverTime_);
      }
      if (offsetUtc_ != 0L) {
        output.writeInt64(4, offsetUtc_);
      }
      if (!getNickBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, nick_);
      }
      if (!getHeadBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, head_);
      }
      if (level_ != 0) {
        output.writeInt32(7, level_);
      }
      if (exp_ != 0L) {
        output.writeInt64(8, exp_);
      }
      if (forbindEndTime_ != 0L) {
        output.writeInt64(9, forbindEndTime_);
      }
      if (changeNameTimes_ != 0) {
        output.writeInt32(10, changeNameTimes_);
      }
      if (buyPrivilege_ != false) {
        output.writeBool(11, buyPrivilege_);
      }
      if (vipLevel_ != 0) {
        output.writeInt32(12, vipLevel_);
      }
      if (openDay_ != 0) {
        output.writeInt32(13, openDay_);
      }
      if (openGm_ != false) {
        output.writeBool(14, openGm_);
      }
      if (isCreate_ != false) {
        output.writeBool(15, isCreate_);
      }
      if (createTime_ != 0L) {
        output.writeInt64(16, createTime_);
      }
      if (vipExp_ != 0L) {
        output.writeInt64(17, vipExp_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (status_ != pb.xiugou.x1.protobuf.player.Player.LoginStatus.NONE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, status_);
      }
      if (pid_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, pid_);
      }
      if (serverTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, serverTime_);
      }
      if (offsetUtc_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, offsetUtc_);
      }
      if (!getNickBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, nick_);
      }
      if (!getHeadBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, head_);
      }
      if (level_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, level_);
      }
      if (exp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, exp_);
      }
      if (forbindEndTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(9, forbindEndTime_);
      }
      if (changeNameTimes_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, changeNameTimes_);
      }
      if (buyPrivilege_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, buyPrivilege_);
      }
      if (vipLevel_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(12, vipLevel_);
      }
      if (openDay_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, openDay_);
      }
      if (openGm_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(14, openGm_);
      }
      if (isCreate_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(15, isCreate_);
      }
      if (createTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(16, createTime_);
      }
      if (vipExp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(17, vipExp_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.LoginResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.LoginResponse other = (pb.xiugou.x1.protobuf.player.Player.LoginResponse) obj;

      if (status_ != other.status_) return false;
      if (getPid()
          != other.getPid()) return false;
      if (getServerTime()
          != other.getServerTime()) return false;
      if (getOffsetUtc()
          != other.getOffsetUtc()) return false;
      if (!getNick()
          .equals(other.getNick())) return false;
      if (!getHead()
          .equals(other.getHead())) return false;
      if (getLevel()
          != other.getLevel()) return false;
      if (getExp()
          != other.getExp()) return false;
      if (getForbindEndTime()
          != other.getForbindEndTime()) return false;
      if (getChangeNameTimes()
          != other.getChangeNameTimes()) return false;
      if (getBuyPrivilege()
          != other.getBuyPrivilege()) return false;
      if (getVipLevel()
          != other.getVipLevel()) return false;
      if (getOpenDay()
          != other.getOpenDay()) return false;
      if (getOpenGm()
          != other.getOpenGm()) return false;
      if (getIsCreate()
          != other.getIsCreate()) return false;
      if (getCreateTime()
          != other.getCreateTime()) return false;
      if (getVipExp()
          != other.getVipExp()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + status_;
      hash = (37 * hash) + PID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getPid());
      hash = (37 * hash) + SERVER_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getServerTime());
      hash = (37 * hash) + OFFSET_UTC_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getOffsetUtc());
      hash = (37 * hash) + NICK_FIELD_NUMBER;
      hash = (53 * hash) + getNick().hashCode();
      hash = (37 * hash) + HEAD_FIELD_NUMBER;
      hash = (53 * hash) + getHead().hashCode();
      hash = (37 * hash) + LEVEL_FIELD_NUMBER;
      hash = (53 * hash) + getLevel();
      hash = (37 * hash) + EXP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getExp());
      hash = (37 * hash) + FORBIND_END_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getForbindEndTime());
      hash = (37 * hash) + CHANGE_NAME_TIMES_FIELD_NUMBER;
      hash = (53 * hash) + getChangeNameTimes();
      hash = (37 * hash) + BUY_PRIVILEGE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getBuyPrivilege());
      hash = (37 * hash) + VIP_LEVEL_FIELD_NUMBER;
      hash = (53 * hash) + getVipLevel();
      hash = (37 * hash) + OPEN_DAY_FIELD_NUMBER;
      hash = (53 * hash) + getOpenDay();
      hash = (37 * hash) + OPEN_GM_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getOpenGm());
      hash = (37 * hash) + IS_CREATE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsCreate());
      hash = (37 * hash) + CREATE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getCreateTime());
      hash = (37 * hash) + VIP_EXP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getVipExp());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.LoginResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.LoginResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.LoginResponse)
        pb.xiugou.x1.protobuf.player.Player.LoginResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LoginResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LoginResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.LoginResponse.class, pb.xiugou.x1.protobuf.player.Player.LoginResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.LoginResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        status_ = 0;

        pid_ = 0L;

        serverTime_ = 0L;

        offsetUtc_ = 0L;

        nick_ = "";

        head_ = "";

        level_ = 0;

        exp_ = 0L;

        forbindEndTime_ = 0L;

        changeNameTimes_ = 0;

        buyPrivilege_ = false;

        vipLevel_ = 0;

        openDay_ = 0;

        openGm_ = false;

        isCreate_ = false;

        createTime_ = 0L;

        vipExp_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LoginResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LoginResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.LoginResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LoginResponse build() {
        pb.xiugou.x1.protobuf.player.Player.LoginResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LoginResponse buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.LoginResponse result = new pb.xiugou.x1.protobuf.player.Player.LoginResponse(this);
        result.status_ = status_;
        result.pid_ = pid_;
        result.serverTime_ = serverTime_;
        result.offsetUtc_ = offsetUtc_;
        result.nick_ = nick_;
        result.head_ = head_;
        result.level_ = level_;
        result.exp_ = exp_;
        result.forbindEndTime_ = forbindEndTime_;
        result.changeNameTimes_ = changeNameTimes_;
        result.buyPrivilege_ = buyPrivilege_;
        result.vipLevel_ = vipLevel_;
        result.openDay_ = openDay_;
        result.openGm_ = openGm_;
        result.isCreate_ = isCreate_;
        result.createTime_ = createTime_;
        result.vipExp_ = vipExp_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.LoginResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.LoginResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.LoginResponse other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.LoginResponse.getDefaultInstance()) return this;
        if (other.status_ != 0) {
          setStatusValue(other.getStatusValue());
        }
        if (other.getPid() != 0L) {
          setPid(other.getPid());
        }
        if (other.getServerTime() != 0L) {
          setServerTime(other.getServerTime());
        }
        if (other.getOffsetUtc() != 0L) {
          setOffsetUtc(other.getOffsetUtc());
        }
        if (!other.getNick().isEmpty()) {
          nick_ = other.nick_;
          onChanged();
        }
        if (!other.getHead().isEmpty()) {
          head_ = other.head_;
          onChanged();
        }
        if (other.getLevel() != 0) {
          setLevel(other.getLevel());
        }
        if (other.getExp() != 0L) {
          setExp(other.getExp());
        }
        if (other.getForbindEndTime() != 0L) {
          setForbindEndTime(other.getForbindEndTime());
        }
        if (other.getChangeNameTimes() != 0) {
          setChangeNameTimes(other.getChangeNameTimes());
        }
        if (other.getBuyPrivilege() != false) {
          setBuyPrivilege(other.getBuyPrivilege());
        }
        if (other.getVipLevel() != 0) {
          setVipLevel(other.getVipLevel());
        }
        if (other.getOpenDay() != 0) {
          setOpenDay(other.getOpenDay());
        }
        if (other.getOpenGm() != false) {
          setOpenGm(other.getOpenGm());
        }
        if (other.getIsCreate() != false) {
          setIsCreate(other.getIsCreate());
        }
        if (other.getCreateTime() != 0L) {
          setCreateTime(other.getCreateTime());
        }
        if (other.getVipExp() != 0L) {
          setVipExp(other.getVipExp());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.LoginResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.LoginResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int status_ = 0;
      /**
       * <pre>
       *登录状态
       * </pre>
       *
       * <code>.pb.LoginStatus status = 1;</code>
       * @return The enum numeric value on the wire for status.
       */
      public int getStatusValue() {
        return status_;
      }
      /**
       * <pre>
       *登录状态
       * </pre>
       *
       * <code>.pb.LoginStatus status = 1;</code>
       * @param value The enum numeric value on the wire for status to set.
       * @return This builder for chaining.
       */
      public Builder setStatusValue(int value) {
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登录状态
       * </pre>
       *
       * <code>.pb.LoginStatus status = 1;</code>
       * @return The status.
       */
      public pb.xiugou.x1.protobuf.player.Player.LoginStatus getStatus() {
        @SuppressWarnings("deprecation")
        pb.xiugou.x1.protobuf.player.Player.LoginStatus result = pb.xiugou.x1.protobuf.player.Player.LoginStatus.valueOf(status_);
        return result == null ? pb.xiugou.x1.protobuf.player.Player.LoginStatus.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *登录状态
       * </pre>
       *
       * <code>.pb.LoginStatus status = 1;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(pb.xiugou.x1.protobuf.player.Player.LoginStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登录状态
       * </pre>
       *
       * <code>.pb.LoginStatus status = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        
        status_ = 0;
        onChanged();
        return this;
      }

      private long pid_ ;
      /**
       * <pre>
       *玩家ID
       * </pre>
       *
       * <code>int64 pid = 2;</code>
       * @return The pid.
       */
      public long getPid() {
        return pid_;
      }
      /**
       * <pre>
       *玩家ID
       * </pre>
       *
       * <code>int64 pid = 2;</code>
       * @param value The pid to set.
       * @return This builder for chaining.
       */
      public Builder setPid(long value) {
        
        pid_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *玩家ID
       * </pre>
       *
       * <code>int64 pid = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPid() {
        
        pid_ = 0L;
        onChanged();
        return this;
      }

      private long serverTime_ ;
      /**
       * <pre>
       *服务器时间，毫秒
       * </pre>
       *
       * <code>int64 server_time = 3;</code>
       * @return The serverTime.
       */
      public long getServerTime() {
        return serverTime_;
      }
      /**
       * <pre>
       *服务器时间，毫秒
       * </pre>
       *
       * <code>int64 server_time = 3;</code>
       * @param value The serverTime to set.
       * @return This builder for chaining.
       */
      public Builder setServerTime(long value) {
        
        serverTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *服务器时间，毫秒
       * </pre>
       *
       * <code>int64 server_time = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerTime() {
        
        serverTime_ = 0L;
        onChanged();
        return this;
      }

      private long offsetUtc_ ;
      /**
       * <pre>
       *时区偏移，毫秒
       * </pre>
       *
       * <code>int64 offset_utc = 4;</code>
       * @return The offsetUtc.
       */
      public long getOffsetUtc() {
        return offsetUtc_;
      }
      /**
       * <pre>
       *时区偏移，毫秒
       * </pre>
       *
       * <code>int64 offset_utc = 4;</code>
       * @param value The offsetUtc to set.
       * @return This builder for chaining.
       */
      public Builder setOffsetUtc(long value) {
        
        offsetUtc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *时区偏移，毫秒
       * </pre>
       *
       * <code>int64 offset_utc = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOffsetUtc() {
        
        offsetUtc_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object nick_ = "";
      /**
       * <pre>
       * </pre>
       *
       * <code>string nick = 5;</code>
       * @return The nick.
       */
      public java.lang.String getNick() {
        java.lang.Object ref = nick_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          nick_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * </pre>
       *
       * <code>string nick = 5;</code>
       * @return The bytes for nick.
       */
      public com.google.protobuf.ByteString
          getNickBytes() {
        java.lang.Object ref = nick_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nick_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * </pre>
       *
       * <code>string nick = 5;</code>
       * @param value The nick to set.
       * @return This builder for chaining.
       */
      public Builder setNick(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        nick_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * </pre>
       *
       * <code>string nick = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearNick() {
        
        nick_ = getDefaultInstance().getNick();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * </pre>
       *
       * <code>string nick = 5;</code>
       * @param value The bytes for nick to set.
       * @return This builder for chaining.
       */
      public Builder setNickBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        nick_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object head_ = "";
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 6;</code>
       * @return The head.
       */
      public java.lang.String getHead() {
        java.lang.Object ref = head_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          head_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 6;</code>
       * @return The bytes for head.
       */
      public com.google.protobuf.ByteString
          getHeadBytes() {
        java.lang.Object ref = head_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          head_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 6;</code>
       * @param value The head to set.
       * @return This builder for chaining.
       */
      public Builder setHead(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        head_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearHead() {
        
        head_ = getDefaultInstance().getHead();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 6;</code>
       * @param value The bytes for head to set.
       * @return This builder for chaining.
       */
      public Builder setHeadBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        head_ = value;
        onChanged();
        return this;
      }

      private int level_ ;
      /**
       * <pre>
       *等级
       * </pre>
       *
       * <code>int32 level = 7;</code>
       * @return The level.
       */
      public int getLevel() {
        return level_;
      }
      /**
       * <pre>
       *等级
       * </pre>
       *
       * <code>int32 level = 7;</code>
       * @param value The level to set.
       * @return This builder for chaining.
       */
      public Builder setLevel(int value) {
        
        level_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *等级
       * </pre>
       *
       * <code>int32 level = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearLevel() {
        
        level_ = 0;
        onChanged();
        return this;
      }

      private long exp_ ;
      /**
       * <pre>
       *经验
       * </pre>
       *
       * <code>int64 exp = 8;</code>
       * @return The exp.
       */
      public long getExp() {
        return exp_;
      }
      /**
       * <pre>
       *经验
       * </pre>
       *
       * <code>int64 exp = 8;</code>
       * @param value The exp to set.
       * @return This builder for chaining.
       */
      public Builder setExp(long value) {
        
        exp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *经验
       * </pre>
       *
       * <code>int64 exp = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearExp() {
        
        exp_ = 0L;
        onChanged();
        return this;
      }

      private long forbindEndTime_ ;
      /**
       * <pre>
       *封号结束时间
       * </pre>
       *
       * <code>int64 forbind_end_time = 9;</code>
       * @return The forbindEndTime.
       */
      public long getForbindEndTime() {
        return forbindEndTime_;
      }
      /**
       * <pre>
       *封号结束时间
       * </pre>
       *
       * <code>int64 forbind_end_time = 9;</code>
       * @param value The forbindEndTime to set.
       * @return This builder for chaining.
       */
      public Builder setForbindEndTime(long value) {
        
        forbindEndTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *封号结束时间
       * </pre>
       *
       * <code>int64 forbind_end_time = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearForbindEndTime() {
        
        forbindEndTime_ = 0L;
        onChanged();
        return this;
      }

      private int changeNameTimes_ ;
      /**
       * <pre>
       *修改名字次数
       * </pre>
       *
       * <code>int32 change_name_times = 10;</code>
       * @return The changeNameTimes.
       */
      public int getChangeNameTimes() {
        return changeNameTimes_;
      }
      /**
       * <pre>
       *修改名字次数
       * </pre>
       *
       * <code>int32 change_name_times = 10;</code>
       * @param value The changeNameTimes to set.
       * @return This builder for chaining.
       */
      public Builder setChangeNameTimes(int value) {
        
        changeNameTimes_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *修改名字次数
       * </pre>
       *
       * <code>int32 change_name_times = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearChangeNameTimes() {
        
        changeNameTimes_ = 0;
        onChanged();
        return this;
      }

      private boolean buyPrivilege_ ;
      /**
       * <pre>
       *是否已经买永久去广告特权
       * </pre>
       *
       * <code>bool buy_privilege = 11;</code>
       * @return The buyPrivilege.
       */
      public boolean getBuyPrivilege() {
        return buyPrivilege_;
      }
      /**
       * <pre>
       *是否已经买永久去广告特权
       * </pre>
       *
       * <code>bool buy_privilege = 11;</code>
       * @param value The buyPrivilege to set.
       * @return This builder for chaining.
       */
      public Builder setBuyPrivilege(boolean value) {
        
        buyPrivilege_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *是否已经买永久去广告特权
       * </pre>
       *
       * <code>bool buy_privilege = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuyPrivilege() {
        
        buyPrivilege_ = false;
        onChanged();
        return this;
      }

      private int vipLevel_ ;
      /**
       * <pre>
       *VIP等级
       * </pre>
       *
       * <code>int32 vip_level = 12;</code>
       * @return The vipLevel.
       */
      public int getVipLevel() {
        return vipLevel_;
      }
      /**
       * <pre>
       *VIP等级
       * </pre>
       *
       * <code>int32 vip_level = 12;</code>
       * @param value The vipLevel to set.
       * @return This builder for chaining.
       */
      public Builder setVipLevel(int value) {
        
        vipLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *VIP等级
       * </pre>
       *
       * <code>int32 vip_level = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearVipLevel() {
        
        vipLevel_ = 0;
        onChanged();
        return this;
      }

      private int openDay_ ;
      /**
       * <pre>
       *开服天数
       * </pre>
       *
       * <code>int32 open_day = 13;</code>
       * @return The openDay.
       */
      public int getOpenDay() {
        return openDay_;
      }
      /**
       * <pre>
       *开服天数
       * </pre>
       *
       * <code>int32 open_day = 13;</code>
       * @param value The openDay to set.
       * @return This builder for chaining.
       */
      public Builder setOpenDay(int value) {
        
        openDay_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *开服天数
       * </pre>
       *
       * <code>int32 open_day = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearOpenDay() {
        
        openDay_ = 0;
        onChanged();
        return this;
      }

      private boolean openGm_ ;
      /**
       * <pre>
       *是否开启GM
       * </pre>
       *
       * <code>bool open_gm = 14;</code>
       * @return The openGm.
       */
      public boolean getOpenGm() {
        return openGm_;
      }
      /**
       * <pre>
       *是否开启GM
       * </pre>
       *
       * <code>bool open_gm = 14;</code>
       * @param value The openGm to set.
       * @return This builder for chaining.
       */
      public Builder setOpenGm(boolean value) {
        
        openGm_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *是否开启GM
       * </pre>
       *
       * <code>bool open_gm = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearOpenGm() {
        
        openGm_ = false;
        onChanged();
        return this;
      }

      private boolean isCreate_ ;
      /**
       * <pre>
       *是不是创号登录
       * </pre>
       *
       * <code>bool is_create = 15;</code>
       * @return The isCreate.
       */
      public boolean getIsCreate() {
        return isCreate_;
      }
      /**
       * <pre>
       *是不是创号登录
       * </pre>
       *
       * <code>bool is_create = 15;</code>
       * @param value The isCreate to set.
       * @return This builder for chaining.
       */
      public Builder setIsCreate(boolean value) {
        
        isCreate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *是不是创号登录
       * </pre>
       *
       * <code>bool is_create = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsCreate() {
        
        isCreate_ = false;
        onChanged();
        return this;
      }

      private long createTime_ ;
      /**
       * <pre>
       *创号时间
       * </pre>
       *
       * <code>int64 create_time = 16;</code>
       * @return The createTime.
       */
      public long getCreateTime() {
        return createTime_;
      }
      /**
       * <pre>
       *创号时间
       * </pre>
       *
       * <code>int64 create_time = 16;</code>
       * @param value The createTime to set.
       * @return This builder for chaining.
       */
      public Builder setCreateTime(long value) {
        
        createTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *创号时间
       * </pre>
       *
       * <code>int64 create_time = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreateTime() {
        
        createTime_ = 0L;
        onChanged();
        return this;
      }

      private long vipExp_ ;
      /**
       * <pre>
       *VIP经验
       * </pre>
       *
       * <code>int64 vip_exp = 17;</code>
       * @return The vipExp.
       */
      public long getVipExp() {
        return vipExp_;
      }
      /**
       * <pre>
       *VIP经验
       * </pre>
       *
       * <code>int64 vip_exp = 17;</code>
       * @param value The vipExp to set.
       * @return This builder for chaining.
       */
      public Builder setVipExp(long value) {
        
        vipExp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *VIP经验
       * </pre>
       *
       * <code>int64 vip_exp = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearVipExp() {
        
        vipExp_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.LoginResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.LoginResponse)
    private static final pb.xiugou.x1.protobuf.player.Player.LoginResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.LoginResponse();
    }

    public static pb.xiugou.x1.protobuf.player.Player.LoginResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<LoginResponse>
        PARSER = new com.google.protobuf.AbstractParser<LoginResponse>() {
      @java.lang.Override
      public LoginResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LoginResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<LoginResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LoginResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.LoginResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LogoutRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.LogoutRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   *登出
   * </pre>
   *
   * Protobuf type {@code pb.LogoutRequest}
   */
  public  static final class LogoutRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.LogoutRequest)
      LogoutRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LogoutRequest.newBuilder() to construct.
    private LogoutRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LogoutRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new LogoutRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LogoutRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LogoutRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LogoutRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.LogoutRequest.class, pb.xiugou.x1.protobuf.player.Player.LogoutRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.LogoutRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200003;</code>
       */
      ID(200003),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200003;</code>
       */
      public static final int ID_VALUE = 200003;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200003: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.LogoutRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.LogoutRequest.Proto)
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.LogoutRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.LogoutRequest other = (pb.xiugou.x1.protobuf.player.Player.LogoutRequest) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.LogoutRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *登出
     * </pre>
     *
     * Protobuf type {@code pb.LogoutRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.LogoutRequest)
        pb.xiugou.x1.protobuf.player.Player.LogoutRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LogoutRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LogoutRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.LogoutRequest.class, pb.xiugou.x1.protobuf.player.Player.LogoutRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.LogoutRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LogoutRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LogoutRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.LogoutRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LogoutRequest build() {
        pb.xiugou.x1.protobuf.player.Player.LogoutRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LogoutRequest buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.LogoutRequest result = new pb.xiugou.x1.protobuf.player.Player.LogoutRequest(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.LogoutRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.LogoutRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.LogoutRequest other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.LogoutRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.LogoutRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.LogoutRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.LogoutRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.LogoutRequest)
    private static final pb.xiugou.x1.protobuf.player.Player.LogoutRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.LogoutRequest();
    }

    public static pb.xiugou.x1.protobuf.player.Player.LogoutRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<LogoutRequest>
        PARSER = new com.google.protobuf.AbstractParser<LogoutRequest>() {
      @java.lang.Override
      public LogoutRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LogoutRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<LogoutRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LogoutRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.LogoutRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LogoutMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.LogoutMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *登出类型，1异地登录，2闲时过长，3连接异常，4玩家登出，5连接断开，6封号，7强制下线，8服务器维护
     * </pre>
     *
     * <code>int32 type = 1;</code>
     * @return The type.
     */
    int getType();

    /**
     * <pre>
     *封号结束时间 
     * </pre>
     *
     * <code>int64 forbind_end_time = 2;</code>
     * @return The forbindEndTime.
     */
    long getForbindEndTime();
  }
  /**
   * <pre>
   *登出的推送
   * </pre>
   *
   * Protobuf type {@code pb.LogoutMessage}
   */
  public  static final class LogoutMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.LogoutMessage)
      LogoutMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LogoutMessage.newBuilder() to construct.
    private LogoutMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LogoutMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new LogoutMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LogoutMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              type_ = input.readInt32();
              break;
            }
            case 16: {

              forbindEndTime_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LogoutMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LogoutMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.LogoutMessage.class, pb.xiugou.x1.protobuf.player.Player.LogoutMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.LogoutMessage.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200004;</code>
       */
      ID(200004),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200004;</code>
       */
      public static final int ID_VALUE = 200004;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200004: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.LogoutMessage.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.LogoutMessage.Proto)
    }

    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * <pre>
     *登出类型，1异地登录，2闲时过长，3连接异常，4玩家登出，5连接断开，6封号，7强制下线，8服务器维护
     * </pre>
     *
     * <code>int32 type = 1;</code>
     * @return The type.
     */
    public int getType() {
      return type_;
    }

    public static final int FORBIND_END_TIME_FIELD_NUMBER = 2;
    private long forbindEndTime_;
    /**
     * <pre>
     *封号结束时间 
     * </pre>
     *
     * <code>int64 forbind_end_time = 2;</code>
     * @return The forbindEndTime.
     */
    public long getForbindEndTime() {
      return forbindEndTime_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (type_ != 0) {
        output.writeInt32(1, type_);
      }
      if (forbindEndTime_ != 0L) {
        output.writeInt64(2, forbindEndTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (type_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, type_);
      }
      if (forbindEndTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, forbindEndTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.LogoutMessage)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.LogoutMessage other = (pb.xiugou.x1.protobuf.player.Player.LogoutMessage) obj;

      if (getType()
          != other.getType()) return false;
      if (getForbindEndTime()
          != other.getForbindEndTime()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getType();
      hash = (37 * hash) + FORBIND_END_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getForbindEndTime());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.LogoutMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *登出的推送
     * </pre>
     *
     * Protobuf type {@code pb.LogoutMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.LogoutMessage)
        pb.xiugou.x1.protobuf.player.Player.LogoutMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LogoutMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LogoutMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.LogoutMessage.class, pb.xiugou.x1.protobuf.player.Player.LogoutMessage.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.LogoutMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        type_ = 0;

        forbindEndTime_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_LogoutMessage_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LogoutMessage getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.LogoutMessage.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LogoutMessage build() {
        pb.xiugou.x1.protobuf.player.Player.LogoutMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.LogoutMessage buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.LogoutMessage result = new pb.xiugou.x1.protobuf.player.Player.LogoutMessage(this);
        result.type_ = type_;
        result.forbindEndTime_ = forbindEndTime_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.LogoutMessage) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.LogoutMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.LogoutMessage other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.LogoutMessage.getDefaultInstance()) return this;
        if (other.getType() != 0) {
          setType(other.getType());
        }
        if (other.getForbindEndTime() != 0L) {
          setForbindEndTime(other.getForbindEndTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.LogoutMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.LogoutMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int type_ ;
      /**
       * <pre>
       *登出类型，1异地登录，2闲时过长，3连接异常，4玩家登出，5连接断开，6封号，7强制下线，8服务器维护
       * </pre>
       *
       * <code>int32 type = 1;</code>
       * @return The type.
       */
      public int getType() {
        return type_;
      }
      /**
       * <pre>
       *登出类型，1异地登录，2闲时过长，3连接异常，4玩家登出，5连接断开，6封号，7强制下线，8服务器维护
       * </pre>
       *
       * <code>int32 type = 1;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(int value) {
        
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登出类型，1异地登录，2闲时过长，3连接异常，4玩家登出，5连接断开，6封号，7强制下线，8服务器维护
       * </pre>
       *
       * <code>int32 type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        
        type_ = 0;
        onChanged();
        return this;
      }

      private long forbindEndTime_ ;
      /**
       * <pre>
       *封号结束时间 
       * </pre>
       *
       * <code>int64 forbind_end_time = 2;</code>
       * @return The forbindEndTime.
       */
      public long getForbindEndTime() {
        return forbindEndTime_;
      }
      /**
       * <pre>
       *封号结束时间 
       * </pre>
       *
       * <code>int64 forbind_end_time = 2;</code>
       * @param value The forbindEndTime to set.
       * @return This builder for chaining.
       */
      public Builder setForbindEndTime(long value) {
        
        forbindEndTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *封号结束时间 
       * </pre>
       *
       * <code>int64 forbind_end_time = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearForbindEndTime() {
        
        forbindEndTime_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.LogoutMessage)
    }

    // @@protoc_insertion_point(class_scope:pb.LogoutMessage)
    private static final pb.xiugou.x1.protobuf.player.Player.LogoutMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.LogoutMessage();
    }

    public static pb.xiugou.x1.protobuf.player.Player.LogoutMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<LogoutMessage>
        PARSER = new com.google.protobuf.AbstractParser<LogoutMessage>() {
      @java.lang.Override
      public LogoutMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LogoutMessage(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<LogoutMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LogoutMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.LogoutMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HeartBeatRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.HeartBeatRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   *心跳
   * </pre>
   *
   * Protobuf type {@code pb.HeartBeatRequest}
   */
  public  static final class HeartBeatRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.HeartBeatRequest)
      HeartBeatRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HeartBeatRequest.newBuilder() to construct.
    private HeartBeatRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HeartBeatRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new HeartBeatRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HeartBeatRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_HeartBeatRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_HeartBeatRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest.class, pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.HeartBeatRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200005;</code>
       */
      ID(200005),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200005;</code>
       */
      public static final int ID_VALUE = 200005;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200005: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.HeartBeatRequest.Proto)
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest other = (pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *心跳
     * </pre>
     *
     * Protobuf type {@code pb.HeartBeatRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.HeartBeatRequest)
        pb.xiugou.x1.protobuf.player.Player.HeartBeatRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_HeartBeatRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_HeartBeatRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest.class, pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_HeartBeatRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest build() {
        pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest result = new pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.HeartBeatRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.HeartBeatRequest)
    private static final pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest();
    }

    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<HeartBeatRequest>
        PARSER = new com.google.protobuf.AbstractParser<HeartBeatRequest>() {
      @java.lang.Override
      public HeartBeatRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HeartBeatRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HeartBeatRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<HeartBeatRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.HeartBeatRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HeartBeatResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.HeartBeatResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *服务器时间，毫秒
     * </pre>
     *
     * <code>int64 server_time = 1;</code>
     * @return The serverTime.
     */
    long getServerTime();
  }
  /**
   * Protobuf type {@code pb.HeartBeatResponse}
   */
  public  static final class HeartBeatResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.HeartBeatResponse)
      HeartBeatResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HeartBeatResponse.newBuilder() to construct.
    private HeartBeatResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HeartBeatResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new HeartBeatResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HeartBeatResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              serverTime_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_HeartBeatResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_HeartBeatResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse.class, pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.HeartBeatResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200005;</code>
       */
      ID(200005),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200005;</code>
       */
      public static final int ID_VALUE = 200005;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200005: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.HeartBeatResponse.Proto)
    }

    public static final int SERVER_TIME_FIELD_NUMBER = 1;
    private long serverTime_;
    /**
     * <pre>
     *服务器时间，毫秒
     * </pre>
     *
     * <code>int64 server_time = 1;</code>
     * @return The serverTime.
     */
    public long getServerTime() {
      return serverTime_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (serverTime_ != 0L) {
        output.writeInt64(1, serverTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (serverTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, serverTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse other = (pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse) obj;

      if (getServerTime()
          != other.getServerTime()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SERVER_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getServerTime());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.HeartBeatResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.HeartBeatResponse)
        pb.xiugou.x1.protobuf.player.Player.HeartBeatResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_HeartBeatResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_HeartBeatResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse.class, pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        serverTime_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_HeartBeatResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse build() {
        pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse result = new pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse(this);
        result.serverTime_ = serverTime_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse.getDefaultInstance()) return this;
        if (other.getServerTime() != 0L) {
          setServerTime(other.getServerTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long serverTime_ ;
      /**
       * <pre>
       *服务器时间，毫秒
       * </pre>
       *
       * <code>int64 server_time = 1;</code>
       * @return The serverTime.
       */
      public long getServerTime() {
        return serverTime_;
      }
      /**
       * <pre>
       *服务器时间，毫秒
       * </pre>
       *
       * <code>int64 server_time = 1;</code>
       * @param value The serverTime to set.
       * @return This builder for chaining.
       */
      public Builder setServerTime(long value) {
        
        serverTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *服务器时间，毫秒
       * </pre>
       *
       * <code>int64 server_time = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerTime() {
        
        serverTime_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.HeartBeatResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.HeartBeatResponse)
    private static final pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse();
    }

    public static pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<HeartBeatResponse>
        PARSER = new com.google.protobuf.AbstractParser<HeartBeatResponse>() {
      @java.lang.Override
      public HeartBeatResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HeartBeatResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<HeartBeatResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<HeartBeatResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.HeartBeatResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChangeNameRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.ChangeNameRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *新名字
     * </pre>
     *
     * <code>string new_name = 1;</code>
     * @return The newName.
     */
    java.lang.String getNewName();
    /**
     * <pre>
     *新名字
     * </pre>
     *
     * <code>string new_name = 1;</code>
     * @return The bytes for newName.
     */
    com.google.protobuf.ByteString
        getNewNameBytes();

    /**
     * <pre>
     *渠道标识，如37、
     * </pre>
     *
     * <code>string channel_identity = 2;</code>
     * @return The channelIdentity.
     */
    java.lang.String getChannelIdentity();
    /**
     * <pre>
     *渠道标识，如37、
     * </pre>
     *
     * <code>string channel_identity = 2;</code>
     * @return The bytes for channelIdentity.
     */
    com.google.protobuf.ByteString
        getChannelIdentityBytes();
  }
  /**
   * <pre>
   *修改名字
   * </pre>
   *
   * Protobuf type {@code pb.ChangeNameRequest}
   */
  public  static final class ChangeNameRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.ChangeNameRequest)
      ChangeNameRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChangeNameRequest.newBuilder() to construct.
    private ChangeNameRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChangeNameRequest() {
      newName_ = "";
      channelIdentity_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChangeNameRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChangeNameRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              newName_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              channelIdentity_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_ChangeNameRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_ChangeNameRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest.class, pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.ChangeNameRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200006;</code>
       */
      ID(200006),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200006;</code>
       */
      public static final int ID_VALUE = 200006;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200006: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.ChangeNameRequest.Proto)
    }

    public static final int NEW_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object newName_;
    /**
     * <pre>
     *新名字
     * </pre>
     *
     * <code>string new_name = 1;</code>
     * @return The newName.
     */
    public java.lang.String getNewName() {
      java.lang.Object ref = newName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        newName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *新名字
     * </pre>
     *
     * <code>string new_name = 1;</code>
     * @return The bytes for newName.
     */
    public com.google.protobuf.ByteString
        getNewNameBytes() {
      java.lang.Object ref = newName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        newName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CHANNEL_IDENTITY_FIELD_NUMBER = 2;
    private volatile java.lang.Object channelIdentity_;
    /**
     * <pre>
     *渠道标识，如37、
     * </pre>
     *
     * <code>string channel_identity = 2;</code>
     * @return The channelIdentity.
     */
    public java.lang.String getChannelIdentity() {
      java.lang.Object ref = channelIdentity_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        channelIdentity_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *渠道标识，如37、
     * </pre>
     *
     * <code>string channel_identity = 2;</code>
     * @return The bytes for channelIdentity.
     */
    public com.google.protobuf.ByteString
        getChannelIdentityBytes() {
      java.lang.Object ref = channelIdentity_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        channelIdentity_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getNewNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, newName_);
      }
      if (!getChannelIdentityBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, channelIdentity_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getNewNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, newName_);
      }
      if (!getChannelIdentityBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, channelIdentity_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest other = (pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest) obj;

      if (!getNewName()
          .equals(other.getNewName())) return false;
      if (!getChannelIdentity()
          .equals(other.getChannelIdentity())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + NEW_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getNewName().hashCode();
      hash = (37 * hash) + CHANNEL_IDENTITY_FIELD_NUMBER;
      hash = (53 * hash) + getChannelIdentity().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *修改名字
     * </pre>
     *
     * Protobuf type {@code pb.ChangeNameRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.ChangeNameRequest)
        pb.xiugou.x1.protobuf.player.Player.ChangeNameRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_ChangeNameRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_ChangeNameRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest.class, pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        newName_ = "";

        channelIdentity_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_ChangeNameRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest build() {
        pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest result = new pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest(this);
        result.newName_ = newName_;
        result.channelIdentity_ = channelIdentity_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest.getDefaultInstance()) return this;
        if (!other.getNewName().isEmpty()) {
          newName_ = other.newName_;
          onChanged();
        }
        if (!other.getChannelIdentity().isEmpty()) {
          channelIdentity_ = other.channelIdentity_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object newName_ = "";
      /**
       * <pre>
       *新名字
       * </pre>
       *
       * <code>string new_name = 1;</code>
       * @return The newName.
       */
      public java.lang.String getNewName() {
        java.lang.Object ref = newName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          newName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *新名字
       * </pre>
       *
       * <code>string new_name = 1;</code>
       * @return The bytes for newName.
       */
      public com.google.protobuf.ByteString
          getNewNameBytes() {
        java.lang.Object ref = newName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          newName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *新名字
       * </pre>
       *
       * <code>string new_name = 1;</code>
       * @param value The newName to set.
       * @return This builder for chaining.
       */
      public Builder setNewName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        newName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *新名字
       * </pre>
       *
       * <code>string new_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearNewName() {
        
        newName_ = getDefaultInstance().getNewName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *新名字
       * </pre>
       *
       * <code>string new_name = 1;</code>
       * @param value The bytes for newName to set.
       * @return This builder for chaining.
       */
      public Builder setNewNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        newName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object channelIdentity_ = "";
      /**
       * <pre>
       *渠道标识，如37、
       * </pre>
       *
       * <code>string channel_identity = 2;</code>
       * @return The channelIdentity.
       */
      public java.lang.String getChannelIdentity() {
        java.lang.Object ref = channelIdentity_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          channelIdentity_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *渠道标识，如37、
       * </pre>
       *
       * <code>string channel_identity = 2;</code>
       * @return The bytes for channelIdentity.
       */
      public com.google.protobuf.ByteString
          getChannelIdentityBytes() {
        java.lang.Object ref = channelIdentity_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          channelIdentity_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *渠道标识，如37、
       * </pre>
       *
       * <code>string channel_identity = 2;</code>
       * @param value The channelIdentity to set.
       * @return This builder for chaining.
       */
      public Builder setChannelIdentity(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        channelIdentity_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *渠道标识，如37、
       * </pre>
       *
       * <code>string channel_identity = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearChannelIdentity() {
        
        channelIdentity_ = getDefaultInstance().getChannelIdentity();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *渠道标识，如37、
       * </pre>
       *
       * <code>string channel_identity = 2;</code>
       * @param value The bytes for channelIdentity to set.
       * @return This builder for chaining.
       */
      public Builder setChannelIdentityBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        channelIdentity_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.ChangeNameRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.ChangeNameRequest)
    private static final pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest();
    }

    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChangeNameRequest>
        PARSER = new com.google.protobuf.AbstractParser<ChangeNameRequest>() {
      @java.lang.Override
      public ChangeNameRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChangeNameRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ChangeNameRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChangeNameRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.ChangeNameRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChangeNameResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.ChangeNameResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *新名字
     * </pre>
     *
     * <code>string new_name = 1;</code>
     * @return The newName.
     */
    java.lang.String getNewName();
    /**
     * <pre>
     *新名字
     * </pre>
     *
     * <code>string new_name = 1;</code>
     * @return The bytes for newName.
     */
    com.google.protobuf.ByteString
        getNewNameBytes();

    /**
     * <pre>
     *修改名字次数
     * </pre>
     *
     * <code>int32 change_name_times = 2;</code>
     * @return The changeNameTimes.
     */
    int getChangeNameTimes();
  }
  /**
   * Protobuf type {@code pb.ChangeNameResponse}
   */
  public  static final class ChangeNameResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.ChangeNameResponse)
      ChangeNameResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChangeNameResponse.newBuilder() to construct.
    private ChangeNameResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChangeNameResponse() {
      newName_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChangeNameResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ChangeNameResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              newName_ = s;
              break;
            }
            case 16: {

              changeNameTimes_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_ChangeNameResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_ChangeNameResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse.class, pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.ChangeNameResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200006;</code>
       */
      ID(200006),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200006;</code>
       */
      public static final int ID_VALUE = 200006;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200006: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.ChangeNameResponse.Proto)
    }

    public static final int NEW_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object newName_;
    /**
     * <pre>
     *新名字
     * </pre>
     *
     * <code>string new_name = 1;</code>
     * @return The newName.
     */
    public java.lang.String getNewName() {
      java.lang.Object ref = newName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        newName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *新名字
     * </pre>
     *
     * <code>string new_name = 1;</code>
     * @return The bytes for newName.
     */
    public com.google.protobuf.ByteString
        getNewNameBytes() {
      java.lang.Object ref = newName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        newName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CHANGE_NAME_TIMES_FIELD_NUMBER = 2;
    private int changeNameTimes_;
    /**
     * <pre>
     *修改名字次数
     * </pre>
     *
     * <code>int32 change_name_times = 2;</code>
     * @return The changeNameTimes.
     */
    public int getChangeNameTimes() {
      return changeNameTimes_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getNewNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, newName_);
      }
      if (changeNameTimes_ != 0) {
        output.writeInt32(2, changeNameTimes_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getNewNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, newName_);
      }
      if (changeNameTimes_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, changeNameTimes_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse other = (pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse) obj;

      if (!getNewName()
          .equals(other.getNewName())) return false;
      if (getChangeNameTimes()
          != other.getChangeNameTimes()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + NEW_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getNewName().hashCode();
      hash = (37 * hash) + CHANGE_NAME_TIMES_FIELD_NUMBER;
      hash = (53 * hash) + getChangeNameTimes();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.ChangeNameResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.ChangeNameResponse)
        pb.xiugou.x1.protobuf.player.Player.ChangeNameResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_ChangeNameResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_ChangeNameResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse.class, pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        newName_ = "";

        changeNameTimes_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_ChangeNameResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse build() {
        pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse result = new pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse(this);
        result.newName_ = newName_;
        result.changeNameTimes_ = changeNameTimes_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse.getDefaultInstance()) return this;
        if (!other.getNewName().isEmpty()) {
          newName_ = other.newName_;
          onChanged();
        }
        if (other.getChangeNameTimes() != 0) {
          setChangeNameTimes(other.getChangeNameTimes());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object newName_ = "";
      /**
       * <pre>
       *新名字
       * </pre>
       *
       * <code>string new_name = 1;</code>
       * @return The newName.
       */
      public java.lang.String getNewName() {
        java.lang.Object ref = newName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          newName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *新名字
       * </pre>
       *
       * <code>string new_name = 1;</code>
       * @return The bytes for newName.
       */
      public com.google.protobuf.ByteString
          getNewNameBytes() {
        java.lang.Object ref = newName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          newName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *新名字
       * </pre>
       *
       * <code>string new_name = 1;</code>
       * @param value The newName to set.
       * @return This builder for chaining.
       */
      public Builder setNewName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        newName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *新名字
       * </pre>
       *
       * <code>string new_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearNewName() {
        
        newName_ = getDefaultInstance().getNewName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *新名字
       * </pre>
       *
       * <code>string new_name = 1;</code>
       * @param value The bytes for newName to set.
       * @return This builder for chaining.
       */
      public Builder setNewNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        newName_ = value;
        onChanged();
        return this;
      }

      private int changeNameTimes_ ;
      /**
       * <pre>
       *修改名字次数
       * </pre>
       *
       * <code>int32 change_name_times = 2;</code>
       * @return The changeNameTimes.
       */
      public int getChangeNameTimes() {
        return changeNameTimes_;
      }
      /**
       * <pre>
       *修改名字次数
       * </pre>
       *
       * <code>int32 change_name_times = 2;</code>
       * @param value The changeNameTimes to set.
       * @return This builder for chaining.
       */
      public Builder setChangeNameTimes(int value) {
        
        changeNameTimes_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *修改名字次数
       * </pre>
       *
       * <code>int32 change_name_times = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearChangeNameTimes() {
        
        changeNameTimes_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.ChangeNameResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.ChangeNameResponse)
    private static final pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse();
    }

    public static pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChangeNameResponse>
        PARSER = new com.google.protobuf.AbstractParser<ChangeNameResponse>() {
      @java.lang.Override
      public ChangeNameResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChangeNameResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ChangeNameResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChangeNameResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.ChangeNameResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PlayerInfoChangeMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PlayerInfoChangeMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *是否已经买永久去广告特权
     * </pre>
     *
     * <code>bool buy_privilege = 1;</code>
     * @return The buyPrivilege.
     */
    boolean getBuyPrivilege();
  }
  /**
   * Protobuf type {@code pb.PlayerInfoChangeMessage}
   */
  public  static final class PlayerInfoChangeMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PlayerInfoChangeMessage)
      PlayerInfoChangeMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerInfoChangeMessage.newBuilder() to construct.
    private PlayerInfoChangeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerInfoChangeMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerInfoChangeMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PlayerInfoChangeMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              buyPrivilege_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerInfoChangeMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerInfoChangeMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage.class, pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.PlayerInfoChangeMessage.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200007;</code>
       */
      ID(200007),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200007;</code>
       */
      public static final int ID_VALUE = 200007;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200007: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.PlayerInfoChangeMessage.Proto)
    }

    public static final int BUY_PRIVILEGE_FIELD_NUMBER = 1;
    private boolean buyPrivilege_;
    /**
     * <pre>
     *是否已经买永久去广告特权
     * </pre>
     *
     * <code>bool buy_privilege = 1;</code>
     * @return The buyPrivilege.
     */
    public boolean getBuyPrivilege() {
      return buyPrivilege_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (buyPrivilege_ != false) {
        output.writeBool(1, buyPrivilege_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (buyPrivilege_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, buyPrivilege_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage other = (pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage) obj;

      if (getBuyPrivilege()
          != other.getBuyPrivilege()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + BUY_PRIVILEGE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getBuyPrivilege());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PlayerInfoChangeMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PlayerInfoChangeMessage)
        pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerInfoChangeMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerInfoChangeMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage.class, pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        buyPrivilege_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerInfoChangeMessage_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage build() {
        pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage result = new pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage(this);
        result.buyPrivilege_ = buyPrivilege_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage.getDefaultInstance()) return this;
        if (other.getBuyPrivilege() != false) {
          setBuyPrivilege(other.getBuyPrivilege());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private boolean buyPrivilege_ ;
      /**
       * <pre>
       *是否已经买永久去广告特权
       * </pre>
       *
       * <code>bool buy_privilege = 1;</code>
       * @return The buyPrivilege.
       */
      public boolean getBuyPrivilege() {
        return buyPrivilege_;
      }
      /**
       * <pre>
       *是否已经买永久去广告特权
       * </pre>
       *
       * <code>bool buy_privilege = 1;</code>
       * @param value The buyPrivilege to set.
       * @return This builder for chaining.
       */
      public Builder setBuyPrivilege(boolean value) {
        
        buyPrivilege_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *是否已经买永久去广告特权
       * </pre>
       *
       * <code>bool buy_privilege = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuyPrivilege() {
        
        buyPrivilege_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PlayerInfoChangeMessage)
    }

    // @@protoc_insertion_point(class_scope:pb.PlayerInfoChangeMessage)
    private static final pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PlayerInfoChangeMessage>
        PARSER = new com.google.protobuf.AbstractParser<PlayerInfoChangeMessage>() {
      @java.lang.Override
      public PlayerInfoChangeMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerInfoChangeMessage(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PlayerInfoChangeMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PlayerInfoChangeMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PlayerInfoChangeMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PlayerPushEndMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PlayerPushEndMessage)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   *登录推送结束
   * </pre>
   *
   * Protobuf type {@code pb.PlayerPushEndMessage}
   */
  public  static final class PlayerPushEndMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PlayerPushEndMessage)
      PlayerPushEndMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerPushEndMessage.newBuilder() to construct.
    private PlayerPushEndMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerPushEndMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerPushEndMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PlayerPushEndMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerPushEndMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerPushEndMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage.class, pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.PlayerPushEndMessage.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200008;</code>
       */
      ID(200008),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200008;</code>
       */
      public static final int ID_VALUE = 200008;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200008: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.PlayerPushEndMessage.Proto)
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage other = (pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *登录推送结束
     * </pre>
     *
     * Protobuf type {@code pb.PlayerPushEndMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PlayerPushEndMessage)
        pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerPushEndMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerPushEndMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage.class, pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerPushEndMessage_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage build() {
        pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage result = new pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PlayerPushEndMessage)
    }

    // @@protoc_insertion_point(class_scope:pb.PlayerPushEndMessage)
    private static final pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PlayerPushEndMessage>
        PARSER = new com.google.protobuf.AbstractParser<PlayerPushEndMessage>() {
      @java.lang.Override
      public PlayerPushEndMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerPushEndMessage(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PlayerPushEndMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PlayerPushEndMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PlayerPushEndMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PlayerModuleInfoRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PlayerModuleInfoRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *模块名字
     * </pre>
     *
     * <code>string module = 1;</code>
     * @return The module.
     */
    java.lang.String getModule();
    /**
     * <pre>
     *模块名字
     * </pre>
     *
     * <code>string module = 1;</code>
     * @return The bytes for module.
     */
    com.google.protobuf.ByteString
        getModuleBytes();
  }
  /**
   * <pre>
   *服务器调试用
   * </pre>
   *
   * Protobuf type {@code pb.PlayerModuleInfoRequest}
   */
  public  static final class PlayerModuleInfoRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PlayerModuleInfoRequest)
      PlayerModuleInfoRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerModuleInfoRequest.newBuilder() to construct.
    private PlayerModuleInfoRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerModuleInfoRequest() {
      module_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerModuleInfoRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PlayerModuleInfoRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              module_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerModuleInfoRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerModuleInfoRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest.class, pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.PlayerModuleInfoRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200009;</code>
       */
      ID(200009),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200009;</code>
       */
      public static final int ID_VALUE = 200009;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200009: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.PlayerModuleInfoRequest.Proto)
    }

    public static final int MODULE_FIELD_NUMBER = 1;
    private volatile java.lang.Object module_;
    /**
     * <pre>
     *模块名字
     * </pre>
     *
     * <code>string module = 1;</code>
     * @return The module.
     */
    public java.lang.String getModule() {
      java.lang.Object ref = module_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        module_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *模块名字
     * </pre>
     *
     * <code>string module = 1;</code>
     * @return The bytes for module.
     */
    public com.google.protobuf.ByteString
        getModuleBytes() {
      java.lang.Object ref = module_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        module_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getModuleBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, module_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getModuleBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, module_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest other = (pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest) obj;

      if (!getModule()
          .equals(other.getModule())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MODULE_FIELD_NUMBER;
      hash = (53 * hash) + getModule().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *服务器调试用
     * </pre>
     *
     * Protobuf type {@code pb.PlayerModuleInfoRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PlayerModuleInfoRequest)
        pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerModuleInfoRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerModuleInfoRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest.class, pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        module_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerModuleInfoRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest build() {
        pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest result = new pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest(this);
        result.module_ = module_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest.getDefaultInstance()) return this;
        if (!other.getModule().isEmpty()) {
          module_ = other.module_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object module_ = "";
      /**
       * <pre>
       *模块名字
       * </pre>
       *
       * <code>string module = 1;</code>
       * @return The module.
       */
      public java.lang.String getModule() {
        java.lang.Object ref = module_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          module_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *模块名字
       * </pre>
       *
       * <code>string module = 1;</code>
       * @return The bytes for module.
       */
      public com.google.protobuf.ByteString
          getModuleBytes() {
        java.lang.Object ref = module_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          module_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *模块名字
       * </pre>
       *
       * <code>string module = 1;</code>
       * @param value The module to set.
       * @return This builder for chaining.
       */
      public Builder setModule(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        module_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *模块名字
       * </pre>
       *
       * <code>string module = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearModule() {
        
        module_ = getDefaultInstance().getModule();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *模块名字
       * </pre>
       *
       * <code>string module = 1;</code>
       * @param value The bytes for module to set.
       * @return This builder for chaining.
       */
      public Builder setModuleBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        module_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PlayerModuleInfoRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.PlayerModuleInfoRequest)
    private static final pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PlayerModuleInfoRequest>
        PARSER = new com.google.protobuf.AbstractParser<PlayerModuleInfoRequest>() {
      @java.lang.Override
      public PlayerModuleInfoRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerModuleInfoRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PlayerModuleInfoRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PlayerModuleInfoRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PlayerModuleInfoResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PlayerModuleInfoResponse)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code pb.PlayerModuleInfoResponse}
   */
  public  static final class PlayerModuleInfoResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PlayerModuleInfoResponse)
      PlayerModuleInfoResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerModuleInfoResponse.newBuilder() to construct.
    private PlayerModuleInfoResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerModuleInfoResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerModuleInfoResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PlayerModuleInfoResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerModuleInfoResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerModuleInfoResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse.class, pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.PlayerModuleInfoResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200009;</code>
       */
      ID(200009),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200009;</code>
       */
      public static final int ID_VALUE = 200009;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200009: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.PlayerModuleInfoResponse.Proto)
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse other = (pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PlayerModuleInfoResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PlayerModuleInfoResponse)
        pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerModuleInfoResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerModuleInfoResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse.class, pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerModuleInfoResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse build() {
        pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse result = new pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PlayerModuleInfoResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.PlayerModuleInfoResponse)
    private static final pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PlayerModuleInfoResponse>
        PARSER = new com.google.protobuf.AbstractParser<PlayerModuleInfoResponse>() {
      @java.lang.Override
      public PlayerModuleInfoResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerModuleInfoResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PlayerModuleInfoResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PlayerModuleInfoResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PlayerModuleInfoResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PlayerMoreInfoRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PlayerMoreInfoRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code pb.PlayerMoreInfoRequest}
   */
  public  static final class PlayerMoreInfoRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PlayerMoreInfoRequest)
      PlayerMoreInfoRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerMoreInfoRequest.newBuilder() to construct.
    private PlayerMoreInfoRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerMoreInfoRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerMoreInfoRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PlayerMoreInfoRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest.class, pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.PlayerMoreInfoRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200010;</code>
       */
      ID(200010),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200010;</code>
       */
      public static final int ID_VALUE = 200010;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200010: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.PlayerMoreInfoRequest.Proto)
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest other = (pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PlayerMoreInfoRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PlayerMoreInfoRequest)
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest.class, pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest build() {
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest result = new pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PlayerMoreInfoRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.PlayerMoreInfoRequest)
    private static final pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PlayerMoreInfoRequest>
        PARSER = new com.google.protobuf.AbstractParser<PlayerMoreInfoRequest>() {
      @java.lang.Override
      public PlayerMoreInfoRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerMoreInfoRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PlayerMoreInfoRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PlayerMoreInfoRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PlayerMoreInfoResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PlayerMoreInfoResponse)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code pb.PlayerMoreInfoResponse}
   */
  public  static final class PlayerMoreInfoResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PlayerMoreInfoResponse)
      PlayerMoreInfoResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerMoreInfoResponse.newBuilder() to construct.
    private PlayerMoreInfoResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerMoreInfoResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerMoreInfoResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PlayerMoreInfoResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse.class, pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.PlayerMoreInfoResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200010;</code>
       */
      ID(200010),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200010;</code>
       */
      public static final int ID_VALUE = 200010;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200010: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.PlayerMoreInfoResponse.Proto)
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse other = (pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PlayerMoreInfoResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PlayerMoreInfoResponse)
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse.class, pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse build() {
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse result = new pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PlayerMoreInfoResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.PlayerMoreInfoResponse)
    private static final pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PlayerMoreInfoResponse>
        PARSER = new com.google.protobuf.AbstractParser<PlayerMoreInfoResponse>() {
      @java.lang.Override
      public PlayerMoreInfoResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerMoreInfoResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PlayerMoreInfoResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PlayerMoreInfoResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PlayerMoreInfoEndMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PlayerMoreInfoEndMessage)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code pb.PlayerMoreInfoEndMessage}
   */
  public  static final class PlayerMoreInfoEndMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PlayerMoreInfoEndMessage)
      PlayerMoreInfoEndMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerMoreInfoEndMessage.newBuilder() to construct.
    private PlayerMoreInfoEndMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerMoreInfoEndMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerMoreInfoEndMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PlayerMoreInfoEndMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoEndMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoEndMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage.class, pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.PlayerMoreInfoEndMessage.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200011;</code>
       */
      ID(200011),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200011;</code>
       */
      public static final int ID_VALUE = 200011;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200011: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.PlayerMoreInfoEndMessage.Proto)
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage other = (pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PlayerMoreInfoEndMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PlayerMoreInfoEndMessage)
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoEndMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoEndMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage.class, pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerMoreInfoEndMessage_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage build() {
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage result = new pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PlayerMoreInfoEndMessage)
    }

    // @@protoc_insertion_point(class_scope:pb.PlayerMoreInfoEndMessage)
    private static final pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PlayerMoreInfoEndMessage>
        PARSER = new com.google.protobuf.AbstractParser<PlayerMoreInfoEndMessage>() {
      @java.lang.Override
      public PlayerMoreInfoEndMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerMoreInfoEndMessage(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PlayerMoreInfoEndMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PlayerMoreInfoEndMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PlayerMoreInfoEndMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PlayerWiretapRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PlayerWiretapRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *玩家ID
     * </pre>
     *
     * <code>int64 player_id = 1;</code>
     * @return The playerId.
     */
    long getPlayerId();
  }
  /**
   * <pre>
   *窃听推送给目标玩家的消息，客户端忽略
   * </pre>
   *
   * Protobuf type {@code pb.PlayerWiretapRequest}
   */
  public  static final class PlayerWiretapRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PlayerWiretapRequest)
      PlayerWiretapRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerWiretapRequest.newBuilder() to construct.
    private PlayerWiretapRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerWiretapRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerWiretapRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PlayerWiretapRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              playerId_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerWiretapRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerWiretapRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest.class, pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.PlayerWiretapRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200012;</code>
       */
      ID(200012),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200012;</code>
       */
      public static final int ID_VALUE = 200012;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200012: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.PlayerWiretapRequest.Proto)
    }

    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private long playerId_;
    /**
     * <pre>
     *玩家ID
     * </pre>
     *
     * <code>int64 player_id = 1;</code>
     * @return The playerId.
     */
    public long getPlayerId() {
      return playerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (playerId_ != 0L) {
        output.writeInt64(1, playerId_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (playerId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, playerId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest other = (pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest) obj;

      if (getPlayerId()
          != other.getPlayerId()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PLAYER_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getPlayerId());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *窃听推送给目标玩家的消息，客户端忽略
     * </pre>
     *
     * Protobuf type {@code pb.PlayerWiretapRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PlayerWiretapRequest)
        pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerWiretapRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerWiretapRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest.class, pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        playerId_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerWiretapRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest build() {
        pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest result = new pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest(this);
        result.playerId_ = playerId_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest.getDefaultInstance()) return this;
        if (other.getPlayerId() != 0L) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long playerId_ ;
      /**
       * <pre>
       *玩家ID
       * </pre>
       *
       * <code>int64 player_id = 1;</code>
       * @return The playerId.
       */
      public long getPlayerId() {
        return playerId_;
      }
      /**
       * <pre>
       *玩家ID
       * </pre>
       *
       * <code>int64 player_id = 1;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(long value) {
        
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *玩家ID
       * </pre>
       *
       * <code>int64 player_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        
        playerId_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PlayerWiretapRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.PlayerWiretapRequest)
    private static final pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PlayerWiretapRequest>
        PARSER = new com.google.protobuf.AbstractParser<PlayerWiretapRequest>() {
      @java.lang.Override
      public PlayerWiretapRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerWiretapRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PlayerWiretapRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PlayerWiretapRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PlayerWiretapRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PlayerWiretapResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PlayerWiretapResponse)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code pb.PlayerWiretapResponse}
   */
  public  static final class PlayerWiretapResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PlayerWiretapResponse)
      PlayerWiretapResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerWiretapResponse.newBuilder() to construct.
    private PlayerWiretapResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerWiretapResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerWiretapResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PlayerWiretapResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerWiretapResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerWiretapResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse.class, pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.PlayerWiretapResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200012;</code>
       */
      ID(200012),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200012;</code>
       */
      public static final int ID_VALUE = 200012;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200012: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.PlayerWiretapResponse.Proto)
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse other = (pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PlayerWiretapResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PlayerWiretapResponse)
        pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerWiretapResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerWiretapResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse.class, pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PlayerWiretapResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse build() {
        pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse result = new pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PlayerWiretapResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.PlayerWiretapResponse)
    private static final pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PlayerWiretapResponse>
        PARSER = new com.google.protobuf.AbstractParser<PlayerWiretapResponse>() {
      @java.lang.Override
      public PlayerWiretapResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerWiretapResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PlayerWiretapResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PlayerWiretapResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PlayerWiretapResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EasyLoginRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.EasyLoginRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *SDK提供的openId
     * </pre>
     *
     * <code>string open_id = 1;</code>
     * @return The openId.
     */
    java.lang.String getOpenId();
    /**
     * <pre>
     *SDK提供的openId
     * </pre>
     *
     * <code>string open_id = 1;</code>
     * @return The bytes for openId.
     */
    com.google.protobuf.ByteString
        getOpenIdBytes();

    /**
     * <pre>
     *服务器ID
     * </pre>
     *
     * <code>int32 server_id = 2;</code>
     * @return The serverId.
     */
    int getServerId();

    /**
     * <pre>
     *设备类型，ANDROID，IOS，H5，PC，OTHER
     * </pre>
     *
     * <code>string device_type = 3;</code>
     * @return The deviceType.
     */
    java.lang.String getDeviceType();
    /**
     * <pre>
     *设备类型，ANDROID，IOS，H5，PC，OTHER
     * </pre>
     *
     * <code>string device_type = 3;</code>
     * @return The bytes for deviceType.
     */
    com.google.protobuf.ByteString
        getDeviceTypeBytes();
  }
  /**
   * <pre>
   *简易登录
   * </pre>
   *
   * Protobuf type {@code pb.EasyLoginRequest}
   */
  public  static final class EasyLoginRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.EasyLoginRequest)
      EasyLoginRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EasyLoginRequest.newBuilder() to construct.
    private EasyLoginRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EasyLoginRequest() {
      openId_ = "";
      deviceType_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new EasyLoginRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private EasyLoginRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              openId_ = s;
              break;
            }
            case 16: {

              serverId_ = input.readInt32();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              deviceType_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_EasyLoginRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_EasyLoginRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest.class, pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.EasyLoginRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 200013;</code>
       */
      ID(200013),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 200013;</code>
       */
      public static final int ID_VALUE = 200013;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 200013: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.EasyLoginRequest.Proto)
    }

    public static final int OPEN_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object openId_;
    /**
     * <pre>
     *SDK提供的openId
     * </pre>
     *
     * <code>string open_id = 1;</code>
     * @return The openId.
     */
    public java.lang.String getOpenId() {
      java.lang.Object ref = openId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        openId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *SDK提供的openId
     * </pre>
     *
     * <code>string open_id = 1;</code>
     * @return The bytes for openId.
     */
    public com.google.protobuf.ByteString
        getOpenIdBytes() {
      java.lang.Object ref = openId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        openId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SERVER_ID_FIELD_NUMBER = 2;
    private int serverId_;
    /**
     * <pre>
     *服务器ID
     * </pre>
     *
     * <code>int32 server_id = 2;</code>
     * @return The serverId.
     */
    public int getServerId() {
      return serverId_;
    }

    public static final int DEVICE_TYPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object deviceType_;
    /**
     * <pre>
     *设备类型，ANDROID，IOS，H5，PC，OTHER
     * </pre>
     *
     * <code>string device_type = 3;</code>
     * @return The deviceType.
     */
    public java.lang.String getDeviceType() {
      java.lang.Object ref = deviceType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        deviceType_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *设备类型，ANDROID，IOS，H5，PC，OTHER
     * </pre>
     *
     * <code>string device_type = 3;</code>
     * @return The bytes for deviceType.
     */
    public com.google.protobuf.ByteString
        getDeviceTypeBytes() {
      java.lang.Object ref = deviceType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getOpenIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, openId_);
      }
      if (serverId_ != 0) {
        output.writeInt32(2, serverId_);
      }
      if (!getDeviceTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, deviceType_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getOpenIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, openId_);
      }
      if (serverId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, serverId_);
      }
      if (!getDeviceTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, deviceType_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest other = (pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest) obj;

      if (!getOpenId()
          .equals(other.getOpenId())) return false;
      if (getServerId()
          != other.getServerId()) return false;
      if (!getDeviceType()
          .equals(other.getDeviceType())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + OPEN_ID_FIELD_NUMBER;
      hash = (53 * hash) + getOpenId().hashCode();
      hash = (37 * hash) + SERVER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getServerId();
      hash = (37 * hash) + DEVICE_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceType().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *简易登录
     * </pre>
     *
     * Protobuf type {@code pb.EasyLoginRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.EasyLoginRequest)
        pb.xiugou.x1.protobuf.player.Player.EasyLoginRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_EasyLoginRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_EasyLoginRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest.class, pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        openId_ = "";

        serverId_ = 0;

        deviceType_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_EasyLoginRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest build() {
        pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest result = new pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest(this);
        result.openId_ = openId_;
        result.serverId_ = serverId_;
        result.deviceType_ = deviceType_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest.getDefaultInstance()) return this;
        if (!other.getOpenId().isEmpty()) {
          openId_ = other.openId_;
          onChanged();
        }
        if (other.getServerId() != 0) {
          setServerId(other.getServerId());
        }
        if (!other.getDeviceType().isEmpty()) {
          deviceType_ = other.deviceType_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object openId_ = "";
      /**
       * <pre>
       *SDK提供的openId
       * </pre>
       *
       * <code>string open_id = 1;</code>
       * @return The openId.
       */
      public java.lang.String getOpenId() {
        java.lang.Object ref = openId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          openId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *SDK提供的openId
       * </pre>
       *
       * <code>string open_id = 1;</code>
       * @return The bytes for openId.
       */
      public com.google.protobuf.ByteString
          getOpenIdBytes() {
        java.lang.Object ref = openId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          openId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *SDK提供的openId
       * </pre>
       *
       * <code>string open_id = 1;</code>
       * @param value The openId to set.
       * @return This builder for chaining.
       */
      public Builder setOpenId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        openId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *SDK提供的openId
       * </pre>
       *
       * <code>string open_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOpenId() {
        
        openId_ = getDefaultInstance().getOpenId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *SDK提供的openId
       * </pre>
       *
       * <code>string open_id = 1;</code>
       * @param value The bytes for openId to set.
       * @return This builder for chaining.
       */
      public Builder setOpenIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        openId_ = value;
        onChanged();
        return this;
      }

      private int serverId_ ;
      /**
       * <pre>
       *服务器ID
       * </pre>
       *
       * <code>int32 server_id = 2;</code>
       * @return The serverId.
       */
      public int getServerId() {
        return serverId_;
      }
      /**
       * <pre>
       *服务器ID
       * </pre>
       *
       * <code>int32 server_id = 2;</code>
       * @param value The serverId to set.
       * @return This builder for chaining.
       */
      public Builder setServerId(int value) {
        
        serverId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *服务器ID
       * </pre>
       *
       * <code>int32 server_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerId() {
        
        serverId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object deviceType_ = "";
      /**
       * <pre>
       *设备类型，ANDROID，IOS，H5，PC，OTHER
       * </pre>
       *
       * <code>string device_type = 3;</code>
       * @return The deviceType.
       */
      public java.lang.String getDeviceType() {
        java.lang.Object ref = deviceType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deviceType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *设备类型，ANDROID，IOS，H5，PC，OTHER
       * </pre>
       *
       * <code>string device_type = 3;</code>
       * @return The bytes for deviceType.
       */
      public com.google.protobuf.ByteString
          getDeviceTypeBytes() {
        java.lang.Object ref = deviceType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *设备类型，ANDROID，IOS，H5，PC，OTHER
       * </pre>
       *
       * <code>string device_type = 3;</code>
       * @param value The deviceType to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        deviceType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *设备类型，ANDROID，IOS，H5，PC，OTHER
       * </pre>
       *
       * <code>string device_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceType() {
        
        deviceType_ = getDefaultInstance().getDeviceType();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *设备类型，ANDROID，IOS，H5，PC，OTHER
       * </pre>
       *
       * <code>string device_type = 3;</code>
       * @param value The bytes for deviceType to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        deviceType_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.EasyLoginRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.EasyLoginRequest)
    private static final pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest();
    }

    public static pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<EasyLoginRequest>
        PARSER = new com.google.protobuf.AbstractParser<EasyLoginRequest>() {
      @java.lang.Override
      public EasyLoginRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new EasyLoginRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<EasyLoginRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EasyLoginRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.EasyLoginRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface Pb37ChannelDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.Pb37ChannelData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *应用ID，37sdk提供
     * </pre>
     *
     * <code>string appid = 1;</code>
     * @return The appid.
     */
    java.lang.String getAppid();
    /**
     * <pre>
     *应用ID，37sdk提供
     * </pre>
     *
     * <code>string appid = 1;</code>
     * @return The bytes for appid.
     */
    com.google.protobuf.ByteString
        getAppidBytes();

    /**
     * <pre>
     *游戏ID，37sdk提供
     * </pre>
     *
     * <code>int32 game_id = 2;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <pre>
     *37sdk提供
     * </pre>
     *
     * <code>string fx_c_game_id = 3;</code>
     * @return The fxCGameId.
     */
    java.lang.String getFxCGameId();
    /**
     * <pre>
     *37sdk提供
     * </pre>
     *
     * <code>string fx_c_game_id = 3;</code>
     * @return The bytes for fxCGameId.
     */
    com.google.protobuf.ByteString
        getFxCGameIdBytes();

    /**
     * <pre>
     *37sdk提供
     * </pre>
     *
     * <code>string app_ext = 4;</code>
     * @return The appExt.
     */
    java.lang.String getAppExt();
    /**
     * <pre>
     *37sdk提供
     * </pre>
     *
     * <code>string app_ext = 4;</code>
     * @return The bytes for appExt.
     */
    com.google.protobuf.ByteString
        getAppExtBytes();

    /**
     * <pre>
     *进入标识，37sdk提供
     * </pre>
     *
     * <code>string guid = 5;</code>
     * @return The guid.
     */
    java.lang.String getGuid();
    /**
     * <pre>
     *进入标识，37sdk提供
     * </pre>
     *
     * <code>string guid = 5;</code>
     * @return The bytes for guid.
     */
    com.google.protobuf.ByteString
        getGuidBytes();
  }
  /**
   * <pre>
   *37的渠道数据
   * </pre>
   *
   * Protobuf type {@code pb.Pb37ChannelData}
   */
  public  static final class Pb37ChannelData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.Pb37ChannelData)
      Pb37ChannelDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Pb37ChannelData.newBuilder() to construct.
    private Pb37ChannelData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Pb37ChannelData() {
      appid_ = "";
      fxCGameId_ = "";
      appExt_ = "";
      guid_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Pb37ChannelData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Pb37ChannelData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              appid_ = s;
              break;
            }
            case 16: {

              gameId_ = input.readInt32();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              fxCGameId_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();

              appExt_ = s;
              break;
            }
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();

              guid_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_Pb37ChannelData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_Pb37ChannelData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData.class, pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData.Builder.class);
    }

    public static final int APPID_FIELD_NUMBER = 1;
    private volatile java.lang.Object appid_;
    /**
     * <pre>
     *应用ID，37sdk提供
     * </pre>
     *
     * <code>string appid = 1;</code>
     * @return The appid.
     */
    public java.lang.String getAppid() {
      java.lang.Object ref = appid_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        appid_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *应用ID，37sdk提供
     * </pre>
     *
     * <code>string appid = 1;</code>
     * @return The bytes for appid.
     */
    public com.google.protobuf.ByteString
        getAppidBytes() {
      java.lang.Object ref = appid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        appid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GAME_ID_FIELD_NUMBER = 2;
    private int gameId_;
    /**
     * <pre>
     *游戏ID，37sdk提供
     * </pre>
     *
     * <code>int32 game_id = 2;</code>
     * @return The gameId.
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int FX_C_GAME_ID_FIELD_NUMBER = 3;
    private volatile java.lang.Object fxCGameId_;
    /**
     * <pre>
     *37sdk提供
     * </pre>
     *
     * <code>string fx_c_game_id = 3;</code>
     * @return The fxCGameId.
     */
    public java.lang.String getFxCGameId() {
      java.lang.Object ref = fxCGameId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        fxCGameId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *37sdk提供
     * </pre>
     *
     * <code>string fx_c_game_id = 3;</code>
     * @return The bytes for fxCGameId.
     */
    public com.google.protobuf.ByteString
        getFxCGameIdBytes() {
      java.lang.Object ref = fxCGameId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        fxCGameId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int APP_EXT_FIELD_NUMBER = 4;
    private volatile java.lang.Object appExt_;
    /**
     * <pre>
     *37sdk提供
     * </pre>
     *
     * <code>string app_ext = 4;</code>
     * @return The appExt.
     */
    public java.lang.String getAppExt() {
      java.lang.Object ref = appExt_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        appExt_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *37sdk提供
     * </pre>
     *
     * <code>string app_ext = 4;</code>
     * @return The bytes for appExt.
     */
    public com.google.protobuf.ByteString
        getAppExtBytes() {
      java.lang.Object ref = appExt_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        appExt_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GUID_FIELD_NUMBER = 5;
    private volatile java.lang.Object guid_;
    /**
     * <pre>
     *进入标识，37sdk提供
     * </pre>
     *
     * <code>string guid = 5;</code>
     * @return The guid.
     */
    public java.lang.String getGuid() {
      java.lang.Object ref = guid_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        guid_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *进入标识，37sdk提供
     * </pre>
     *
     * <code>string guid = 5;</code>
     * @return The bytes for guid.
     */
    public com.google.protobuf.ByteString
        getGuidBytes() {
      java.lang.Object ref = guid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        guid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getAppidBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, appid_);
      }
      if (gameId_ != 0) {
        output.writeInt32(2, gameId_);
      }
      if (!getFxCGameIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, fxCGameId_);
      }
      if (!getAppExtBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, appExt_);
      }
      if (!getGuidBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, guid_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getAppidBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, appid_);
      }
      if (gameId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, gameId_);
      }
      if (!getFxCGameIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, fxCGameId_);
      }
      if (!getAppExtBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, appExt_);
      }
      if (!getGuidBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, guid_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData other = (pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData) obj;

      if (!getAppid()
          .equals(other.getAppid())) return false;
      if (getGameId()
          != other.getGameId()) return false;
      if (!getFxCGameId()
          .equals(other.getFxCGameId())) return false;
      if (!getAppExt()
          .equals(other.getAppExt())) return false;
      if (!getGuid()
          .equals(other.getGuid())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + APPID_FIELD_NUMBER;
      hash = (53 * hash) + getAppid().hashCode();
      hash = (37 * hash) + GAME_ID_FIELD_NUMBER;
      hash = (53 * hash) + getGameId();
      hash = (37 * hash) + FX_C_GAME_ID_FIELD_NUMBER;
      hash = (53 * hash) + getFxCGameId().hashCode();
      hash = (37 * hash) + APP_EXT_FIELD_NUMBER;
      hash = (53 * hash) + getAppExt().hashCode();
      hash = (37 * hash) + GUID_FIELD_NUMBER;
      hash = (53 * hash) + getGuid().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *37的渠道数据
     * </pre>
     *
     * Protobuf type {@code pb.Pb37ChannelData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.Pb37ChannelData)
        pb.xiugou.x1.protobuf.player.Player.Pb37ChannelDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_Pb37ChannelData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_Pb37ChannelData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData.class, pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        appid_ = "";

        gameId_ = 0;

        fxCGameId_ = "";

        appExt_ = "";

        guid_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_Pb37ChannelData_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData build() {
        pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData result = new pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData(this);
        result.appid_ = appid_;
        result.gameId_ = gameId_;
        result.fxCGameId_ = fxCGameId_;
        result.appExt_ = appExt_;
        result.guid_ = guid_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData.getDefaultInstance()) return this;
        if (!other.getAppid().isEmpty()) {
          appid_ = other.appid_;
          onChanged();
        }
        if (other.getGameId() != 0) {
          setGameId(other.getGameId());
        }
        if (!other.getFxCGameId().isEmpty()) {
          fxCGameId_ = other.fxCGameId_;
          onChanged();
        }
        if (!other.getAppExt().isEmpty()) {
          appExt_ = other.appExt_;
          onChanged();
        }
        if (!other.getGuid().isEmpty()) {
          guid_ = other.guid_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object appid_ = "";
      /**
       * <pre>
       *应用ID，37sdk提供
       * </pre>
       *
       * <code>string appid = 1;</code>
       * @return The appid.
       */
      public java.lang.String getAppid() {
        java.lang.Object ref = appid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          appid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *应用ID，37sdk提供
       * </pre>
       *
       * <code>string appid = 1;</code>
       * @return The bytes for appid.
       */
      public com.google.protobuf.ByteString
          getAppidBytes() {
        java.lang.Object ref = appid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          appid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *应用ID，37sdk提供
       * </pre>
       *
       * <code>string appid = 1;</code>
       * @param value The appid to set.
       * @return This builder for chaining.
       */
      public Builder setAppid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        appid_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *应用ID，37sdk提供
       * </pre>
       *
       * <code>string appid = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAppid() {
        
        appid_ = getDefaultInstance().getAppid();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *应用ID，37sdk提供
       * </pre>
       *
       * <code>string appid = 1;</code>
       * @param value The bytes for appid to set.
       * @return This builder for chaining.
       */
      public Builder setAppidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        appid_ = value;
        onChanged();
        return this;
      }

      private int gameId_ ;
      /**
       * <pre>
       *游戏ID，37sdk提供
       * </pre>
       *
       * <code>int32 game_id = 2;</code>
       * @return The gameId.
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <pre>
       *游戏ID，37sdk提供
       * </pre>
       *
       * <code>int32 game_id = 2;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *游戏ID，37sdk提供
       * </pre>
       *
       * <code>int32 game_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        
        gameId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object fxCGameId_ = "";
      /**
       * <pre>
       *37sdk提供
       * </pre>
       *
       * <code>string fx_c_game_id = 3;</code>
       * @return The fxCGameId.
       */
      public java.lang.String getFxCGameId() {
        java.lang.Object ref = fxCGameId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          fxCGameId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *37sdk提供
       * </pre>
       *
       * <code>string fx_c_game_id = 3;</code>
       * @return The bytes for fxCGameId.
       */
      public com.google.protobuf.ByteString
          getFxCGameIdBytes() {
        java.lang.Object ref = fxCGameId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          fxCGameId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *37sdk提供
       * </pre>
       *
       * <code>string fx_c_game_id = 3;</code>
       * @param value The fxCGameId to set.
       * @return This builder for chaining.
       */
      public Builder setFxCGameId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        fxCGameId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *37sdk提供
       * </pre>
       *
       * <code>string fx_c_game_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearFxCGameId() {
        
        fxCGameId_ = getDefaultInstance().getFxCGameId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *37sdk提供
       * </pre>
       *
       * <code>string fx_c_game_id = 3;</code>
       * @param value The bytes for fxCGameId to set.
       * @return This builder for chaining.
       */
      public Builder setFxCGameIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        fxCGameId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object appExt_ = "";
      /**
       * <pre>
       *37sdk提供
       * </pre>
       *
       * <code>string app_ext = 4;</code>
       * @return The appExt.
       */
      public java.lang.String getAppExt() {
        java.lang.Object ref = appExt_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          appExt_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *37sdk提供
       * </pre>
       *
       * <code>string app_ext = 4;</code>
       * @return The bytes for appExt.
       */
      public com.google.protobuf.ByteString
          getAppExtBytes() {
        java.lang.Object ref = appExt_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          appExt_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *37sdk提供
       * </pre>
       *
       * <code>string app_ext = 4;</code>
       * @param value The appExt to set.
       * @return This builder for chaining.
       */
      public Builder setAppExt(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        appExt_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *37sdk提供
       * </pre>
       *
       * <code>string app_ext = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAppExt() {
        
        appExt_ = getDefaultInstance().getAppExt();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *37sdk提供
       * </pre>
       *
       * <code>string app_ext = 4;</code>
       * @param value The bytes for appExt to set.
       * @return This builder for chaining.
       */
      public Builder setAppExtBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        appExt_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object guid_ = "";
      /**
       * <pre>
       *进入标识，37sdk提供
       * </pre>
       *
       * <code>string guid = 5;</code>
       * @return The guid.
       */
      public java.lang.String getGuid() {
        java.lang.Object ref = guid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          guid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *进入标识，37sdk提供
       * </pre>
       *
       * <code>string guid = 5;</code>
       * @return The bytes for guid.
       */
      public com.google.protobuf.ByteString
          getGuidBytes() {
        java.lang.Object ref = guid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          guid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *进入标识，37sdk提供
       * </pre>
       *
       * <code>string guid = 5;</code>
       * @param value The guid to set.
       * @return This builder for chaining.
       */
      public Builder setGuid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        guid_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *进入标识，37sdk提供
       * </pre>
       *
       * <code>string guid = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearGuid() {
        
        guid_ = getDefaultInstance().getGuid();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *进入标识，37sdk提供
       * </pre>
       *
       * <code>string guid = 5;</code>
       * @param value The bytes for guid to set.
       * @return This builder for chaining.
       */
      public Builder setGuidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        guid_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.Pb37ChannelData)
    }

    // @@protoc_insertion_point(class_scope:pb.Pb37ChannelData)
    private static final pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData();
    }

    public static pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Pb37ChannelData>
        PARSER = new com.google.protobuf.AbstractParser<Pb37ChannelData>() {
      @java.lang.Override
      public Pb37ChannelData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Pb37ChannelData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Pb37ChannelData> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Pb37ChannelData> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.Pb37ChannelData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PbYiLeChannelDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PbYiLeChannelData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *uid
     * </pre>
     *
     * <code>string uid = 1;</code>
     * @return The uid.
     */
    java.lang.String getUid();
    /**
     * <pre>
     *uid
     * </pre>
     *
     * <code>string uid = 1;</code>
     * @return The bytes for uid.
     */
    com.google.protobuf.ByteString
        getUidBytes();

    /**
     * <pre>
     *登录token
     * </pre>
     *
     * <code>string token = 2;</code>
     * @return The token.
     */
    java.lang.String getToken();
    /**
     * <pre>
     *登录token
     * </pre>
     *
     * <code>string token = 2;</code>
     * @return The bytes for token.
     */
    com.google.protobuf.ByteString
        getTokenBytes();

    /**
     * <pre>
     *登录时间
     * </pre>
     *
     * <code>string login_time = 3;</code>
     * @return The loginTime.
     */
    java.lang.String getLoginTime();
    /**
     * <pre>
     *登录时间
     * </pre>
     *
     * <code>string login_time = 3;</code>
     * @return The bytes for loginTime.
     */
    com.google.protobuf.ByteString
        getLoginTimeBytes();
  }
  /**
   * Protobuf type {@code pb.PbYiLeChannelData}
   */
  public  static final class PbYiLeChannelData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbYiLeChannelData)
      PbYiLeChannelDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbYiLeChannelData.newBuilder() to construct.
    private PbYiLeChannelData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbYiLeChannelData() {
      uid_ = "";
      token_ = "";
      loginTime_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PbYiLeChannelData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbYiLeChannelData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              uid_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              token_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              loginTime_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbYiLeChannelData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbYiLeChannelData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData.class, pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData.Builder.class);
    }

    public static final int UID_FIELD_NUMBER = 1;
    private volatile java.lang.Object uid_;
    /**
     * <pre>
     *uid
     * </pre>
     *
     * <code>string uid = 1;</code>
     * @return The uid.
     */
    public java.lang.String getUid() {
      java.lang.Object ref = uid_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        uid_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *uid
     * </pre>
     *
     * <code>string uid = 1;</code>
     * @return The bytes for uid.
     */
    public com.google.protobuf.ByteString
        getUidBytes() {
      java.lang.Object ref = uid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        uid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOKEN_FIELD_NUMBER = 2;
    private volatile java.lang.Object token_;
    /**
     * <pre>
     *登录token
     * </pre>
     *
     * <code>string token = 2;</code>
     * @return The token.
     */
    public java.lang.String getToken() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        token_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *登录token
     * </pre>
     *
     * <code>string token = 2;</code>
     * @return The bytes for token.
     */
    public com.google.protobuf.ByteString
        getTokenBytes() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        token_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGIN_TIME_FIELD_NUMBER = 3;
    private volatile java.lang.Object loginTime_;
    /**
     * <pre>
     *登录时间
     * </pre>
     *
     * <code>string login_time = 3;</code>
     * @return The loginTime.
     */
    public java.lang.String getLoginTime() {
      java.lang.Object ref = loginTime_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        loginTime_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *登录时间
     * </pre>
     *
     * <code>string login_time = 3;</code>
     * @return The bytes for loginTime.
     */
    public com.google.protobuf.ByteString
        getLoginTimeBytes() {
      java.lang.Object ref = loginTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        loginTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getUidBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uid_);
      }
      if (!getTokenBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, token_);
      }
      if (!getLoginTimeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, loginTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getUidBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uid_);
      }
      if (!getTokenBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, token_);
      }
      if (!getLoginTimeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, loginTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData other = (pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData) obj;

      if (!getUid()
          .equals(other.getUid())) return false;
      if (!getToken()
          .equals(other.getToken())) return false;
      if (!getLoginTime()
          .equals(other.getLoginTime())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + UID_FIELD_NUMBER;
      hash = (53 * hash) + getUid().hashCode();
      hash = (37 * hash) + TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getToken().hashCode();
      hash = (37 * hash) + LOGIN_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getLoginTime().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PbYiLeChannelData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbYiLeChannelData)
        pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbYiLeChannelData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbYiLeChannelData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData.class, pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        uid_ = "";

        token_ = "";

        loginTime_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbYiLeChannelData_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData build() {
        pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData result = new pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData(this);
        result.uid_ = uid_;
        result.token_ = token_;
        result.loginTime_ = loginTime_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData.getDefaultInstance()) return this;
        if (!other.getUid().isEmpty()) {
          uid_ = other.uid_;
          onChanged();
        }
        if (!other.getToken().isEmpty()) {
          token_ = other.token_;
          onChanged();
        }
        if (!other.getLoginTime().isEmpty()) {
          loginTime_ = other.loginTime_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object uid_ = "";
      /**
       * <pre>
       *uid
       * </pre>
       *
       * <code>string uid = 1;</code>
       * @return The uid.
       */
      public java.lang.String getUid() {
        java.lang.Object ref = uid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          uid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *uid
       * </pre>
       *
       * <code>string uid = 1;</code>
       * @return The bytes for uid.
       */
      public com.google.protobuf.ByteString
          getUidBytes() {
        java.lang.Object ref = uid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          uid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *uid
       * </pre>
       *
       * <code>string uid = 1;</code>
       * @param value The uid to set.
       * @return This builder for chaining.
       */
      public Builder setUid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *uid
       * </pre>
       *
       * <code>string uid = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearUid() {
        
        uid_ = getDefaultInstance().getUid();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *uid
       * </pre>
       *
       * <code>string uid = 1;</code>
       * @param value The bytes for uid to set.
       * @return This builder for chaining.
       */
      public Builder setUidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        uid_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object token_ = "";
      /**
       * <pre>
       *登录token
       * </pre>
       *
       * <code>string token = 2;</code>
       * @return The token.
       */
      public java.lang.String getToken() {
        java.lang.Object ref = token_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          token_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *登录token
       * </pre>
       *
       * <code>string token = 2;</code>
       * @return The bytes for token.
       */
      public com.google.protobuf.ByteString
          getTokenBytes() {
        java.lang.Object ref = token_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          token_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *登录token
       * </pre>
       *
       * <code>string token = 2;</code>
       * @param value The token to set.
       * @return This builder for chaining.
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登录token
       * </pre>
       *
       * <code>string token = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearToken() {
        
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登录token
       * </pre>
       *
       * <code>string token = 2;</code>
       * @param value The bytes for token to set.
       * @return This builder for chaining.
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        token_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object loginTime_ = "";
      /**
       * <pre>
       *登录时间
       * </pre>
       *
       * <code>string login_time = 3;</code>
       * @return The loginTime.
       */
      public java.lang.String getLoginTime() {
        java.lang.Object ref = loginTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          loginTime_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *登录时间
       * </pre>
       *
       * <code>string login_time = 3;</code>
       * @return The bytes for loginTime.
       */
      public com.google.protobuf.ByteString
          getLoginTimeBytes() {
        java.lang.Object ref = loginTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          loginTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *登录时间
       * </pre>
       *
       * <code>string login_time = 3;</code>
       * @param value The loginTime to set.
       * @return This builder for chaining.
       */
      public Builder setLoginTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        loginTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登录时间
       * </pre>
       *
       * <code>string login_time = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoginTime() {
        
        loginTime_ = getDefaultInstance().getLoginTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登录时间
       * </pre>
       *
       * <code>string login_time = 3;</code>
       * @param value The bytes for loginTime to set.
       * @return This builder for chaining.
       */
      public Builder setLoginTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        loginTime_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PbYiLeChannelData)
    }

    // @@protoc_insertion_point(class_scope:pb.PbYiLeChannelData)
    private static final pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PbYiLeChannelData>
        PARSER = new com.google.protobuf.AbstractParser<PbYiLeChannelData>() {
      @java.lang.Override
      public PbYiLeChannelData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PbYiLeChannelData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PbYiLeChannelData> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PbYiLeChannelData> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PbYiLeChannelData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PbWaboChannelDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PbWaboChannelData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *登录token
     * </pre>
     *
     * <code>string token = 1;</code>
     * @return The token.
     */
    java.lang.String getToken();
    /**
     * <pre>
     *登录token
     * </pre>
     *
     * <code>string token = 1;</code>
     * @return The bytes for token.
     */
    com.google.protobuf.ByteString
        getTokenBytes();

    /**
     * <pre>
     *uid
     * </pre>
     *
     * <code>string uid = 2;</code>
     * @return The uid.
     */
    java.lang.String getUid();
    /**
     * <pre>
     *uid
     * </pre>
     *
     * <code>string uid = 2;</code>
     * @return The bytes for uid.
     */
    com.google.protobuf.ByteString
        getUidBytes();
  }
  /**
   * Protobuf type {@code pb.PbWaboChannelData}
   */
  public  static final class PbWaboChannelData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbWaboChannelData)
      PbWaboChannelDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbWaboChannelData.newBuilder() to construct.
    private PbWaboChannelData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbWaboChannelData() {
      token_ = "";
      uid_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PbWaboChannelData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbWaboChannelData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              token_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              uid_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbWaboChannelData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbWaboChannelData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData.class, pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData.Builder.class);
    }

    public static final int TOKEN_FIELD_NUMBER = 1;
    private volatile java.lang.Object token_;
    /**
     * <pre>
     *登录token
     * </pre>
     *
     * <code>string token = 1;</code>
     * @return The token.
     */
    public java.lang.String getToken() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        token_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *登录token
     * </pre>
     *
     * <code>string token = 1;</code>
     * @return The bytes for token.
     */
    public com.google.protobuf.ByteString
        getTokenBytes() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        token_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int UID_FIELD_NUMBER = 2;
    private volatile java.lang.Object uid_;
    /**
     * <pre>
     *uid
     * </pre>
     *
     * <code>string uid = 2;</code>
     * @return The uid.
     */
    public java.lang.String getUid() {
      java.lang.Object ref = uid_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        uid_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *uid
     * </pre>
     *
     * <code>string uid = 2;</code>
     * @return The bytes for uid.
     */
    public com.google.protobuf.ByteString
        getUidBytes() {
      java.lang.Object ref = uid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        uid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getTokenBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, token_);
      }
      if (!getUidBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, uid_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getTokenBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, token_);
      }
      if (!getUidBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, uid_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData other = (pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData) obj;

      if (!getToken()
          .equals(other.getToken())) return false;
      if (!getUid()
          .equals(other.getUid())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getToken().hashCode();
      hash = (37 * hash) + UID_FIELD_NUMBER;
      hash = (53 * hash) + getUid().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PbWaboChannelData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbWaboChannelData)
        pb.xiugou.x1.protobuf.player.Player.PbWaboChannelDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbWaboChannelData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbWaboChannelData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData.class, pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        token_ = "";

        uid_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbWaboChannelData_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData build() {
        pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData result = new pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData(this);
        result.token_ = token_;
        result.uid_ = uid_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData.getDefaultInstance()) return this;
        if (!other.getToken().isEmpty()) {
          token_ = other.token_;
          onChanged();
        }
        if (!other.getUid().isEmpty()) {
          uid_ = other.uid_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object token_ = "";
      /**
       * <pre>
       *登录token
       * </pre>
       *
       * <code>string token = 1;</code>
       * @return The token.
       */
      public java.lang.String getToken() {
        java.lang.Object ref = token_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          token_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *登录token
       * </pre>
       *
       * <code>string token = 1;</code>
       * @return The bytes for token.
       */
      public com.google.protobuf.ByteString
          getTokenBytes() {
        java.lang.Object ref = token_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          token_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *登录token
       * </pre>
       *
       * <code>string token = 1;</code>
       * @param value The token to set.
       * @return This builder for chaining.
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登录token
       * </pre>
       *
       * <code>string token = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearToken() {
        
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登录token
       * </pre>
       *
       * <code>string token = 1;</code>
       * @param value The bytes for token to set.
       * @return This builder for chaining.
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        token_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object uid_ = "";
      /**
       * <pre>
       *uid
       * </pre>
       *
       * <code>string uid = 2;</code>
       * @return The uid.
       */
      public java.lang.String getUid() {
        java.lang.Object ref = uid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          uid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *uid
       * </pre>
       *
       * <code>string uid = 2;</code>
       * @return The bytes for uid.
       */
      public com.google.protobuf.ByteString
          getUidBytes() {
        java.lang.Object ref = uid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          uid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *uid
       * </pre>
       *
       * <code>string uid = 2;</code>
       * @param value The uid to set.
       * @return This builder for chaining.
       */
      public Builder setUid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *uid
       * </pre>
       *
       * <code>string uid = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearUid() {
        
        uid_ = getDefaultInstance().getUid();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *uid
       * </pre>
       *
       * <code>string uid = 2;</code>
       * @param value The bytes for uid to set.
       * @return This builder for chaining.
       */
      public Builder setUidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        uid_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PbWaboChannelData)
    }

    // @@protoc_insertion_point(class_scope:pb.PbWaboChannelData)
    private static final pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PbWaboChannelData>
        PARSER = new com.google.protobuf.AbstractParser<PbWaboChannelData>() {
      @java.lang.Override
      public PbWaboChannelData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PbWaboChannelData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PbWaboChannelData> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PbWaboChannelData> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PbWaboChannelData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PbFuShunChannelDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PbFuShunChannelData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *登录code
     * </pre>
     *
     * <code>string code = 1;</code>
     * @return The code.
     */
    java.lang.String getCode();
    /**
     * <pre>
     *登录code
     * </pre>
     *
     * <code>string code = 1;</code>
     * @return The bytes for code.
     */
    com.google.protobuf.ByteString
        getCodeBytes();
  }
  /**
   * Protobuf type {@code pb.PbFuShunChannelData}
   */
  public  static final class PbFuShunChannelData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbFuShunChannelData)
      PbFuShunChannelDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbFuShunChannelData.newBuilder() to construct.
    private PbFuShunChannelData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbFuShunChannelData() {
      code_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PbFuShunChannelData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbFuShunChannelData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              code_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbFuShunChannelData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbFuShunChannelData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData.class, pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData.Builder.class);
    }

    public static final int CODE_FIELD_NUMBER = 1;
    private volatile java.lang.Object code_;
    /**
     * <pre>
     *登录code
     * </pre>
     *
     * <code>string code = 1;</code>
     * @return The code.
     */
    public java.lang.String getCode() {
      java.lang.Object ref = code_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        code_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *登录code
     * </pre>
     *
     * <code>string code = 1;</code>
     * @return The bytes for code.
     */
    public com.google.protobuf.ByteString
        getCodeBytes() {
      java.lang.Object ref = code_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        code_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getCodeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, code_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getCodeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, code_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData other = (pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData) obj;

      if (!getCode()
          .equals(other.getCode())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + CODE_FIELD_NUMBER;
      hash = (53 * hash) + getCode().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PbFuShunChannelData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbFuShunChannelData)
        pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbFuShunChannelData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbFuShunChannelData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData.class, pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        code_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.player.Player.internal_static_pb_PbFuShunChannelData_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData build() {
        pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData buildPartial() {
        pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData result = new pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData(this);
        result.code_ = code_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData) {
          return mergeFrom((pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData other) {
        if (other == pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData.getDefaultInstance()) return this;
        if (!other.getCode().isEmpty()) {
          code_ = other.code_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object code_ = "";
      /**
       * <pre>
       *登录code
       * </pre>
       *
       * <code>string code = 1;</code>
       * @return The code.
       */
      public java.lang.String getCode() {
        java.lang.Object ref = code_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          code_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *登录code
       * </pre>
       *
       * <code>string code = 1;</code>
       * @return The bytes for code.
       */
      public com.google.protobuf.ByteString
          getCodeBytes() {
        java.lang.Object ref = code_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          code_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *登录code
       * </pre>
       *
       * <code>string code = 1;</code>
       * @param value The code to set.
       * @return This builder for chaining.
       */
      public Builder setCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        code_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登录code
       * </pre>
       *
       * <code>string code = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCode() {
        
        code_ = getDefaultInstance().getCode();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *登录code
       * </pre>
       *
       * <code>string code = 1;</code>
       * @param value The bytes for code to set.
       * @return This builder for chaining.
       */
      public Builder setCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        code_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PbFuShunChannelData)
    }

    // @@protoc_insertion_point(class_scope:pb.PbFuShunChannelData)
    private static final pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData();
    }

    public static pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PbFuShunChannelData>
        PARSER = new com.google.protobuf.AbstractParser<PbFuShunChannelData>() {
      @java.lang.Override
      public PbFuShunChannelData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PbFuShunChannelData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PbFuShunChannelData> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PbFuShunChannelData> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.player.Player.PbFuShunChannelData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_LoginRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_LoginRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_LoginResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_LoginResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_LogoutRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_LogoutRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_LogoutMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_LogoutMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_HeartBeatRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_HeartBeatRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_HeartBeatResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_HeartBeatResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_ChangeNameRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_ChangeNameRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_ChangeNameResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_ChangeNameResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PlayerInfoChangeMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PlayerInfoChangeMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PlayerPushEndMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PlayerPushEndMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PlayerModuleInfoRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PlayerModuleInfoRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PlayerModuleInfoResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PlayerModuleInfoResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PlayerMoreInfoRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PlayerMoreInfoRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PlayerMoreInfoResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PlayerMoreInfoResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PlayerMoreInfoEndMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PlayerMoreInfoEndMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PlayerWiretapRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PlayerWiretapRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PlayerWiretapResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PlayerWiretapResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_EasyLoginRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_EasyLoginRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_Pb37ChannelData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_Pb37ChannelData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbYiLeChannelData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbYiLeChannelData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbWaboChannelData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbWaboChannelData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbFuShunChannelData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbFuShunChannelData_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\014Player.proto\022\002pb\"\322\001\n\014LoginRequest\022\017\n\007o" +
      "pen_id\030\001 \001(\t\022\021\n\tserver_id\030\002 \001(\005\022\023\n\013devic" +
      "e_type\030\003 \001(\t\022\021\n\tdevice_id\030\004 \001(\t\022\022\n\nchann" +
      "el_id\030\005 \001(\005\022\030\n\020channel_identity\030\006 \001(\t\022\024\n" +
      "\014channel_data\030\007 \001(\014\022\022\n\nre_connect\030\010 \001(\010\"" +
      "\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\301\232\014\"\371\002\n\rLogi" +
      "nResponse\022\037\n\006status\030\001 \001(\0162\017.pb.LoginStat" +
      "us\022\013\n\003pid\030\002 \001(\003\022\023\n\013server_time\030\003 \001(\003\022\022\n\n" +
      "offset_utc\030\004 \001(\003\022\014\n\004nick\030\005 \001(\t\022\014\n\004head\030\006" +
      " \001(\t\022\r\n\005level\030\007 \001(\005\022\013\n\003exp\030\010 \001(\003\022\030\n\020forb" +
      "ind_end_time\030\t \001(\003\022\031\n\021change_name_times\030" +
      "\n \001(\005\022\025\n\rbuy_privilege\030\013 \001(\010\022\021\n\tvip_leve" +
      "l\030\014 \001(\005\022\020\n\010open_day\030\r \001(\005\022\017\n\007open_gm\030\016 \001" +
      "(\010\022\021\n\tis_create\030\017 \001(\010\022\023\n\013create_time\030\020 \001" +
      "(\003\022\017\n\007vip_exp\030\021 \001(\003\"\036\n\005Proto\022\013\n\007UNKNOWN\020" +
      "\000\022\010\n\002ID\020\301\232\014\"/\n\rLogoutRequest\"\036\n\005Proto\022\013\n" +
      "\007UNKNOWN\020\000\022\010\n\002ID\020\303\232\014\"W\n\rLogoutMessage\022\014\n" +
      "\004type\030\001 \001(\005\022\030\n\020forbind_end_time\030\002 \001(\003\"\036\n" +
      "\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\304\232\014\"2\n\020HeartBe" +
      "atRequest\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\305\232" +
      "\014\"H\n\021HeartBeatResponse\022\023\n\013server_time\030\001 " +
      "\001(\003\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\305\232\014\"_\n\021C" +
      "hangeNameRequest\022\020\n\010new_name\030\001 \001(\t\022\030\n\020ch" +
      "annel_identity\030\002 \001(\t\"\036\n\005Proto\022\013\n\007UNKNOWN" +
      "\020\000\022\010\n\002ID\020\306\232\014\"a\n\022ChangeNameResponse\022\020\n\010ne" +
      "w_name\030\001 \001(\t\022\031\n\021change_name_times\030\002 \001(\005\"" +
      "\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\306\232\014\"P\n\027Playe" +
      "rInfoChangeMessage\022\025\n\rbuy_privilege\030\001 \001(" +
      "\010\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\307\232\014\"6\n\024Pla" +
      "yerPushEndMessage\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022" +
      "\010\n\002ID\020\310\232\014\"I\n\027PlayerModuleInfoRequest\022\016\n\006" +
      "module\030\001 \001(\t\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID" +
      "\020\311\232\014\":\n\030PlayerModuleInfoResponse\"\036\n\005Prot" +
      "o\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\311\232\014\"7\n\025PlayerMoreIn" +
      "foRequest\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\312\232" +
      "\014\"8\n\026PlayerMoreInfoResponse\"\036\n\005Proto\022\013\n\007" +
      "UNKNOWN\020\000\022\010\n\002ID\020\312\232\014\":\n\030PlayerMoreInfoEnd" +
      "Message\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\313\232\014\"" +
      "I\n\024PlayerWiretapRequest\022\021\n\tplayer_id\030\001 \001" +
      "(\003\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\314\232\014\"7\n\025Pl" +
      "ayerWiretapResponse\"\036\n\005Proto\022\013\n\007UNKNOWN\020" +
      "\000\022\010\n\002ID\020\314\232\014\"k\n\020EasyLoginRequest\022\017\n\007open_" +
      "id\030\001 \001(\t\022\021\n\tserver_id\030\002 \001(\005\022\023\n\013device_ty" +
      "pe\030\003 \001(\t\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\315\232\014" +
      "\"f\n\017Pb37ChannelData\022\r\n\005appid\030\001 \001(\t\022\017\n\007ga" +
      "me_id\030\002 \001(\005\022\024\n\014fx_c_game_id\030\003 \001(\t\022\017\n\007app" +
      "_ext\030\004 \001(\t\022\014\n\004guid\030\005 \001(\t\"C\n\021PbYiLeChanne" +
      "lData\022\013\n\003uid\030\001 \001(\t\022\r\n\005token\030\002 \001(\t\022\022\n\nlog" +
      "in_time\030\003 \001(\t\"/\n\021PbWaboChannelData\022\r\n\005to" +
      "ken\030\001 \001(\t\022\013\n\003uid\030\002 \001(\t\"#\n\023PbFuShunChanne" +
      "lData\022\014\n\004code\030\001 \001(\t*L\n\013LoginStatus\022\010\n\004NO" +
      "NE\020\000\022\n\n\006NORMAL\020\001\022\n\n\006FORBID\020\002\022\014\n\010MAINTAIN" +
      "\020\003\022\r\n\tVIOLATION\020\004B6\n\034pb.xiugou.x1.protob" +
      "uf.player\252\002\025pb.xiugou.x1.protobufb\006proto" +
      "3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_pb_LoginRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_pb_LoginRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_LoginRequest_descriptor,
        new java.lang.String[] { "OpenId", "ServerId", "DeviceType", "DeviceId", "ChannelId", "ChannelIdentity", "ChannelData", "ReConnect", });
    internal_static_pb_LoginResponse_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_pb_LoginResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_LoginResponse_descriptor,
        new java.lang.String[] { "Status", "Pid", "ServerTime", "OffsetUtc", "Nick", "Head", "Level", "Exp", "ForbindEndTime", "ChangeNameTimes", "BuyPrivilege", "VipLevel", "OpenDay", "OpenGm", "IsCreate", "CreateTime", "VipExp", });
    internal_static_pb_LogoutRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_pb_LogoutRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_LogoutRequest_descriptor,
        new java.lang.String[] { });
    internal_static_pb_LogoutMessage_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_pb_LogoutMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_LogoutMessage_descriptor,
        new java.lang.String[] { "Type", "ForbindEndTime", });
    internal_static_pb_HeartBeatRequest_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_pb_HeartBeatRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_HeartBeatRequest_descriptor,
        new java.lang.String[] { });
    internal_static_pb_HeartBeatResponse_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_pb_HeartBeatResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_HeartBeatResponse_descriptor,
        new java.lang.String[] { "ServerTime", });
    internal_static_pb_ChangeNameRequest_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_pb_ChangeNameRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_ChangeNameRequest_descriptor,
        new java.lang.String[] { "NewName", "ChannelIdentity", });
    internal_static_pb_ChangeNameResponse_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_pb_ChangeNameResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_ChangeNameResponse_descriptor,
        new java.lang.String[] { "NewName", "ChangeNameTimes", });
    internal_static_pb_PlayerInfoChangeMessage_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_pb_PlayerInfoChangeMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PlayerInfoChangeMessage_descriptor,
        new java.lang.String[] { "BuyPrivilege", });
    internal_static_pb_PlayerPushEndMessage_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_pb_PlayerPushEndMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PlayerPushEndMessage_descriptor,
        new java.lang.String[] { });
    internal_static_pb_PlayerModuleInfoRequest_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_pb_PlayerModuleInfoRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PlayerModuleInfoRequest_descriptor,
        new java.lang.String[] { "Module", });
    internal_static_pb_PlayerModuleInfoResponse_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_pb_PlayerModuleInfoResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PlayerModuleInfoResponse_descriptor,
        new java.lang.String[] { });
    internal_static_pb_PlayerMoreInfoRequest_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_pb_PlayerMoreInfoRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PlayerMoreInfoRequest_descriptor,
        new java.lang.String[] { });
    internal_static_pb_PlayerMoreInfoResponse_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_pb_PlayerMoreInfoResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PlayerMoreInfoResponse_descriptor,
        new java.lang.String[] { });
    internal_static_pb_PlayerMoreInfoEndMessage_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_pb_PlayerMoreInfoEndMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PlayerMoreInfoEndMessage_descriptor,
        new java.lang.String[] { });
    internal_static_pb_PlayerWiretapRequest_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_pb_PlayerWiretapRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PlayerWiretapRequest_descriptor,
        new java.lang.String[] { "PlayerId", });
    internal_static_pb_PlayerWiretapResponse_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_pb_PlayerWiretapResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PlayerWiretapResponse_descriptor,
        new java.lang.String[] { });
    internal_static_pb_EasyLoginRequest_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_pb_EasyLoginRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_EasyLoginRequest_descriptor,
        new java.lang.String[] { "OpenId", "ServerId", "DeviceType", });
    internal_static_pb_Pb37ChannelData_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_pb_Pb37ChannelData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_Pb37ChannelData_descriptor,
        new java.lang.String[] { "Appid", "GameId", "FxCGameId", "AppExt", "Guid", });
    internal_static_pb_PbYiLeChannelData_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_pb_PbYiLeChannelData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbYiLeChannelData_descriptor,
        new java.lang.String[] { "Uid", "Token", "LoginTime", });
    internal_static_pb_PbWaboChannelData_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_pb_PbWaboChannelData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbWaboChannelData_descriptor,
        new java.lang.String[] { "Token", "Uid", });
    internal_static_pb_PbFuShunChannelData_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_pb_PbFuShunChannelData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbFuShunChannelData_descriptor,
        new java.lang.String[] { "Code", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
