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

package com.backfire.socket.socketProto;

public final class Doudizhu {
  private Doudizhu() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public interface AuthReqOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint64 uid = 1;
    boolean hasUid();
    long getUid();
    
    // optional string key = 2;
    boolean hasKey();
    String getKey();
  }
  public static final class AuthReq extends
      com.google.protobuf.GeneratedMessage
      implements AuthReqOrBuilder {
    // Use AuthReq.newBuilder() to construct.
    private AuthReq(Builder builder) {
      super(builder);
    }
    private AuthReq(boolean noInit) {}
    
    private static final AuthReq defaultInstance;
    public static AuthReq getDefaultInstance() {
      return defaultInstance;
    }
    
    public AuthReq getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_AuthReq_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_AuthReq_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint64 uid = 1;
    public static final int UID_FIELD_NUMBER = 1;
    private long uid_;
    public boolean hasUid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public long getUid() {
      return uid_;
    }
    
    // optional string key = 2;
    public static final int KEY_FIELD_NUMBER = 2;
    private java.lang.Object key_;
    public boolean hasKey() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          key_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      uid_ = 0L;
      key_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getKeyBytes());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getKeyBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.AuthReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.AuthReq prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.AuthReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_AuthReq_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_AuthReq_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.AuthReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        uid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.AuthReq.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.AuthReq getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.AuthReq.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.AuthReq build() {
        com.backfire.socket.socketProto.Doudizhu.AuthReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.AuthReq buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.AuthReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.AuthReq buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.AuthReq result = new com.backfire.socket.socketProto.Doudizhu.AuthReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.key_ = key_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.AuthReq) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.AuthReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.AuthReq other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.AuthReq.getDefaultInstance()) return this;
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        if (other.hasKey()) {
          setKey(other.getKey());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              uid_ = input.readUInt64();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              key_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint64 uid = 1;
      private long uid_ ;
      public boolean hasUid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public long getUid() {
        return uid_;
      }
      public Builder setUid(long value) {
        bitField0_ |= 0x00000001;
        uid_ = value;
        onChanged();
        return this;
      }
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0L;
        onChanged();
        return this;
      }
      
      // optional string key = 2;
      private java.lang.Object key_ = "";
      public boolean hasKey() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          key_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setKey(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        key_ = value;
        onChanged();
        return this;
      }
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000002);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      void setKey(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000002;
        key_ = value;
        onChanged();
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.AuthReq)
    }
    
    static {
      defaultInstance = new AuthReq(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.AuthReq)
  }
  
  public interface AuthRpyOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 ret = 1;
    boolean hasRet();
    int getRet();
    
    // optional uint32 retcode = 2;
    boolean hasRetcode();
    int getRetcode();
    
    // optional string retmsg = 3;
    boolean hasRetmsg();
    String getRetmsg();
  }
  public static final class AuthRpy extends
      com.google.protobuf.GeneratedMessage
      implements AuthRpyOrBuilder {
    // Use AuthRpy.newBuilder() to construct.
    private AuthRpy(Builder builder) {
      super(builder);
    }
    private AuthRpy(boolean noInit) {}
    
    private static final AuthRpy defaultInstance;
    public static AuthRpy getDefaultInstance() {
      return defaultInstance;
    }
    
    public AuthRpy getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_AuthRpy_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_AuthRpy_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 ret = 1;
    public static final int RET_FIELD_NUMBER = 1;
    private int ret_;
    public boolean hasRet() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRet() {
      return ret_;
    }
    
    // optional uint32 retcode = 2;
    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retcode_;
    public boolean hasRetcode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getRetcode() {
      return retcode_;
    }
    
    // optional string retmsg = 3;
    public static final int RETMSG_FIELD_NUMBER = 3;
    private java.lang.Object retmsg_;
    public boolean hasRetmsg() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getRetmsg() {
      java.lang.Object ref = retmsg_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          retmsg_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getRetmsgBytes() {
      java.lang.Object ref = retmsg_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        retmsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      ret_ = 0;
      retcode_ = 0;
      retmsg_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, retcode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getRetmsgBytes());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, retcode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getRetmsgBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.AuthRpy parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthRpy parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthRpy parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthRpy parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthRpy parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthRpy parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthRpy parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthRpy parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthRpy parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.AuthRpy parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.AuthRpy prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.AuthRpyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_AuthRpy_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_AuthRpy_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.AuthRpy.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        ret_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        retcode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retmsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.AuthRpy.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.AuthRpy getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.AuthRpy.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.AuthRpy build() {
        com.backfire.socket.socketProto.Doudizhu.AuthRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.AuthRpy buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.AuthRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.AuthRpy buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.AuthRpy result = new com.backfire.socket.socketProto.Doudizhu.AuthRpy(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ret_ = ret_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.retcode_ = retcode_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retmsg_ = retmsg_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.AuthRpy) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.AuthRpy)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.AuthRpy other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.AuthRpy.getDefaultInstance()) return this;
        if (other.hasRet()) {
          setRet(other.getRet());
        }
        if (other.hasRetcode()) {
          setRetcode(other.getRetcode());
        }
        if (other.hasRetmsg()) {
          setRetmsg(other.getRetmsg());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ret_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retcode_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              retmsg_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 ret = 1;
      private int ret_ ;
      public boolean hasRet() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRet() {
        return ret_;
      }
      public Builder setRet(int value) {
        bitField0_ |= 0x00000001;
        ret_ = value;
        onChanged();
        return this;
      }
      public Builder clearRet() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ret_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 retcode = 2;
      private int retcode_ ;
      public boolean hasRetcode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getRetcode() {
        return retcode_;
      }
      public Builder setRetcode(int value) {
        bitField0_ |= 0x00000002;
        retcode_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetcode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retcode_ = 0;
        onChanged();
        return this;
      }
      
      // optional string retmsg = 3;
      private java.lang.Object retmsg_ = "";
      public boolean hasRetmsg() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getRetmsg() {
        java.lang.Object ref = retmsg_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          retmsg_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setRetmsg(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retmsg_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetmsg() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retmsg_ = getDefaultInstance().getRetmsg();
        onChanged();
        return this;
      }
      void setRetmsg(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000004;
        retmsg_ = value;
        onChanged();
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.AuthRpy)
    }
    
    static {
      defaultInstance = new AuthRpy(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.AuthRpy)
  }
  
  public interface LoginoutReqOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 cmd = 1;
    boolean hasCmd();
    int getCmd();
  }
  public static final class LoginoutReq extends
      com.google.protobuf.GeneratedMessage
      implements LoginoutReqOrBuilder {
    // Use LoginoutReq.newBuilder() to construct.
    private LoginoutReq(Builder builder) {
      super(builder);
    }
    private LoginoutReq(boolean noInit) {}
    
    private static final LoginoutReq defaultInstance;
    public static LoginoutReq getDefaultInstance() {
      return defaultInstance;
    }
    
    public LoginoutReq getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_LoginoutReq_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_LoginoutReq_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 cmd = 1;
    public static final int CMD_FIELD_NUMBER = 1;
    private int cmd_;
    public boolean hasCmd() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getCmd() {
      return cmd_;
    }
    
    private void initFields() {
      cmd_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, cmd_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, cmd_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.LoginoutReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.LoginoutReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.LoginoutReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.LoginoutReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.LoginoutReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.LoginoutReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.LoginoutReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.LoginoutReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.LoginoutReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.LoginoutReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.LoginoutReq prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.LoginoutReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_LoginoutReq_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_LoginoutReq_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.LoginoutReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        cmd_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.LoginoutReq.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.LoginoutReq getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.LoginoutReq.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.LoginoutReq build() {
        com.backfire.socket.socketProto.Doudizhu.LoginoutReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.LoginoutReq buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.LoginoutReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.LoginoutReq buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.LoginoutReq result = new com.backfire.socket.socketProto.Doudizhu.LoginoutReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.cmd_ = cmd_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.LoginoutReq) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.LoginoutReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.LoginoutReq other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.LoginoutReq.getDefaultInstance()) return this;
        if (other.hasCmd()) {
          setCmd(other.getCmd());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              cmd_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 cmd = 1;
      private int cmd_ ;
      public boolean hasCmd() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getCmd() {
        return cmd_;
      }
      public Builder setCmd(int value) {
        bitField0_ |= 0x00000001;
        cmd_ = value;
        onChanged();
        return this;
      }
      public Builder clearCmd() {
        bitField0_ = (bitField0_ & ~0x00000001);
        cmd_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.LoginoutReq)
    }
    
    static {
      defaultInstance = new LoginoutReq(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.LoginoutReq)
  }
  
  public interface ReadyOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 isready = 1;
    boolean hasIsready();
    int getIsready();
    
    // optional uint32 handcardAnimMS = 2;
    boolean hasHandcardAnimMS();
    int getHandcardAnimMS();
  }
  public static final class Ready extends
      com.google.protobuf.GeneratedMessage
      implements ReadyOrBuilder {
    // Use Ready.newBuilder() to construct.
    private Ready(Builder builder) {
      super(builder);
    }
    private Ready(boolean noInit) {}
    
    private static final Ready defaultInstance;
    public static Ready getDefaultInstance() {
      return defaultInstance;
    }
    
    public Ready getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_Ready_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_Ready_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 isready = 1;
    public static final int ISREADY_FIELD_NUMBER = 1;
    private int isready_;
    public boolean hasIsready() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getIsready() {
      return isready_;
    }
    
    // optional uint32 handcardAnimMS = 2;
    public static final int HANDCARDANIMMS_FIELD_NUMBER = 2;
    private int handcardAnimMS_;
    public boolean hasHandcardAnimMS() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getHandcardAnimMS() {
      return handcardAnimMS_;
    }
    
    private void initFields() {
      isready_ = 0;
      handcardAnimMS_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, isready_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, handcardAnimMS_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, isready_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, handcardAnimMS_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.Ready parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.Ready parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.Ready parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.Ready parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.Ready parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.Ready parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.Ready parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.Ready parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.Ready parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.Ready parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.Ready prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.ReadyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_Ready_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_Ready_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.Ready.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        isready_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        handcardAnimMS_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.Ready.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.Ready getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.Ready.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.Ready build() {
        com.backfire.socket.socketProto.Doudizhu.Ready result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.Ready buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.Ready result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.Ready buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.Ready result = new com.backfire.socket.socketProto.Doudizhu.Ready(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.isready_ = isready_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.handcardAnimMS_ = handcardAnimMS_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.Ready) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.Ready)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.Ready other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.Ready.getDefaultInstance()) return this;
        if (other.hasIsready()) {
          setIsready(other.getIsready());
        }
        if (other.hasHandcardAnimMS()) {
          setHandcardAnimMS(other.getHandcardAnimMS());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              isready_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              handcardAnimMS_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 isready = 1;
      private int isready_ ;
      public boolean hasIsready() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getIsready() {
        return isready_;
      }
      public Builder setIsready(int value) {
        bitField0_ |= 0x00000001;
        isready_ = value;
        onChanged();
        return this;
      }
      public Builder clearIsready() {
        bitField0_ = (bitField0_ & ~0x00000001);
        isready_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 handcardAnimMS = 2;
      private int handcardAnimMS_ ;
      public boolean hasHandcardAnimMS() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getHandcardAnimMS() {
        return handcardAnimMS_;
      }
      public Builder setHandcardAnimMS(int value) {
        bitField0_ |= 0x00000002;
        handcardAnimMS_ = value;
        onChanged();
        return this;
      }
      public Builder clearHandcardAnimMS() {
        bitField0_ = (bitField0_ & ~0x00000002);
        handcardAnimMS_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.Ready)
    }
    
    static {
      defaultInstance = new Ready(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.Ready)
  }
  
  public interface ReadyReplyOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 ret = 1;
    boolean hasRet();
    int getRet();
    
    // optional uint32 retcode = 2;
    boolean hasRetcode();
    int getRetcode();
    
    // optional string retmsg = 3;
    boolean hasRetmsg();
    String getRetmsg();
    
    // repeated uint32 seats = 4;
    java.util.List<java.lang.Integer> getSeatsList();
    int getSeatsCount();
    int getSeats(int index);
  }
  public static final class ReadyReply extends
      com.google.protobuf.GeneratedMessage
      implements ReadyReplyOrBuilder {
    // Use ReadyReply.newBuilder() to construct.
    private ReadyReply(Builder builder) {
      super(builder);
    }
    private ReadyReply(boolean noInit) {}
    
    private static final ReadyReply defaultInstance;
    public static ReadyReply getDefaultInstance() {
      return defaultInstance;
    }
    
    public ReadyReply getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_ReadyReply_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_ReadyReply_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 ret = 1;
    public static final int RET_FIELD_NUMBER = 1;
    private int ret_;
    public boolean hasRet() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRet() {
      return ret_;
    }
    
    // optional uint32 retcode = 2;
    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retcode_;
    public boolean hasRetcode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getRetcode() {
      return retcode_;
    }
    
    // optional string retmsg = 3;
    public static final int RETMSG_FIELD_NUMBER = 3;
    private java.lang.Object retmsg_;
    public boolean hasRetmsg() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getRetmsg() {
      java.lang.Object ref = retmsg_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          retmsg_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getRetmsgBytes() {
      java.lang.Object ref = retmsg_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        retmsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // repeated uint32 seats = 4;
    public static final int SEATS_FIELD_NUMBER = 4;
    private java.util.List<java.lang.Integer> seats_;
    public java.util.List<java.lang.Integer>
        getSeatsList() {
      return seats_;
    }
    public int getSeatsCount() {
      return seats_.size();
    }
    public int getSeats(int index) {
      return seats_.get(index);
    }
    
    private void initFields() {
      ret_ = 0;
      retcode_ = 0;
      retmsg_ = "";
      seats_ = java.util.Collections.emptyList();;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, retcode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getRetmsgBytes());
      }
      for (int i = 0; i < seats_.size(); i++) {
        output.writeUInt32(4, seats_.get(i));
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, retcode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getRetmsgBytes());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < seats_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(seats_.get(i));
        }
        size += dataSize;
        size += 1 * getSeatsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.ReadyReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ReadyReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ReadyReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ReadyReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ReadyReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ReadyReply parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ReadyReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.ReadyReply parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.ReadyReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ReadyReply parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.ReadyReply prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.ReadyReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_ReadyReply_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_ReadyReply_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.ReadyReply.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        ret_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        retcode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retmsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        seats_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.ReadyReply.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.ReadyReply getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.ReadyReply.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.ReadyReply build() {
        com.backfire.socket.socketProto.Doudizhu.ReadyReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.ReadyReply buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.ReadyReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.ReadyReply buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.ReadyReply result = new com.backfire.socket.socketProto.Doudizhu.ReadyReply(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ret_ = ret_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.retcode_ = retcode_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retmsg_ = retmsg_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          seats_ = java.util.Collections.unmodifiableList(seats_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.seats_ = seats_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.ReadyReply) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.ReadyReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.ReadyReply other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.ReadyReply.getDefaultInstance()) return this;
        if (other.hasRet()) {
          setRet(other.getRet());
        }
        if (other.hasRetcode()) {
          setRetcode(other.getRetcode());
        }
        if (other.hasRetmsg()) {
          setRetmsg(other.getRetmsg());
        }
        if (!other.seats_.isEmpty()) {
          if (seats_.isEmpty()) {
            seats_ = other.seats_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureSeatsIsMutable();
            seats_.addAll(other.seats_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ret_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retcode_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              retmsg_ = input.readBytes();
              break;
            }
            case 32: {
              ensureSeatsIsMutable();
              seats_.add(input.readUInt32());
              break;
            }
            case 34: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addSeats(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 ret = 1;
      private int ret_ ;
      public boolean hasRet() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRet() {
        return ret_;
      }
      public Builder setRet(int value) {
        bitField0_ |= 0x00000001;
        ret_ = value;
        onChanged();
        return this;
      }
      public Builder clearRet() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ret_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 retcode = 2;
      private int retcode_ ;
      public boolean hasRetcode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getRetcode() {
        return retcode_;
      }
      public Builder setRetcode(int value) {
        bitField0_ |= 0x00000002;
        retcode_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetcode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retcode_ = 0;
        onChanged();
        return this;
      }
      
      // optional string retmsg = 3;
      private java.lang.Object retmsg_ = "";
      public boolean hasRetmsg() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getRetmsg() {
        java.lang.Object ref = retmsg_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          retmsg_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setRetmsg(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retmsg_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetmsg() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retmsg_ = getDefaultInstance().getRetmsg();
        onChanged();
        return this;
      }
      void setRetmsg(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000004;
        retmsg_ = value;
        onChanged();
      }
      
      // repeated uint32 seats = 4;
      private java.util.List<java.lang.Integer> seats_ = java.util.Collections.emptyList();;
      private void ensureSeatsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          seats_ = new java.util.ArrayList<java.lang.Integer>(seats_);
          bitField0_ |= 0x00000008;
         }
      }
      public java.util.List<java.lang.Integer>
          getSeatsList() {
        return java.util.Collections.unmodifiableList(seats_);
      }
      public int getSeatsCount() {
        return seats_.size();
      }
      public int getSeats(int index) {
        return seats_.get(index);
      }
      public Builder setSeats(
          int index, int value) {
        ensureSeatsIsMutable();
        seats_.set(index, value);
        onChanged();
        return this;
      }
      public Builder addSeats(int value) {
        ensureSeatsIsMutable();
        seats_.add(value);
        onChanged();
        return this;
      }
      public Builder addAllSeats(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSeatsIsMutable();
        super.addAll(values, seats_);
        onChanged();
        return this;
      }
      public Builder clearSeats() {
        seats_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.ReadyReply)
    }
    
    static {
      defaultInstance = new ReadyReply(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.ReadyReply)
  }
  
  public interface PlayerInfoOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 seatId = 1;
    boolean hasSeatId();
    int getSeatId();
    
    // optional uint64 uid = 2;
    boolean hasUid();
    long getUid();
    
    // optional string uName = 3;
    boolean hasUName();
    String getUName();
    
    // optional string icon = 4;
    boolean hasIcon();
    String getIcon();
    
    // optional uint64 money = 5;
    boolean hasMoney();
    long getMoney();
    
    // optional uint32 level = 6;
    boolean hasLevel();
    int getLevel();
    
    // optional uint32 sex = 7;
    boolean hasSex();
    int getSex();
    
    // repeated uint32 items = 8;
    java.util.List<java.lang.Integer> getItemsList();
    int getItemsCount();
    int getItems(int index);
    
    // optional uint32 gameCount = 9;
    boolean hasGameCount();
    int getGameCount();
    
    // optional uint32 winCount = 10;
    boolean hasWinCount();
    int getWinCount();
    
    // optional uint32 dropCount = 11;
    boolean hasDropCount();
    int getDropCount();
    
    // optional uint32 runCount = 12;
    boolean hasRunCount();
    int getRunCount();
    
    // optional uint64 lottery = 13;
    boolean hasLottery();
    long getLottery();
    
    // optional string sign = 14;
    boolean hasSign();
    String getSign();
  }
  public static final class PlayerInfo extends
      com.google.protobuf.GeneratedMessage
      implements PlayerInfoOrBuilder {
    // Use PlayerInfo.newBuilder() to construct.
    private PlayerInfo(Builder builder) {
      super(builder);
    }
    private PlayerInfo(boolean noInit) {}
    
    private static final PlayerInfo defaultInstance;
    public static PlayerInfo getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayerInfo getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerInfo_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerInfo_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 seatId = 1;
    public static final int SEATID_FIELD_NUMBER = 1;
    private int seatId_;
    public boolean hasSeatId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getSeatId() {
      return seatId_;
    }
    
    // optional uint64 uid = 2;
    public static final int UID_FIELD_NUMBER = 2;
    private long uid_;
    public boolean hasUid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public long getUid() {
      return uid_;
    }
    
    // optional string uName = 3;
    public static final int UNAME_FIELD_NUMBER = 3;
    private java.lang.Object uName_;
    public boolean hasUName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getUName() {
      java.lang.Object ref = uName_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          uName_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getUNameBytes() {
      java.lang.Object ref = uName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        uName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional string icon = 4;
    public static final int ICON_FIELD_NUMBER = 4;
    private java.lang.Object icon_;
    public boolean hasIcon() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public String getIcon() {
      java.lang.Object ref = icon_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          icon_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getIconBytes() {
      java.lang.Object ref = icon_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        icon_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional uint64 money = 5;
    public static final int MONEY_FIELD_NUMBER = 5;
    private long money_;
    public boolean hasMoney() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public long getMoney() {
      return money_;
    }
    
    // optional uint32 level = 6;
    public static final int LEVEL_FIELD_NUMBER = 6;
    private int level_;
    public boolean hasLevel() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public int getLevel() {
      return level_;
    }
    
    // optional uint32 sex = 7;
    public static final int SEX_FIELD_NUMBER = 7;
    private int sex_;
    public boolean hasSex() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    public int getSex() {
      return sex_;
    }
    
    // repeated uint32 items = 8;
    public static final int ITEMS_FIELD_NUMBER = 8;
    private java.util.List<java.lang.Integer> items_;
    public java.util.List<java.lang.Integer>
        getItemsList() {
      return items_;
    }
    public int getItemsCount() {
      return items_.size();
    }
    public int getItems(int index) {
      return items_.get(index);
    }
    
    // optional uint32 gameCount = 9;
    public static final int GAMECOUNT_FIELD_NUMBER = 9;
    private int gameCount_;
    public boolean hasGameCount() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    public int getGameCount() {
      return gameCount_;
    }
    
    // optional uint32 winCount = 10;
    public static final int WINCOUNT_FIELD_NUMBER = 10;
    private int winCount_;
    public boolean hasWinCount() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    public int getWinCount() {
      return winCount_;
    }
    
    // optional uint32 dropCount = 11;
    public static final int DROPCOUNT_FIELD_NUMBER = 11;
    private int dropCount_;
    public boolean hasDropCount() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    public int getDropCount() {
      return dropCount_;
    }
    
    // optional uint32 runCount = 12;
    public static final int RUNCOUNT_FIELD_NUMBER = 12;
    private int runCount_;
    public boolean hasRunCount() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    public int getRunCount() {
      return runCount_;
    }
    
    // optional uint64 lottery = 13;
    public static final int LOTTERY_FIELD_NUMBER = 13;
    private long lottery_;
    public boolean hasLottery() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    public long getLottery() {
      return lottery_;
    }
    
    // optional string sign = 14;
    public static final int SIGN_FIELD_NUMBER = 14;
    private java.lang.Object sign_;
    public boolean hasSign() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    public String getSign() {
      java.lang.Object ref = sign_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          sign_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getSignBytes() {
      java.lang.Object ref = sign_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        sign_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      seatId_ = 0;
      uid_ = 0L;
      uName_ = "";
      icon_ = "";
      money_ = 0L;
      level_ = 0;
      sex_ = 0;
      items_ = java.util.Collections.emptyList();;
      gameCount_ = 0;
      winCount_ = 0;
      dropCount_ = 0;
      runCount_ = 0;
      lottery_ = 0L;
      sign_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, seatId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, uid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getUNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getIconBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt64(5, money_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, level_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, sex_);
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeUInt32(8, items_.get(i));
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(9, gameCount_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeUInt32(10, winCount_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeUInt32(11, dropCount_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeUInt32(12, runCount_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeUInt64(13, lottery_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeBytes(14, getSignBytes());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, seatId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, uid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getUNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getIconBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, money_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, level_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, sex_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < items_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(items_.get(i));
        }
        size += dataSize;
        size += 1 * getItemsList().size();
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, gameCount_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, winCount_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, dropCount_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, runCount_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(13, lottery_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(14, getSignBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.PlayerInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.PlayerInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.PlayerInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerInfo_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerInfo_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.PlayerInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        seatId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        uName_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        icon_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        money_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        level_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        sex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        items_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000080);
        gameCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        winCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        dropCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        runCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        lottery_ = 0L;
        bitField0_ = (bitField0_ & ~0x00001000);
        sign_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.PlayerInfo.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerInfo getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.PlayerInfo.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerInfo build() {
        com.backfire.socket.socketProto.Doudizhu.PlayerInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.PlayerInfo buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.PlayerInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerInfo buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.PlayerInfo result = new com.backfire.socket.socketProto.Doudizhu.PlayerInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.seatId_ = seatId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.uName_ = uName_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.icon_ = icon_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.money_ = money_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.level_ = level_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.sex_ = sex_;
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          items_ = java.util.Collections.unmodifiableList(items_);
          bitField0_ = (bitField0_ & ~0x00000080);
        }
        result.items_ = items_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000080;
        }
        result.gameCount_ = gameCount_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000100;
        }
        result.winCount_ = winCount_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000200;
        }
        result.dropCount_ = dropCount_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000400;
        }
        result.runCount_ = runCount_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00000800;
        }
        result.lottery_ = lottery_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.sign_ = sign_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.PlayerInfo) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.PlayerInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.PlayerInfo other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.PlayerInfo.getDefaultInstance()) return this;
        if (other.hasSeatId()) {
          setSeatId(other.getSeatId());
        }
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        if (other.hasUName()) {
          setUName(other.getUName());
        }
        if (other.hasIcon()) {
          setIcon(other.getIcon());
        }
        if (other.hasMoney()) {
          setMoney(other.getMoney());
        }
        if (other.hasLevel()) {
          setLevel(other.getLevel());
        }
        if (other.hasSex()) {
          setSex(other.getSex());
        }
        if (!other.items_.isEmpty()) {
          if (items_.isEmpty()) {
            items_ = other.items_;
            bitField0_ = (bitField0_ & ~0x00000080);
          } else {
            ensureItemsIsMutable();
            items_.addAll(other.items_);
          }
          onChanged();
        }
        if (other.hasGameCount()) {
          setGameCount(other.getGameCount());
        }
        if (other.hasWinCount()) {
          setWinCount(other.getWinCount());
        }
        if (other.hasDropCount()) {
          setDropCount(other.getDropCount());
        }
        if (other.hasRunCount()) {
          setRunCount(other.getRunCount());
        }
        if (other.hasLottery()) {
          setLottery(other.getLottery());
        }
        if (other.hasSign()) {
          setSign(other.getSign());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              seatId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              uid_ = input.readUInt64();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              uName_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              icon_ = input.readBytes();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              money_ = input.readUInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              level_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              sex_ = input.readUInt32();
              break;
            }
            case 64: {
              ensureItemsIsMutable();
              items_.add(input.readUInt32());
              break;
            }
            case 66: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addItems(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              gameCount_ = input.readUInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              winCount_ = input.readUInt32();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              dropCount_ = input.readUInt32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              runCount_ = input.readUInt32();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              lottery_ = input.readUInt64();
              break;
            }
            case 114: {
              bitField0_ |= 0x00002000;
              sign_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 seatId = 1;
      private int seatId_ ;
      public boolean hasSeatId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getSeatId() {
        return seatId_;
      }
      public Builder setSeatId(int value) {
        bitField0_ |= 0x00000001;
        seatId_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seatId_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint64 uid = 2;
      private long uid_ ;
      public boolean hasUid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public long getUid() {
        return uid_;
      }
      public Builder setUid(long value) {
        bitField0_ |= 0x00000002;
        uid_ = value;
        onChanged();
        return this;
      }
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        uid_ = 0L;
        onChanged();
        return this;
      }
      
      // optional string uName = 3;
      private java.lang.Object uName_ = "";
      public boolean hasUName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getUName() {
        java.lang.Object ref = uName_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          uName_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setUName(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        uName_ = value;
        onChanged();
        return this;
      }
      public Builder clearUName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        uName_ = getDefaultInstance().getUName();
        onChanged();
        return this;
      }
      void setUName(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000004;
        uName_ = value;
        onChanged();
      }
      
      // optional string icon = 4;
      private java.lang.Object icon_ = "";
      public boolean hasIcon() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public String getIcon() {
        java.lang.Object ref = icon_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          icon_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setIcon(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        icon_ = value;
        onChanged();
        return this;
      }
      public Builder clearIcon() {
        bitField0_ = (bitField0_ & ~0x00000008);
        icon_ = getDefaultInstance().getIcon();
        onChanged();
        return this;
      }
      void setIcon(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000008;
        icon_ = value;
        onChanged();
      }
      
      // optional uint64 money = 5;
      private long money_ ;
      public boolean hasMoney() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public long getMoney() {
        return money_;
      }
      public Builder setMoney(long value) {
        bitField0_ |= 0x00000010;
        money_ = value;
        onChanged();
        return this;
      }
      public Builder clearMoney() {
        bitField0_ = (bitField0_ & ~0x00000010);
        money_ = 0L;
        onChanged();
        return this;
      }
      
      // optional uint32 level = 6;
      private int level_ ;
      public boolean hasLevel() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public int getLevel() {
        return level_;
      }
      public Builder setLevel(int value) {
        bitField0_ |= 0x00000020;
        level_ = value;
        onChanged();
        return this;
      }
      public Builder clearLevel() {
        bitField0_ = (bitField0_ & ~0x00000020);
        level_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 sex = 7;
      private int sex_ ;
      public boolean hasSex() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public int getSex() {
        return sex_;
      }
      public Builder setSex(int value) {
        bitField0_ |= 0x00000040;
        sex_ = value;
        onChanged();
        return this;
      }
      public Builder clearSex() {
        bitField0_ = (bitField0_ & ~0x00000040);
        sex_ = 0;
        onChanged();
        return this;
      }
      
      // repeated uint32 items = 8;
      private java.util.List<java.lang.Integer> items_ = java.util.Collections.emptyList();;
      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          items_ = new java.util.ArrayList<java.lang.Integer>(items_);
          bitField0_ |= 0x00000080;
         }
      }
      public java.util.List<java.lang.Integer>
          getItemsList() {
        return java.util.Collections.unmodifiableList(items_);
      }
      public int getItemsCount() {
        return items_.size();
      }
      public int getItems(int index) {
        return items_.get(index);
      }
      public Builder setItems(
          int index, int value) {
        ensureItemsIsMutable();
        items_.set(index, value);
        onChanged();
        return this;
      }
      public Builder addItems(int value) {
        ensureItemsIsMutable();
        items_.add(value);
        onChanged();
        return this;
      }
      public Builder addAllItems(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureItemsIsMutable();
        super.addAll(values, items_);
        onChanged();
        return this;
      }
      public Builder clearItems() {
        items_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      
      // optional uint32 gameCount = 9;
      private int gameCount_ ;
      public boolean hasGameCount() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public int getGameCount() {
        return gameCount_;
      }
      public Builder setGameCount(int value) {
        bitField0_ |= 0x00000100;
        gameCount_ = value;
        onChanged();
        return this;
      }
      public Builder clearGameCount() {
        bitField0_ = (bitField0_ & ~0x00000100);
        gameCount_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 winCount = 10;
      private int winCount_ ;
      public boolean hasWinCount() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      public int getWinCount() {
        return winCount_;
      }
      public Builder setWinCount(int value) {
        bitField0_ |= 0x00000200;
        winCount_ = value;
        onChanged();
        return this;
      }
      public Builder clearWinCount() {
        bitField0_ = (bitField0_ & ~0x00000200);
        winCount_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 dropCount = 11;
      private int dropCount_ ;
      public boolean hasDropCount() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      public int getDropCount() {
        return dropCount_;
      }
      public Builder setDropCount(int value) {
        bitField0_ |= 0x00000400;
        dropCount_ = value;
        onChanged();
        return this;
      }
      public Builder clearDropCount() {
        bitField0_ = (bitField0_ & ~0x00000400);
        dropCount_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 runCount = 12;
      private int runCount_ ;
      public boolean hasRunCount() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      public int getRunCount() {
        return runCount_;
      }
      public Builder setRunCount(int value) {
        bitField0_ |= 0x00000800;
        runCount_ = value;
        onChanged();
        return this;
      }
      public Builder clearRunCount() {
        bitField0_ = (bitField0_ & ~0x00000800);
        runCount_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint64 lottery = 13;
      private long lottery_ ;
      public boolean hasLottery() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      public long getLottery() {
        return lottery_;
      }
      public Builder setLottery(long value) {
        bitField0_ |= 0x00001000;
        lottery_ = value;
        onChanged();
        return this;
      }
      public Builder clearLottery() {
        bitField0_ = (bitField0_ & ~0x00001000);
        lottery_ = 0L;
        onChanged();
        return this;
      }
      
      // optional string sign = 14;
      private java.lang.Object sign_ = "";
      public boolean hasSign() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      public String getSign() {
        java.lang.Object ref = sign_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          sign_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setSign(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        sign_ = value;
        onChanged();
        return this;
      }
      public Builder clearSign() {
        bitField0_ = (bitField0_ & ~0x00002000);
        sign_ = getDefaultInstance().getSign();
        onChanged();
        return this;
      }
      void setSign(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00002000;
        sign_ = value;
        onChanged();
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.PlayerInfo)
    }
    
    static {
      defaultInstance = new PlayerInfo(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.PlayerInfo)
  }
  
  public interface BroadcastPlayerInfoOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // repeated .com.backfire.socket.socketProto.PlayerInfo seatList = 1;
    java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerInfo> 
        getSeatListList();
    com.backfire.socket.socketProto.Doudizhu.PlayerInfo getSeatList(int index);
    int getSeatListCount();
    java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.PlayerInfoOrBuilder> 
        getSeatListOrBuilderList();
    com.backfire.socket.socketProto.Doudizhu.PlayerInfoOrBuilder getSeatListOrBuilder(
        int index);
  }
  public static final class BroadcastPlayerInfo extends
      com.google.protobuf.GeneratedMessage
      implements BroadcastPlayerInfoOrBuilder {
    // Use BroadcastPlayerInfo.newBuilder() to construct.
    private BroadcastPlayerInfo(Builder builder) {
      super(builder);
    }
    private BroadcastPlayerInfo(boolean noInit) {}
    
    private static final BroadcastPlayerInfo defaultInstance;
    public static BroadcastPlayerInfo getDefaultInstance() {
      return defaultInstance;
    }
    
    public BroadcastPlayerInfo getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastPlayerInfo_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastPlayerInfo_fieldAccessorTable;
    }
    
    // repeated .com.backfire.socket.socketProto.PlayerInfo seatList = 1;
    public static final int SEATLIST_FIELD_NUMBER = 1;
    private java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerInfo> seatList_;
    public java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerInfo> getSeatListList() {
      return seatList_;
    }
    public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.PlayerInfoOrBuilder> 
        getSeatListOrBuilderList() {
      return seatList_;
    }
    public int getSeatListCount() {
      return seatList_.size();
    }
    public com.backfire.socket.socketProto.Doudizhu.PlayerInfo getSeatList(int index) {
      return seatList_.get(index);
    }
    public com.backfire.socket.socketProto.Doudizhu.PlayerInfoOrBuilder getSeatListOrBuilder(
        int index) {
      return seatList_.get(index);
    }
    
    private void initFields() {
      seatList_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < seatList_.size(); i++) {
        output.writeMessage(1, seatList_.get(i));
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      for (int i = 0; i < seatList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, seatList_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastPlayerInfo_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastPlayerInfo_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getSeatListFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        if (seatListBuilder_ == null) {
          seatList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          seatListBuilder_.clear();
        }
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo build() {
        com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo result = new com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo(this);
        int from_bitField0_ = bitField0_;
        if (seatListBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            seatList_ = java.util.Collections.unmodifiableList(seatList_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.seatList_ = seatList_;
        } else {
          result.seatList_ = seatListBuilder_.build();
        }
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.getDefaultInstance()) return this;
        if (seatListBuilder_ == null) {
          if (!other.seatList_.isEmpty()) {
            if (seatList_.isEmpty()) {
              seatList_ = other.seatList_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSeatListIsMutable();
              seatList_.addAll(other.seatList_);
            }
            onChanged();
          }
        } else {
          if (!other.seatList_.isEmpty()) {
            if (seatListBuilder_.isEmpty()) {
              seatListBuilder_.dispose();
              seatListBuilder_ = null;
              seatList_ = other.seatList_;
              bitField0_ = (bitField0_ & ~0x00000001);
              seatListBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSeatListFieldBuilder() : null;
            } else {
              seatListBuilder_.addAllMessages(other.seatList_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 10: {
              com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.PlayerInfo.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addSeatList(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // repeated .com.backfire.socket.socketProto.PlayerInfo seatList = 1;
      private java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerInfo> seatList_ =
        java.util.Collections.emptyList();
      private void ensureSeatListIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          seatList_ = new java.util.ArrayList<com.backfire.socket.socketProto.Doudizhu.PlayerInfo>(seatList_);
          bitField0_ |= 0x00000001;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.PlayerInfo, com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder, com.backfire.socket.socketProto.Doudizhu.PlayerInfoOrBuilder> seatListBuilder_;
      
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerInfo> getSeatListList() {
        if (seatListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(seatList_);
        } else {
          return seatListBuilder_.getMessageList();
        }
      }
      public int getSeatListCount() {
        if (seatListBuilder_ == null) {
          return seatList_.size();
        } else {
          return seatListBuilder_.getCount();
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.PlayerInfo getSeatList(int index) {
        if (seatListBuilder_ == null) {
          return seatList_.get(index);
        } else {
          return seatListBuilder_.getMessage(index);
        }
      }
      public Builder setSeatList(
          int index, com.backfire.socket.socketProto.Doudizhu.PlayerInfo value) {
        if (seatListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSeatListIsMutable();
          seatList_.set(index, value);
          onChanged();
        } else {
          seatListBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setSeatList(
          int index, com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder builderForValue) {
        if (seatListBuilder_ == null) {
          ensureSeatListIsMutable();
          seatList_.set(index, builderForValue.build());
          onChanged();
        } else {
          seatListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addSeatList(com.backfire.socket.socketProto.Doudizhu.PlayerInfo value) {
        if (seatListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSeatListIsMutable();
          seatList_.add(value);
          onChanged();
        } else {
          seatListBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addSeatList(
          int index, com.backfire.socket.socketProto.Doudizhu.PlayerInfo value) {
        if (seatListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSeatListIsMutable();
          seatList_.add(index, value);
          onChanged();
        } else {
          seatListBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addSeatList(
          com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder builderForValue) {
        if (seatListBuilder_ == null) {
          ensureSeatListIsMutable();
          seatList_.add(builderForValue.build());
          onChanged();
        } else {
          seatListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addSeatList(
          int index, com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder builderForValue) {
        if (seatListBuilder_ == null) {
          ensureSeatListIsMutable();
          seatList_.add(index, builderForValue.build());
          onChanged();
        } else {
          seatListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllSeatList(
          java.lang.Iterable<? extends com.backfire.socket.socketProto.Doudizhu.PlayerInfo> values) {
        if (seatListBuilder_ == null) {
          ensureSeatListIsMutable();
          super.addAll(values, seatList_);
          onChanged();
        } else {
          seatListBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearSeatList() {
        if (seatListBuilder_ == null) {
          seatList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          seatListBuilder_.clear();
        }
        return this;
      }
      public Builder removeSeatList(int index) {
        if (seatListBuilder_ == null) {
          ensureSeatListIsMutable();
          seatList_.remove(index);
          onChanged();
        } else {
          seatListBuilder_.remove(index);
        }
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder getSeatListBuilder(
          int index) {
        return getSeatListFieldBuilder().getBuilder(index);
      }
      public com.backfire.socket.socketProto.Doudizhu.PlayerInfoOrBuilder getSeatListOrBuilder(
          int index) {
        if (seatListBuilder_ == null) {
          return seatList_.get(index);  } else {
          return seatListBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.PlayerInfoOrBuilder> 
           getSeatListOrBuilderList() {
        if (seatListBuilder_ != null) {
          return seatListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(seatList_);
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder addSeatListBuilder() {
        return getSeatListFieldBuilder().addBuilder(
            com.backfire.socket.socketProto.Doudizhu.PlayerInfo.getDefaultInstance());
      }
      public com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder addSeatListBuilder(
          int index) {
        return getSeatListFieldBuilder().addBuilder(
            index, com.backfire.socket.socketProto.Doudizhu.PlayerInfo.getDefaultInstance());
      }
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder> 
           getSeatListBuilderList() {
        return getSeatListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.PlayerInfo, com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder, com.backfire.socket.socketProto.Doudizhu.PlayerInfoOrBuilder> 
          getSeatListFieldBuilder() {
        if (seatListBuilder_ == null) {
          seatListBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.PlayerInfo, com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder, com.backfire.socket.socketProto.Doudizhu.PlayerInfoOrBuilder>(
                  seatList_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          seatList_ = null;
        }
        return seatListBuilder_;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.BroadcastPlayerInfo)
    }
    
    static {
      defaultInstance = new BroadcastPlayerInfo(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.BroadcastPlayerInfo)
  }
  
  public interface RebindReqOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint64 uid = 1;
    boolean hasUid();
    long getUid();
    
    // optional string session = 2;
    boolean hasSession();
    String getSession();
  }
  public static final class RebindReq extends
      com.google.protobuf.GeneratedMessage
      implements RebindReqOrBuilder {
    // Use RebindReq.newBuilder() to construct.
    private RebindReq(Builder builder) {
      super(builder);
    }
    private RebindReq(boolean noInit) {}
    
    private static final RebindReq defaultInstance;
    public static RebindReq getDefaultInstance() {
      return defaultInstance;
    }
    
    public RebindReq getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_RebindReq_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_RebindReq_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint64 uid = 1;
    public static final int UID_FIELD_NUMBER = 1;
    private long uid_;
    public boolean hasUid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public long getUid() {
      return uid_;
    }
    
    // optional string session = 2;
    public static final int SESSION_FIELD_NUMBER = 2;
    private java.lang.Object session_;
    public boolean hasSession() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public String getSession() {
      java.lang.Object ref = session_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          session_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getSessionBytes() {
      java.lang.Object ref = session_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        session_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      uid_ = 0L;
      session_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getSessionBytes());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getSessionBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.RebindReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.RebindReq prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.RebindReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_RebindReq_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_RebindReq_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.RebindReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        uid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        session_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.RebindReq.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.RebindReq getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.RebindReq.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.RebindReq build() {
        com.backfire.socket.socketProto.Doudizhu.RebindReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.RebindReq buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.RebindReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.RebindReq buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.RebindReq result = new com.backfire.socket.socketProto.Doudizhu.RebindReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.session_ = session_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.RebindReq) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.RebindReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.RebindReq other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.RebindReq.getDefaultInstance()) return this;
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        if (other.hasSession()) {
          setSession(other.getSession());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              uid_ = input.readUInt64();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              session_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint64 uid = 1;
      private long uid_ ;
      public boolean hasUid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public long getUid() {
        return uid_;
      }
      public Builder setUid(long value) {
        bitField0_ |= 0x00000001;
        uid_ = value;
        onChanged();
        return this;
      }
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0L;
        onChanged();
        return this;
      }
      
      // optional string session = 2;
      private java.lang.Object session_ = "";
      public boolean hasSession() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public String getSession() {
        java.lang.Object ref = session_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          session_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setSession(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        session_ = value;
        onChanged();
        return this;
      }
      public Builder clearSession() {
        bitField0_ = (bitField0_ & ~0x00000002);
        session_ = getDefaultInstance().getSession();
        onChanged();
        return this;
      }
      void setSession(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000002;
        session_ = value;
        onChanged();
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.RebindReq)
    }
    
    static {
      defaultInstance = new RebindReq(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.RebindReq)
  }
  
  public interface RebindRpyOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 ret = 1;
    boolean hasRet();
    int getRet();
    
    // optional uint32 retcode = 2;
    boolean hasRetcode();
    int getRetcode();
    
    // optional string retmsg = 3;
    boolean hasRetmsg();
    String getRetmsg();
    
    // optional .com.backfire.socket.socketProto.GameStart gamestart = 4;
    boolean hasGamestart();
    com.backfire.socket.socketProto.Doudizhu.GameStart getGamestart();
    com.backfire.socket.socketProto.Doudizhu.GameStartOrBuilder getGamestartOrBuilder();
    
    // optional .com.backfire.socket.socketProto.QiangdizhuRpy qdzRpy = 5;
    boolean hasQdzRpy();
    com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy getQdzRpy();
    com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpyOrBuilder getQdzRpyOrBuilder();
    
    // optional .com.backfire.socket.socketProto.BroadcastPlayerAction playerAction = 6;
    boolean hasPlayerAction();
    com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction getPlayerAction();
    com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerActionOrBuilder getPlayerActionOrBuilder();
    
    // optional .com.backfire.socket.socketProto.BroadcastPlayerInfo playerinfo = 7;
    boolean hasPlayerinfo();
    com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo getPlayerinfo();
    com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfoOrBuilder getPlayerinfoOrBuilder();
    
    // optional .com.backfire.socket.socketProto.HandCard handcard = 8;
    boolean hasHandcard();
    com.backfire.socket.socketProto.Doudizhu.HandCard getHandcard();
    com.backfire.socket.socketProto.Doudizhu.HandCardOrBuilder getHandcardOrBuilder();
    
    // optional uint32 seatid = 9;
    boolean hasSeatid();
    int getSeatid();
    
    // repeated uint32 playerCardsRemain = 10;
    java.util.List<java.lang.Integer> getPlayerCardsRemainList();
    int getPlayerCardsRemainCount();
    int getPlayerCardsRemain(int index);
    
    // repeated .com.backfire.socket.socketProto.PlayerDepositRpy deposited = 11;
    java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy> 
        getDepositedList();
    com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy getDeposited(int index);
    int getDepositedCount();
    java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpyOrBuilder> 
        getDepositedOrBuilderList();
    com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpyOrBuilder getDepositedOrBuilder(
        int index);
    
    // optional uint32 roomType = 12;
    boolean hasRoomType();
    int getRoomType();
    
    // repeated .com.backfire.socket.socketProto.BroadcastLaiziCard laizi = 13;
    java.util.List<com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard> 
        getLaiziList();
    com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard getLaizi(int index);
    int getLaiziCount();
    java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCardOrBuilder> 
        getLaiziOrBuilderList();
    com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCardOrBuilder getLaiziOrBuilder(
        int index);
    
    // optional .com.backfire.socket.socketProto.SeatRpy seatInfo = 14;
    boolean hasSeatInfo();
    com.backfire.socket.socketProto.Doudizhu.SeatRpy getSeatInfo();
    com.backfire.socket.socketProto.Doudizhu.SeatRpyOrBuilder getSeatInfoOrBuilder();
  }
  public static final class RebindRpy extends
      com.google.protobuf.GeneratedMessage
      implements RebindRpyOrBuilder {
    // Use RebindRpy.newBuilder() to construct.
    private RebindRpy(Builder builder) {
      super(builder);
    }
    private RebindRpy(boolean noInit) {}
    
    private static final RebindRpy defaultInstance;
    public static RebindRpy getDefaultInstance() {
      return defaultInstance;
    }
    
    public RebindRpy getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_RebindRpy_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_RebindRpy_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 ret = 1;
    public static final int RET_FIELD_NUMBER = 1;
    private int ret_;
    public boolean hasRet() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRet() {
      return ret_;
    }
    
    // optional uint32 retcode = 2;
    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retcode_;
    public boolean hasRetcode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getRetcode() {
      return retcode_;
    }
    
    // optional string retmsg = 3;
    public static final int RETMSG_FIELD_NUMBER = 3;
    private java.lang.Object retmsg_;
    public boolean hasRetmsg() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getRetmsg() {
      java.lang.Object ref = retmsg_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          retmsg_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getRetmsgBytes() {
      java.lang.Object ref = retmsg_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        retmsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional .com.backfire.socket.socketProto.GameStart gamestart = 4;
    public static final int GAMESTART_FIELD_NUMBER = 4;
    private com.backfire.socket.socketProto.Doudizhu.GameStart gamestart_;
    public boolean hasGamestart() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public com.backfire.socket.socketProto.Doudizhu.GameStart getGamestart() {
      return gamestart_;
    }
    public com.backfire.socket.socketProto.Doudizhu.GameStartOrBuilder getGamestartOrBuilder() {
      return gamestart_;
    }
    
    // optional .com.backfire.socket.socketProto.QiangdizhuRpy qdzRpy = 5;
    public static final int QDZRPY_FIELD_NUMBER = 5;
    private com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy qdzRpy_;
    public boolean hasQdzRpy() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy getQdzRpy() {
      return qdzRpy_;
    }
    public com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpyOrBuilder getQdzRpyOrBuilder() {
      return qdzRpy_;
    }
    
    // optional .com.backfire.socket.socketProto.BroadcastPlayerAction playerAction = 6;
    public static final int PLAYERACTION_FIELD_NUMBER = 6;
    private com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction playerAction_;
    public boolean hasPlayerAction() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction getPlayerAction() {
      return playerAction_;
    }
    public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerActionOrBuilder getPlayerActionOrBuilder() {
      return playerAction_;
    }
    
    // optional .com.backfire.socket.socketProto.BroadcastPlayerInfo playerinfo = 7;
    public static final int PLAYERINFO_FIELD_NUMBER = 7;
    private com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo playerinfo_;
    public boolean hasPlayerinfo() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo getPlayerinfo() {
      return playerinfo_;
    }
    public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfoOrBuilder getPlayerinfoOrBuilder() {
      return playerinfo_;
    }
    
    // optional .com.backfire.socket.socketProto.HandCard handcard = 8;
    public static final int HANDCARD_FIELD_NUMBER = 8;
    private com.backfire.socket.socketProto.Doudizhu.HandCard handcard_;
    public boolean hasHandcard() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    public com.backfire.socket.socketProto.Doudizhu.HandCard getHandcard() {
      return handcard_;
    }
    public com.backfire.socket.socketProto.Doudizhu.HandCardOrBuilder getHandcardOrBuilder() {
      return handcard_;
    }
    
    // optional uint32 seatid = 9;
    public static final int SEATID_FIELD_NUMBER = 9;
    private int seatid_;
    public boolean hasSeatid() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    public int getSeatid() {
      return seatid_;
    }
    
    // repeated uint32 playerCardsRemain = 10;
    public static final int PLAYERCARDSREMAIN_FIELD_NUMBER = 10;
    private java.util.List<java.lang.Integer> playerCardsRemain_;
    public java.util.List<java.lang.Integer>
        getPlayerCardsRemainList() {
      return playerCardsRemain_;
    }
    public int getPlayerCardsRemainCount() {
      return playerCardsRemain_.size();
    }
    public int getPlayerCardsRemain(int index) {
      return playerCardsRemain_.get(index);
    }
    
    // repeated .com.backfire.socket.socketProto.PlayerDepositRpy deposited = 11;
    public static final int DEPOSITED_FIELD_NUMBER = 11;
    private java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy> deposited_;
    public java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy> getDepositedList() {
      return deposited_;
    }
    public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpyOrBuilder> 
        getDepositedOrBuilderList() {
      return deposited_;
    }
    public int getDepositedCount() {
      return deposited_.size();
    }
    public com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy getDeposited(int index) {
      return deposited_.get(index);
    }
    public com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpyOrBuilder getDepositedOrBuilder(
        int index) {
      return deposited_.get(index);
    }
    
    // optional uint32 roomType = 12;
    public static final int ROOMTYPE_FIELD_NUMBER = 12;
    private int roomType_;
    public boolean hasRoomType() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    public int getRoomType() {
      return roomType_;
    }
    
    // repeated .com.backfire.socket.socketProto.BroadcastLaiziCard laizi = 13;
    public static final int LAIZI_FIELD_NUMBER = 13;
    private java.util.List<com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard> laizi_;
    public java.util.List<com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard> getLaiziList() {
      return laizi_;
    }
    public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCardOrBuilder> 
        getLaiziOrBuilderList() {
      return laizi_;
    }
    public int getLaiziCount() {
      return laizi_.size();
    }
    public com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard getLaizi(int index) {
      return laizi_.get(index);
    }
    public com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCardOrBuilder getLaiziOrBuilder(
        int index) {
      return laizi_.get(index);
    }
    
    // optional .com.backfire.socket.socketProto.SeatRpy seatInfo = 14;
    public static final int SEATINFO_FIELD_NUMBER = 14;
    private com.backfire.socket.socketProto.Doudizhu.SeatRpy seatInfo_;
    public boolean hasSeatInfo() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    public com.backfire.socket.socketProto.Doudizhu.SeatRpy getSeatInfo() {
      return seatInfo_;
    }
    public com.backfire.socket.socketProto.Doudizhu.SeatRpyOrBuilder getSeatInfoOrBuilder() {
      return seatInfo_;
    }
    
    private void initFields() {
      ret_ = 0;
      retcode_ = 0;
      retmsg_ = "";
      gamestart_ = com.backfire.socket.socketProto.Doudizhu.GameStart.getDefaultInstance();
      qdzRpy_ = com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.getDefaultInstance();
      playerAction_ = com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.getDefaultInstance();
      playerinfo_ = com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.getDefaultInstance();
      handcard_ = com.backfire.socket.socketProto.Doudizhu.HandCard.getDefaultInstance();
      seatid_ = 0;
      playerCardsRemain_ = java.util.Collections.emptyList();;
      deposited_ = java.util.Collections.emptyList();
      roomType_ = 0;
      laizi_ = java.util.Collections.emptyList();
      seatInfo_ = com.backfire.socket.socketProto.Doudizhu.SeatRpy.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, retcode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getRetmsgBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, gamestart_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, qdzRpy_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, playerAction_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, playerinfo_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, handcard_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeUInt32(9, seatid_);
      }
      for (int i = 0; i < playerCardsRemain_.size(); i++) {
        output.writeUInt32(10, playerCardsRemain_.get(i));
      }
      for (int i = 0; i < deposited_.size(); i++) {
        output.writeMessage(11, deposited_.get(i));
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeUInt32(12, roomType_);
      }
      for (int i = 0; i < laizi_.size(); i++) {
        output.writeMessage(13, laizi_.get(i));
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(14, seatInfo_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, retcode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getRetmsgBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, gamestart_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, qdzRpy_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, playerAction_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, playerinfo_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, handcard_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, seatid_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < playerCardsRemain_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(playerCardsRemain_.get(i));
        }
        size += dataSize;
        size += 1 * getPlayerCardsRemainList().size();
      }
      for (int i = 0; i < deposited_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, deposited_.get(i));
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, roomType_);
      }
      for (int i = 0; i < laizi_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, laizi_.get(i));
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, seatInfo_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.RebindRpy parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindRpy parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindRpy parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindRpy parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindRpy parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindRpy parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindRpy parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindRpy parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindRpy parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.RebindRpy parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.RebindRpy prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.RebindRpyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_RebindRpy_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_RebindRpy_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.RebindRpy.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getGamestartFieldBuilder();
          getQdzRpyFieldBuilder();
          getPlayerActionFieldBuilder();
          getPlayerinfoFieldBuilder();
          getHandcardFieldBuilder();
          getDepositedFieldBuilder();
          getLaiziFieldBuilder();
          getSeatInfoFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        ret_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        retcode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retmsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (gamestartBuilder_ == null) {
          gamestart_ = com.backfire.socket.socketProto.Doudizhu.GameStart.getDefaultInstance();
        } else {
          gamestartBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (qdzRpyBuilder_ == null) {
          qdzRpy_ = com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.getDefaultInstance();
        } else {
          qdzRpyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (playerActionBuilder_ == null) {
          playerAction_ = com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.getDefaultInstance();
        } else {
          playerActionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (playerinfoBuilder_ == null) {
          playerinfo_ = com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.getDefaultInstance();
        } else {
          playerinfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (handcardBuilder_ == null) {
          handcard_ = com.backfire.socket.socketProto.Doudizhu.HandCard.getDefaultInstance();
        } else {
          handcardBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        seatid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        playerCardsRemain_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000200);
        if (depositedBuilder_ == null) {
          deposited_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000400);
        } else {
          depositedBuilder_.clear();
        }
        roomType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        if (laiziBuilder_ == null) {
          laizi_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00001000);
        } else {
          laiziBuilder_.clear();
        }
        if (seatInfoBuilder_ == null) {
          seatInfo_ = com.backfire.socket.socketProto.Doudizhu.SeatRpy.getDefaultInstance();
        } else {
          seatInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.RebindRpy.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.RebindRpy getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.RebindRpy.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.RebindRpy build() {
        com.backfire.socket.socketProto.Doudizhu.RebindRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.RebindRpy buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.RebindRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.RebindRpy buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.RebindRpy result = new com.backfire.socket.socketProto.Doudizhu.RebindRpy(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ret_ = ret_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.retcode_ = retcode_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retmsg_ = retmsg_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (gamestartBuilder_ == null) {
          result.gamestart_ = gamestart_;
        } else {
          result.gamestart_ = gamestartBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (qdzRpyBuilder_ == null) {
          result.qdzRpy_ = qdzRpy_;
        } else {
          result.qdzRpy_ = qdzRpyBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (playerActionBuilder_ == null) {
          result.playerAction_ = playerAction_;
        } else {
          result.playerAction_ = playerActionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (playerinfoBuilder_ == null) {
          result.playerinfo_ = playerinfo_;
        } else {
          result.playerinfo_ = playerinfoBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (handcardBuilder_ == null) {
          result.handcard_ = handcard_;
        } else {
          result.handcard_ = handcardBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.seatid_ = seatid_;
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          playerCardsRemain_ = java.util.Collections.unmodifiableList(playerCardsRemain_);
          bitField0_ = (bitField0_ & ~0x00000200);
        }
        result.playerCardsRemain_ = playerCardsRemain_;
        if (depositedBuilder_ == null) {
          if (((bitField0_ & 0x00000400) == 0x00000400)) {
            deposited_ = java.util.Collections.unmodifiableList(deposited_);
            bitField0_ = (bitField0_ & ~0x00000400);
          }
          result.deposited_ = deposited_;
        } else {
          result.deposited_ = depositedBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000200;
        }
        result.roomType_ = roomType_;
        if (laiziBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000)) {
            laizi_ = java.util.Collections.unmodifiableList(laizi_);
            bitField0_ = (bitField0_ & ~0x00001000);
          }
          result.laizi_ = laizi_;
        } else {
          result.laizi_ = laiziBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00000400;
        }
        if (seatInfoBuilder_ == null) {
          result.seatInfo_ = seatInfo_;
        } else {
          result.seatInfo_ = seatInfoBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.RebindRpy) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.RebindRpy)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.RebindRpy other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.RebindRpy.getDefaultInstance()) return this;
        if (other.hasRet()) {
          setRet(other.getRet());
        }
        if (other.hasRetcode()) {
          setRetcode(other.getRetcode());
        }
        if (other.hasRetmsg()) {
          setRetmsg(other.getRetmsg());
        }
        if (other.hasGamestart()) {
          mergeGamestart(other.getGamestart());
        }
        if (other.hasQdzRpy()) {
          mergeQdzRpy(other.getQdzRpy());
        }
        if (other.hasPlayerAction()) {
          mergePlayerAction(other.getPlayerAction());
        }
        if (other.hasPlayerinfo()) {
          mergePlayerinfo(other.getPlayerinfo());
        }
        if (other.hasHandcard()) {
          mergeHandcard(other.getHandcard());
        }
        if (other.hasSeatid()) {
          setSeatid(other.getSeatid());
        }
        if (!other.playerCardsRemain_.isEmpty()) {
          if (playerCardsRemain_.isEmpty()) {
            playerCardsRemain_ = other.playerCardsRemain_;
            bitField0_ = (bitField0_ & ~0x00000200);
          } else {
            ensurePlayerCardsRemainIsMutable();
            playerCardsRemain_.addAll(other.playerCardsRemain_);
          }
          onChanged();
        }
        if (depositedBuilder_ == null) {
          if (!other.deposited_.isEmpty()) {
            if (deposited_.isEmpty()) {
              deposited_ = other.deposited_;
              bitField0_ = (bitField0_ & ~0x00000400);
            } else {
              ensureDepositedIsMutable();
              deposited_.addAll(other.deposited_);
            }
            onChanged();
          }
        } else {
          if (!other.deposited_.isEmpty()) {
            if (depositedBuilder_.isEmpty()) {
              depositedBuilder_.dispose();
              depositedBuilder_ = null;
              deposited_ = other.deposited_;
              bitField0_ = (bitField0_ & ~0x00000400);
              depositedBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getDepositedFieldBuilder() : null;
            } else {
              depositedBuilder_.addAllMessages(other.deposited_);
            }
          }
        }
        if (other.hasRoomType()) {
          setRoomType(other.getRoomType());
        }
        if (laiziBuilder_ == null) {
          if (!other.laizi_.isEmpty()) {
            if (laizi_.isEmpty()) {
              laizi_ = other.laizi_;
              bitField0_ = (bitField0_ & ~0x00001000);
            } else {
              ensureLaiziIsMutable();
              laizi_.addAll(other.laizi_);
            }
            onChanged();
          }
        } else {
          if (!other.laizi_.isEmpty()) {
            if (laiziBuilder_.isEmpty()) {
              laiziBuilder_.dispose();
              laiziBuilder_ = null;
              laizi_ = other.laizi_;
              bitField0_ = (bitField0_ & ~0x00001000);
              laiziBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getLaiziFieldBuilder() : null;
            } else {
              laiziBuilder_.addAllMessages(other.laizi_);
            }
          }
        }
        if (other.hasSeatInfo()) {
          mergeSeatInfo(other.getSeatInfo());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ret_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retcode_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              retmsg_ = input.readBytes();
              break;
            }
            case 34: {
              com.backfire.socket.socketProto.Doudizhu.GameStart.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.GameStart.newBuilder();
              if (hasGamestart()) {
                subBuilder.mergeFrom(getGamestart());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGamestart(subBuilder.buildPartial());
              break;
            }
            case 42: {
              com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.newBuilder();
              if (hasQdzRpy()) {
                subBuilder.mergeFrom(getQdzRpy());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setQdzRpy(subBuilder.buildPartial());
              break;
            }
            case 50: {
              com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.newBuilder();
              if (hasPlayerAction()) {
                subBuilder.mergeFrom(getPlayerAction());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlayerAction(subBuilder.buildPartial());
              break;
            }
            case 58: {
              com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.newBuilder();
              if (hasPlayerinfo()) {
                subBuilder.mergeFrom(getPlayerinfo());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlayerinfo(subBuilder.buildPartial());
              break;
            }
            case 66: {
              com.backfire.socket.socketProto.Doudizhu.HandCard.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.HandCard.newBuilder();
              if (hasHandcard()) {
                subBuilder.mergeFrom(getHandcard());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setHandcard(subBuilder.buildPartial());
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              seatid_ = input.readUInt32();
              break;
            }
            case 80: {
              ensurePlayerCardsRemainIsMutable();
              playerCardsRemain_.add(input.readUInt32());
              break;
            }
            case 82: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPlayerCardsRemain(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 90: {
              com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addDeposited(subBuilder.buildPartial());
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              roomType_ = input.readUInt32();
              break;
            }
            case 106: {
              com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addLaizi(subBuilder.buildPartial());
              break;
            }
            case 114: {
              com.backfire.socket.socketProto.Doudizhu.SeatRpy.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.SeatRpy.newBuilder();
              if (hasSeatInfo()) {
                subBuilder.mergeFrom(getSeatInfo());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setSeatInfo(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 ret = 1;
      private int ret_ ;
      public boolean hasRet() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRet() {
        return ret_;
      }
      public Builder setRet(int value) {
        bitField0_ |= 0x00000001;
        ret_ = value;
        onChanged();
        return this;
      }
      public Builder clearRet() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ret_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 retcode = 2;
      private int retcode_ ;
      public boolean hasRetcode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getRetcode() {
        return retcode_;
      }
      public Builder setRetcode(int value) {
        bitField0_ |= 0x00000002;
        retcode_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetcode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retcode_ = 0;
        onChanged();
        return this;
      }
      
      // optional string retmsg = 3;
      private java.lang.Object retmsg_ = "";
      public boolean hasRetmsg() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getRetmsg() {
        java.lang.Object ref = retmsg_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          retmsg_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setRetmsg(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retmsg_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetmsg() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retmsg_ = getDefaultInstance().getRetmsg();
        onChanged();
        return this;
      }
      void setRetmsg(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000004;
        retmsg_ = value;
        onChanged();
      }
      
      // optional .com.backfire.socket.socketProto.GameStart gamestart = 4;
      private com.backfire.socket.socketProto.Doudizhu.GameStart gamestart_ = com.backfire.socket.socketProto.Doudizhu.GameStart.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.GameStart, com.backfire.socket.socketProto.Doudizhu.GameStart.Builder, com.backfire.socket.socketProto.Doudizhu.GameStartOrBuilder> gamestartBuilder_;
      public boolean hasGamestart() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public com.backfire.socket.socketProto.Doudizhu.GameStart getGamestart() {
        if (gamestartBuilder_ == null) {
          return gamestart_;
        } else {
          return gamestartBuilder_.getMessage();
        }
      }
      public Builder setGamestart(com.backfire.socket.socketProto.Doudizhu.GameStart value) {
        if (gamestartBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gamestart_ = value;
          onChanged();
        } else {
          gamestartBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      public Builder setGamestart(
          com.backfire.socket.socketProto.Doudizhu.GameStart.Builder builderForValue) {
        if (gamestartBuilder_ == null) {
          gamestart_ = builderForValue.build();
          onChanged();
        } else {
          gamestartBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      public Builder mergeGamestart(com.backfire.socket.socketProto.Doudizhu.GameStart value) {
        if (gamestartBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              gamestart_ != com.backfire.socket.socketProto.Doudizhu.GameStart.getDefaultInstance()) {
            gamestart_ =
              com.backfire.socket.socketProto.Doudizhu.GameStart.newBuilder(gamestart_).mergeFrom(value).buildPartial();
          } else {
            gamestart_ = value;
          }
          onChanged();
        } else {
          gamestartBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      public Builder clearGamestart() {
        if (gamestartBuilder_ == null) {
          gamestart_ = com.backfire.socket.socketProto.Doudizhu.GameStart.getDefaultInstance();
          onChanged();
        } else {
          gamestartBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.GameStart.Builder getGamestartBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getGamestartFieldBuilder().getBuilder();
      }
      public com.backfire.socket.socketProto.Doudizhu.GameStartOrBuilder getGamestartOrBuilder() {
        if (gamestartBuilder_ != null) {
          return gamestartBuilder_.getMessageOrBuilder();
        } else {
          return gamestart_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.GameStart, com.backfire.socket.socketProto.Doudizhu.GameStart.Builder, com.backfire.socket.socketProto.Doudizhu.GameStartOrBuilder> 
          getGamestartFieldBuilder() {
        if (gamestartBuilder_ == null) {
          gamestartBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.GameStart, com.backfire.socket.socketProto.Doudizhu.GameStart.Builder, com.backfire.socket.socketProto.Doudizhu.GameStartOrBuilder>(
                  gamestart_,
                  getParentForChildren(),
                  isClean());
          gamestart_ = null;
        }
        return gamestartBuilder_;
      }
      
      // optional .com.backfire.socket.socketProto.QiangdizhuRpy qdzRpy = 5;
      private com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy qdzRpy_ = com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy, com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.Builder, com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpyOrBuilder> qdzRpyBuilder_;
      public boolean hasQdzRpy() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy getQdzRpy() {
        if (qdzRpyBuilder_ == null) {
          return qdzRpy_;
        } else {
          return qdzRpyBuilder_.getMessage();
        }
      }
      public Builder setQdzRpy(com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy value) {
        if (qdzRpyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          qdzRpy_ = value;
          onChanged();
        } else {
          qdzRpyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      public Builder setQdzRpy(
          com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.Builder builderForValue) {
        if (qdzRpyBuilder_ == null) {
          qdzRpy_ = builderForValue.build();
          onChanged();
        } else {
          qdzRpyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      public Builder mergeQdzRpy(com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy value) {
        if (qdzRpyBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              qdzRpy_ != com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.getDefaultInstance()) {
            qdzRpy_ =
              com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.newBuilder(qdzRpy_).mergeFrom(value).buildPartial();
          } else {
            qdzRpy_ = value;
          }
          onChanged();
        } else {
          qdzRpyBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      public Builder clearQdzRpy() {
        if (qdzRpyBuilder_ == null) {
          qdzRpy_ = com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.getDefaultInstance();
          onChanged();
        } else {
          qdzRpyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.Builder getQdzRpyBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getQdzRpyFieldBuilder().getBuilder();
      }
      public com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpyOrBuilder getQdzRpyOrBuilder() {
        if (qdzRpyBuilder_ != null) {
          return qdzRpyBuilder_.getMessageOrBuilder();
        } else {
          return qdzRpy_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy, com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.Builder, com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpyOrBuilder> 
          getQdzRpyFieldBuilder() {
        if (qdzRpyBuilder_ == null) {
          qdzRpyBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy, com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.Builder, com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpyOrBuilder>(
                  qdzRpy_,
                  getParentForChildren(),
                  isClean());
          qdzRpy_ = null;
        }
        return qdzRpyBuilder_;
      }
      
      // optional .com.backfire.socket.socketProto.BroadcastPlayerAction playerAction = 6;
      private com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction playerAction_ = com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.Builder, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerActionOrBuilder> playerActionBuilder_;
      public boolean hasPlayerAction() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction getPlayerAction() {
        if (playerActionBuilder_ == null) {
          return playerAction_;
        } else {
          return playerActionBuilder_.getMessage();
        }
      }
      public Builder setPlayerAction(com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction value) {
        if (playerActionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playerAction_ = value;
          onChanged();
        } else {
          playerActionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      public Builder setPlayerAction(
          com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.Builder builderForValue) {
        if (playerActionBuilder_ == null) {
          playerAction_ = builderForValue.build();
          onChanged();
        } else {
          playerActionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      public Builder mergePlayerAction(com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction value) {
        if (playerActionBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              playerAction_ != com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.getDefaultInstance()) {
            playerAction_ =
              com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.newBuilder(playerAction_).mergeFrom(value).buildPartial();
          } else {
            playerAction_ = value;
          }
          onChanged();
        } else {
          playerActionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      public Builder clearPlayerAction() {
        if (playerActionBuilder_ == null) {
          playerAction_ = com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.getDefaultInstance();
          onChanged();
        } else {
          playerActionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.Builder getPlayerActionBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getPlayerActionFieldBuilder().getBuilder();
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerActionOrBuilder getPlayerActionOrBuilder() {
        if (playerActionBuilder_ != null) {
          return playerActionBuilder_.getMessageOrBuilder();
        } else {
          return playerAction_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.Builder, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerActionOrBuilder> 
          getPlayerActionFieldBuilder() {
        if (playerActionBuilder_ == null) {
          playerActionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.Builder, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerActionOrBuilder>(
                  playerAction_,
                  getParentForChildren(),
                  isClean());
          playerAction_ = null;
        }
        return playerActionBuilder_;
      }
      
      // optional .com.backfire.socket.socketProto.BroadcastPlayerInfo playerinfo = 7;
      private com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo playerinfo_ = com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.Builder, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfoOrBuilder> playerinfoBuilder_;
      public boolean hasPlayerinfo() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo getPlayerinfo() {
        if (playerinfoBuilder_ == null) {
          return playerinfo_;
        } else {
          return playerinfoBuilder_.getMessage();
        }
      }
      public Builder setPlayerinfo(com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo value) {
        if (playerinfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playerinfo_ = value;
          onChanged();
        } else {
          playerinfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      public Builder setPlayerinfo(
          com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.Builder builderForValue) {
        if (playerinfoBuilder_ == null) {
          playerinfo_ = builderForValue.build();
          onChanged();
        } else {
          playerinfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      public Builder mergePlayerinfo(com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo value) {
        if (playerinfoBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              playerinfo_ != com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.getDefaultInstance()) {
            playerinfo_ =
              com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.newBuilder(playerinfo_).mergeFrom(value).buildPartial();
          } else {
            playerinfo_ = value;
          }
          onChanged();
        } else {
          playerinfoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      public Builder clearPlayerinfo() {
        if (playerinfoBuilder_ == null) {
          playerinfo_ = com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.getDefaultInstance();
          onChanged();
        } else {
          playerinfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.Builder getPlayerinfoBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getPlayerinfoFieldBuilder().getBuilder();
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfoOrBuilder getPlayerinfoOrBuilder() {
        if (playerinfoBuilder_ != null) {
          return playerinfoBuilder_.getMessageOrBuilder();
        } else {
          return playerinfo_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.Builder, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfoOrBuilder> 
          getPlayerinfoFieldBuilder() {
        if (playerinfoBuilder_ == null) {
          playerinfoBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.Builder, com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfoOrBuilder>(
                  playerinfo_,
                  getParentForChildren(),
                  isClean());
          playerinfo_ = null;
        }
        return playerinfoBuilder_;
      }
      
      // optional .com.backfire.socket.socketProto.HandCard handcard = 8;
      private com.backfire.socket.socketProto.Doudizhu.HandCard handcard_ = com.backfire.socket.socketProto.Doudizhu.HandCard.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.HandCard, com.backfire.socket.socketProto.Doudizhu.HandCard.Builder, com.backfire.socket.socketProto.Doudizhu.HandCardOrBuilder> handcardBuilder_;
      public boolean hasHandcard() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public com.backfire.socket.socketProto.Doudizhu.HandCard getHandcard() {
        if (handcardBuilder_ == null) {
          return handcard_;
        } else {
          return handcardBuilder_.getMessage();
        }
      }
      public Builder setHandcard(com.backfire.socket.socketProto.Doudizhu.HandCard value) {
        if (handcardBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          handcard_ = value;
          onChanged();
        } else {
          handcardBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      public Builder setHandcard(
          com.backfire.socket.socketProto.Doudizhu.HandCard.Builder builderForValue) {
        if (handcardBuilder_ == null) {
          handcard_ = builderForValue.build();
          onChanged();
        } else {
          handcardBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      public Builder mergeHandcard(com.backfire.socket.socketProto.Doudizhu.HandCard value) {
        if (handcardBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              handcard_ != com.backfire.socket.socketProto.Doudizhu.HandCard.getDefaultInstance()) {
            handcard_ =
              com.backfire.socket.socketProto.Doudizhu.HandCard.newBuilder(handcard_).mergeFrom(value).buildPartial();
          } else {
            handcard_ = value;
          }
          onChanged();
        } else {
          handcardBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      public Builder clearHandcard() {
        if (handcardBuilder_ == null) {
          handcard_ = com.backfire.socket.socketProto.Doudizhu.HandCard.getDefaultInstance();
          onChanged();
        } else {
          handcardBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.HandCard.Builder getHandcardBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getHandcardFieldBuilder().getBuilder();
      }
      public com.backfire.socket.socketProto.Doudizhu.HandCardOrBuilder getHandcardOrBuilder() {
        if (handcardBuilder_ != null) {
          return handcardBuilder_.getMessageOrBuilder();
        } else {
          return handcard_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.HandCard, com.backfire.socket.socketProto.Doudizhu.HandCard.Builder, com.backfire.socket.socketProto.Doudizhu.HandCardOrBuilder> 
          getHandcardFieldBuilder() {
        if (handcardBuilder_ == null) {
          handcardBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.HandCard, com.backfire.socket.socketProto.Doudizhu.HandCard.Builder, com.backfire.socket.socketProto.Doudizhu.HandCardOrBuilder>(
                  handcard_,
                  getParentForChildren(),
                  isClean());
          handcard_ = null;
        }
        return handcardBuilder_;
      }
      
      // optional uint32 seatid = 9;
      private int seatid_ ;
      public boolean hasSeatid() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public int getSeatid() {
        return seatid_;
      }
      public Builder setSeatid(int value) {
        bitField0_ |= 0x00000100;
        seatid_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatid() {
        bitField0_ = (bitField0_ & ~0x00000100);
        seatid_ = 0;
        onChanged();
        return this;
      }
      
      // repeated uint32 playerCardsRemain = 10;
      private java.util.List<java.lang.Integer> playerCardsRemain_ = java.util.Collections.emptyList();;
      private void ensurePlayerCardsRemainIsMutable() {
        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
          playerCardsRemain_ = new java.util.ArrayList<java.lang.Integer>(playerCardsRemain_);
          bitField0_ |= 0x00000200;
         }
      }
      public java.util.List<java.lang.Integer>
          getPlayerCardsRemainList() {
        return java.util.Collections.unmodifiableList(playerCardsRemain_);
      }
      public int getPlayerCardsRemainCount() {
        return playerCardsRemain_.size();
      }
      public int getPlayerCardsRemain(int index) {
        return playerCardsRemain_.get(index);
      }
      public Builder setPlayerCardsRemain(
          int index, int value) {
        ensurePlayerCardsRemainIsMutable();
        playerCardsRemain_.set(index, value);
        onChanged();
        return this;
      }
      public Builder addPlayerCardsRemain(int value) {
        ensurePlayerCardsRemainIsMutable();
        playerCardsRemain_.add(value);
        onChanged();
        return this;
      }
      public Builder addAllPlayerCardsRemain(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePlayerCardsRemainIsMutable();
        super.addAll(values, playerCardsRemain_);
        onChanged();
        return this;
      }
      public Builder clearPlayerCardsRemain() {
        playerCardsRemain_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000200);
        onChanged();
        return this;
      }
      
      // repeated .com.backfire.socket.socketProto.PlayerDepositRpy deposited = 11;
      private java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy> deposited_ =
        java.util.Collections.emptyList();
      private void ensureDepositedIsMutable() {
        if (!((bitField0_ & 0x00000400) == 0x00000400)) {
          deposited_ = new java.util.ArrayList<com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy>(deposited_);
          bitField0_ |= 0x00000400;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpyOrBuilder> depositedBuilder_;
      
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy> getDepositedList() {
        if (depositedBuilder_ == null) {
          return java.util.Collections.unmodifiableList(deposited_);
        } else {
          return depositedBuilder_.getMessageList();
        }
      }
      public int getDepositedCount() {
        if (depositedBuilder_ == null) {
          return deposited_.size();
        } else {
          return depositedBuilder_.getCount();
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy getDeposited(int index) {
        if (depositedBuilder_ == null) {
          return deposited_.get(index);
        } else {
          return depositedBuilder_.getMessage(index);
        }
      }
      public Builder setDeposited(
          int index, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy value) {
        if (depositedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDepositedIsMutable();
          deposited_.set(index, value);
          onChanged();
        } else {
          depositedBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setDeposited(
          int index, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder builderForValue) {
        if (depositedBuilder_ == null) {
          ensureDepositedIsMutable();
          deposited_.set(index, builderForValue.build());
          onChanged();
        } else {
          depositedBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addDeposited(com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy value) {
        if (depositedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDepositedIsMutable();
          deposited_.add(value);
          onChanged();
        } else {
          depositedBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addDeposited(
          int index, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy value) {
        if (depositedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDepositedIsMutable();
          deposited_.add(index, value);
          onChanged();
        } else {
          depositedBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addDeposited(
          com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder builderForValue) {
        if (depositedBuilder_ == null) {
          ensureDepositedIsMutable();
          deposited_.add(builderForValue.build());
          onChanged();
        } else {
          depositedBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addDeposited(
          int index, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder builderForValue) {
        if (depositedBuilder_ == null) {
          ensureDepositedIsMutable();
          deposited_.add(index, builderForValue.build());
          onChanged();
        } else {
          depositedBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllDeposited(
          java.lang.Iterable<? extends com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy> values) {
        if (depositedBuilder_ == null) {
          ensureDepositedIsMutable();
          super.addAll(values, deposited_);
          onChanged();
        } else {
          depositedBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearDeposited() {
        if (depositedBuilder_ == null) {
          deposited_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000400);
          onChanged();
        } else {
          depositedBuilder_.clear();
        }
        return this;
      }
      public Builder removeDeposited(int index) {
        if (depositedBuilder_ == null) {
          ensureDepositedIsMutable();
          deposited_.remove(index);
          onChanged();
        } else {
          depositedBuilder_.remove(index);
        }
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder getDepositedBuilder(
          int index) {
        return getDepositedFieldBuilder().getBuilder(index);
      }
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpyOrBuilder getDepositedOrBuilder(
          int index) {
        if (depositedBuilder_ == null) {
          return deposited_.get(index);  } else {
          return depositedBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpyOrBuilder> 
           getDepositedOrBuilderList() {
        if (depositedBuilder_ != null) {
          return depositedBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(deposited_);
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder addDepositedBuilder() {
        return getDepositedFieldBuilder().addBuilder(
            com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.getDefaultInstance());
      }
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder addDepositedBuilder(
          int index) {
        return getDepositedFieldBuilder().addBuilder(
            index, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.getDefaultInstance());
      }
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder> 
           getDepositedBuilderList() {
        return getDepositedFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpyOrBuilder> 
          getDepositedFieldBuilder() {
        if (depositedBuilder_ == null) {
          depositedBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder, com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpyOrBuilder>(
                  deposited_,
                  ((bitField0_ & 0x00000400) == 0x00000400),
                  getParentForChildren(),
                  isClean());
          deposited_ = null;
        }
        return depositedBuilder_;
      }
      
      // optional uint32 roomType = 12;
      private int roomType_ ;
      public boolean hasRoomType() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      public int getRoomType() {
        return roomType_;
      }
      public Builder setRoomType(int value) {
        bitField0_ |= 0x00000800;
        roomType_ = value;
        onChanged();
        return this;
      }
      public Builder clearRoomType() {
        bitField0_ = (bitField0_ & ~0x00000800);
        roomType_ = 0;
        onChanged();
        return this;
      }
      
      // repeated .com.backfire.socket.socketProto.BroadcastLaiziCard laizi = 13;
      private java.util.List<com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard> laizi_ =
        java.util.Collections.emptyList();
      private void ensureLaiziIsMutable() {
        if (!((bitField0_ & 0x00001000) == 0x00001000)) {
          laizi_ = new java.util.ArrayList<com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard>(laizi_);
          bitField0_ |= 0x00001000;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCardOrBuilder> laiziBuilder_;
      
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard> getLaiziList() {
        if (laiziBuilder_ == null) {
          return java.util.Collections.unmodifiableList(laizi_);
        } else {
          return laiziBuilder_.getMessageList();
        }
      }
      public int getLaiziCount() {
        if (laiziBuilder_ == null) {
          return laizi_.size();
        } else {
          return laiziBuilder_.getCount();
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard getLaizi(int index) {
        if (laiziBuilder_ == null) {
          return laizi_.get(index);
        } else {
          return laiziBuilder_.getMessage(index);
        }
      }
      public Builder setLaizi(
          int index, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard value) {
        if (laiziBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLaiziIsMutable();
          laizi_.set(index, value);
          onChanged();
        } else {
          laiziBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setLaizi(
          int index, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder builderForValue) {
        if (laiziBuilder_ == null) {
          ensureLaiziIsMutable();
          laizi_.set(index, builderForValue.build());
          onChanged();
        } else {
          laiziBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addLaizi(com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard value) {
        if (laiziBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLaiziIsMutable();
          laizi_.add(value);
          onChanged();
        } else {
          laiziBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addLaizi(
          int index, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard value) {
        if (laiziBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLaiziIsMutable();
          laizi_.add(index, value);
          onChanged();
        } else {
          laiziBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addLaizi(
          com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder builderForValue) {
        if (laiziBuilder_ == null) {
          ensureLaiziIsMutable();
          laizi_.add(builderForValue.build());
          onChanged();
        } else {
          laiziBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addLaizi(
          int index, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder builderForValue) {
        if (laiziBuilder_ == null) {
          ensureLaiziIsMutable();
          laizi_.add(index, builderForValue.build());
          onChanged();
        } else {
          laiziBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllLaizi(
          java.lang.Iterable<? extends com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard> values) {
        if (laiziBuilder_ == null) {
          ensureLaiziIsMutable();
          super.addAll(values, laizi_);
          onChanged();
        } else {
          laiziBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearLaizi() {
        if (laiziBuilder_ == null) {
          laizi_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00001000);
          onChanged();
        } else {
          laiziBuilder_.clear();
        }
        return this;
      }
      public Builder removeLaizi(int index) {
        if (laiziBuilder_ == null) {
          ensureLaiziIsMutable();
          laizi_.remove(index);
          onChanged();
        } else {
          laiziBuilder_.remove(index);
        }
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder getLaiziBuilder(
          int index) {
        return getLaiziFieldBuilder().getBuilder(index);
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCardOrBuilder getLaiziOrBuilder(
          int index) {
        if (laiziBuilder_ == null) {
          return laizi_.get(index);  } else {
          return laiziBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCardOrBuilder> 
           getLaiziOrBuilderList() {
        if (laiziBuilder_ != null) {
          return laiziBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(laizi_);
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder addLaiziBuilder() {
        return getLaiziFieldBuilder().addBuilder(
            com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.getDefaultInstance());
      }
      public com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder addLaiziBuilder(
          int index) {
        return getLaiziFieldBuilder().addBuilder(
            index, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.getDefaultInstance());
      }
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder> 
           getLaiziBuilderList() {
        return getLaiziFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCardOrBuilder> 
          getLaiziFieldBuilder() {
        if (laiziBuilder_ == null) {
          laiziBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder, com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCardOrBuilder>(
                  laizi_,
                  ((bitField0_ & 0x00001000) == 0x00001000),
                  getParentForChildren(),
                  isClean());
          laizi_ = null;
        }
        return laiziBuilder_;
      }
      
      // optional .com.backfire.socket.socketProto.SeatRpy seatInfo = 14;
      private com.backfire.socket.socketProto.Doudizhu.SeatRpy seatInfo_ = com.backfire.socket.socketProto.Doudizhu.SeatRpy.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.SeatRpy, com.backfire.socket.socketProto.Doudizhu.SeatRpy.Builder, com.backfire.socket.socketProto.Doudizhu.SeatRpyOrBuilder> seatInfoBuilder_;
      public boolean hasSeatInfo() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      public com.backfire.socket.socketProto.Doudizhu.SeatRpy getSeatInfo() {
        if (seatInfoBuilder_ == null) {
          return seatInfo_;
        } else {
          return seatInfoBuilder_.getMessage();
        }
      }
      public Builder setSeatInfo(com.backfire.socket.socketProto.Doudizhu.SeatRpy value) {
        if (seatInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          seatInfo_ = value;
          onChanged();
        } else {
          seatInfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      public Builder setSeatInfo(
          com.backfire.socket.socketProto.Doudizhu.SeatRpy.Builder builderForValue) {
        if (seatInfoBuilder_ == null) {
          seatInfo_ = builderForValue.build();
          onChanged();
        } else {
          seatInfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      public Builder mergeSeatInfo(com.backfire.socket.socketProto.Doudizhu.SeatRpy value) {
        if (seatInfoBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000) &&
              seatInfo_ != com.backfire.socket.socketProto.Doudizhu.SeatRpy.getDefaultInstance()) {
            seatInfo_ =
              com.backfire.socket.socketProto.Doudizhu.SeatRpy.newBuilder(seatInfo_).mergeFrom(value).buildPartial();
          } else {
            seatInfo_ = value;
          }
          onChanged();
        } else {
          seatInfoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      public Builder clearSeatInfo() {
        if (seatInfoBuilder_ == null) {
          seatInfo_ = com.backfire.socket.socketProto.Doudizhu.SeatRpy.getDefaultInstance();
          onChanged();
        } else {
          seatInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.SeatRpy.Builder getSeatInfoBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getSeatInfoFieldBuilder().getBuilder();
      }
      public com.backfire.socket.socketProto.Doudizhu.SeatRpyOrBuilder getSeatInfoOrBuilder() {
        if (seatInfoBuilder_ != null) {
          return seatInfoBuilder_.getMessageOrBuilder();
        } else {
          return seatInfo_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.SeatRpy, com.backfire.socket.socketProto.Doudizhu.SeatRpy.Builder, com.backfire.socket.socketProto.Doudizhu.SeatRpyOrBuilder> 
          getSeatInfoFieldBuilder() {
        if (seatInfoBuilder_ == null) {
          seatInfoBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.SeatRpy, com.backfire.socket.socketProto.Doudizhu.SeatRpy.Builder, com.backfire.socket.socketProto.Doudizhu.SeatRpyOrBuilder>(
                  seatInfo_,
                  getParentForChildren(),
                  isClean());
          seatInfo_ = null;
        }
        return seatInfoBuilder_;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.RebindRpy)
    }
    
    static {
      defaultInstance = new RebindRpy(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.RebindRpy)
  }
  
  public interface SeatReqOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint64 uid = 1;
    boolean hasUid();
    long getUid();
    
    // optional uint32 seatId = 2;
    boolean hasSeatId();
    int getSeatId();
    
    // optional uint32 action = 3;
    boolean hasAction();
    int getAction();
    
    // optional uint32 autoready = 4;
    boolean hasAutoready();
    int getAutoready();
    
    // optional uint32 roomid = 5;
    boolean hasRoomid();
    int getRoomid();
  }
  public static final class SeatReq extends
      com.google.protobuf.GeneratedMessage
      implements SeatReqOrBuilder {
    // Use SeatReq.newBuilder() to construct.
    private SeatReq(Builder builder) {
      super(builder);
    }
    private SeatReq(boolean noInit) {}
    
    private static final SeatReq defaultInstance;
    public static SeatReq getDefaultInstance() {
      return defaultInstance;
    }
    
    public SeatReq getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_SeatReq_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_SeatReq_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint64 uid = 1;
    public static final int UID_FIELD_NUMBER = 1;
    private long uid_;
    public boolean hasUid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public long getUid() {
      return uid_;
    }
    
    // optional uint32 seatId = 2;
    public static final int SEATID_FIELD_NUMBER = 2;
    private int seatId_;
    public boolean hasSeatId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getSeatId() {
      return seatId_;
    }
    
    // optional uint32 action = 3;
    public static final int ACTION_FIELD_NUMBER = 3;
    private int action_;
    public boolean hasAction() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getAction() {
      return action_;
    }
    
    // optional uint32 autoready = 4;
    public static final int AUTOREADY_FIELD_NUMBER = 4;
    private int autoready_;
    public boolean hasAutoready() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getAutoready() {
      return autoready_;
    }
    
    // optional uint32 roomid = 5;
    public static final int ROOMID_FIELD_NUMBER = 5;
    private int roomid_;
    public boolean hasRoomid() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getRoomid() {
      return roomid_;
    }
    
    private void initFields() {
      uid_ = 0L;
      seatId_ = 0;
      action_ = 0;
      autoready_ = 0;
      roomid_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, seatId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, action_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, autoready_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, roomid_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, seatId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, action_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, autoready_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, roomid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.SeatReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.SeatReq prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.SeatReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_SeatReq_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_SeatReq_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.SeatReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        uid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        seatId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        action_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        autoready_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        roomid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.SeatReq.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.SeatReq getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.SeatReq.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.SeatReq build() {
        com.backfire.socket.socketProto.Doudizhu.SeatReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.SeatReq buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.SeatReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.SeatReq buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.SeatReq result = new com.backfire.socket.socketProto.Doudizhu.SeatReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.seatId_ = seatId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.action_ = action_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.autoready_ = autoready_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.roomid_ = roomid_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.SeatReq) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.SeatReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.SeatReq other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.SeatReq.getDefaultInstance()) return this;
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        if (other.hasSeatId()) {
          setSeatId(other.getSeatId());
        }
        if (other.hasAction()) {
          setAction(other.getAction());
        }
        if (other.hasAutoready()) {
          setAutoready(other.getAutoready());
        }
        if (other.hasRoomid()) {
          setRoomid(other.getRoomid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              uid_ = input.readUInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              seatId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              action_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              autoready_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              roomid_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint64 uid = 1;
      private long uid_ ;
      public boolean hasUid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public long getUid() {
        return uid_;
      }
      public Builder setUid(long value) {
        bitField0_ |= 0x00000001;
        uid_ = value;
        onChanged();
        return this;
      }
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0L;
        onChanged();
        return this;
      }
      
      // optional uint32 seatId = 2;
      private int seatId_ ;
      public boolean hasSeatId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getSeatId() {
        return seatId_;
      }
      public Builder setSeatId(int value) {
        bitField0_ |= 0x00000002;
        seatId_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        seatId_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 action = 3;
      private int action_ ;
      public boolean hasAction() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getAction() {
        return action_;
      }
      public Builder setAction(int value) {
        bitField0_ |= 0x00000004;
        action_ = value;
        onChanged();
        return this;
      }
      public Builder clearAction() {
        bitField0_ = (bitField0_ & ~0x00000004);
        action_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 autoready = 4;
      private int autoready_ ;
      public boolean hasAutoready() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getAutoready() {
        return autoready_;
      }
      public Builder setAutoready(int value) {
        bitField0_ |= 0x00000008;
        autoready_ = value;
        onChanged();
        return this;
      }
      public Builder clearAutoready() {
        bitField0_ = (bitField0_ & ~0x00000008);
        autoready_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 roomid = 5;
      private int roomid_ ;
      public boolean hasRoomid() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getRoomid() {
        return roomid_;
      }
      public Builder setRoomid(int value) {
        bitField0_ |= 0x00000010;
        roomid_ = value;
        onChanged();
        return this;
      }
      public Builder clearRoomid() {
        bitField0_ = (bitField0_ & ~0x00000010);
        roomid_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.SeatReq)
    }
    
    static {
      defaultInstance = new SeatReq(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.SeatReq)
  }
  
  public interface SeatRpyOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 ret = 1;
    boolean hasRet();
    int getRet();
    
    // optional uint32 retCode = 2;
    boolean hasRetCode();
    int getRetCode();
    
    // optional string retMsg = 3;
    boolean hasRetMsg();
    String getRetMsg();
    
    // optional uint32 seatid = 4;
    boolean hasSeatid();
    int getSeatid();
    
    // optional uint32 action = 5;
    boolean hasAction();
    int getAction();
    
    // optional uint32 basepoint = 6;
    boolean hasBasepoint();
    int getBasepoint();
    
    // optional uint32 readytimeout = 7;
    boolean hasReadytimeout();
    int getReadytimeout();
    
    // optional uint32 awardRoom = 8;
    boolean hasAwardRoom();
    int getAwardRoom();
    
    // optional uint32 laiziFlag = 9;
    boolean hasLaiziFlag();
    int getLaiziFlag();
    
    // optional string roomName = 10;
    boolean hasRoomName();
    String getRoomName();
  }
  public static final class SeatRpy extends
      com.google.protobuf.GeneratedMessage
      implements SeatRpyOrBuilder {
    // Use SeatRpy.newBuilder() to construct.
    private SeatRpy(Builder builder) {
      super(builder);
    }
    private SeatRpy(boolean noInit) {}
    
    private static final SeatRpy defaultInstance;
    public static SeatRpy getDefaultInstance() {
      return defaultInstance;
    }
    
    public SeatRpy getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_SeatRpy_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_SeatRpy_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 ret = 1;
    public static final int RET_FIELD_NUMBER = 1;
    private int ret_;
    public boolean hasRet() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRet() {
      return ret_;
    }
    
    // optional uint32 retCode = 2;
    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getRetCode() {
      return retCode_;
    }
    
    // optional string retMsg = 3;
    public static final int RETMSG_FIELD_NUMBER = 3;
    private java.lang.Object retMsg_;
    public boolean hasRetMsg() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getRetMsg() {
      java.lang.Object ref = retMsg_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          retMsg_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getRetMsgBytes() {
      java.lang.Object ref = retMsg_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        retMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional uint32 seatid = 4;
    public static final int SEATID_FIELD_NUMBER = 4;
    private int seatid_;
    public boolean hasSeatid() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getSeatid() {
      return seatid_;
    }
    
    // optional uint32 action = 5;
    public static final int ACTION_FIELD_NUMBER = 5;
    private int action_;
    public boolean hasAction() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getAction() {
      return action_;
    }
    
    // optional uint32 basepoint = 6;
    public static final int BASEPOINT_FIELD_NUMBER = 6;
    private int basepoint_;
    public boolean hasBasepoint() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public int getBasepoint() {
      return basepoint_;
    }
    
    // optional uint32 readytimeout = 7;
    public static final int READYTIMEOUT_FIELD_NUMBER = 7;
    private int readytimeout_;
    public boolean hasReadytimeout() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    public int getReadytimeout() {
      return readytimeout_;
    }
    
    // optional uint32 awardRoom = 8;
    public static final int AWARDROOM_FIELD_NUMBER = 8;
    private int awardRoom_;
    public boolean hasAwardRoom() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    public int getAwardRoom() {
      return awardRoom_;
    }
    
    // optional uint32 laiziFlag = 9;
    public static final int LAIZIFLAG_FIELD_NUMBER = 9;
    private int laiziFlag_;
    public boolean hasLaiziFlag() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    public int getLaiziFlag() {
      return laiziFlag_;
    }
    
    // optional string roomName = 10;
    public static final int ROOMNAME_FIELD_NUMBER = 10;
    private java.lang.Object roomName_;
    public boolean hasRoomName() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    public String getRoomName() {
      java.lang.Object ref = roomName_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          roomName_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getRoomNameBytes() {
      java.lang.Object ref = roomName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        roomName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      ret_ = 0;
      retCode_ = 0;
      retMsg_ = "";
      seatid_ = 0;
      action_ = 0;
      basepoint_ = 0;
      readytimeout_ = 0;
      awardRoom_ = 0;
      laiziFlag_ = 0;
      roomName_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getRetMsgBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, seatid_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, action_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, basepoint_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, readytimeout_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(8, awardRoom_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeUInt32(9, laiziFlag_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBytes(10, getRoomNameBytes());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getRetMsgBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, seatid_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, action_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, basepoint_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, readytimeout_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, awardRoom_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, laiziFlag_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(10, getRoomNameBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.SeatRpy parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatRpy parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatRpy parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatRpy parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatRpy parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatRpy parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatRpy parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatRpy parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatRpy parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.SeatRpy parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.SeatRpy prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.SeatRpyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_SeatRpy_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_SeatRpy_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.SeatRpy.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        ret_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retMsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        seatid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        action_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        basepoint_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        readytimeout_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        awardRoom_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        laiziFlag_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        roomName_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.SeatRpy.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.SeatRpy getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.SeatRpy.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.SeatRpy build() {
        com.backfire.socket.socketProto.Doudizhu.SeatRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.SeatRpy buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.SeatRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.SeatRpy buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.SeatRpy result = new com.backfire.socket.socketProto.Doudizhu.SeatRpy(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ret_ = ret_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.retCode_ = retCode_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retMsg_ = retMsg_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.seatid_ = seatid_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.action_ = action_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.basepoint_ = basepoint_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.readytimeout_ = readytimeout_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.awardRoom_ = awardRoom_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.laiziFlag_ = laiziFlag_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.roomName_ = roomName_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.SeatRpy) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.SeatRpy)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.SeatRpy other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.SeatRpy.getDefaultInstance()) return this;
        if (other.hasRet()) {
          setRet(other.getRet());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetMsg()) {
          setRetMsg(other.getRetMsg());
        }
        if (other.hasSeatid()) {
          setSeatid(other.getSeatid());
        }
        if (other.hasAction()) {
          setAction(other.getAction());
        }
        if (other.hasBasepoint()) {
          setBasepoint(other.getBasepoint());
        }
        if (other.hasReadytimeout()) {
          setReadytimeout(other.getReadytimeout());
        }
        if (other.hasAwardRoom()) {
          setAwardRoom(other.getAwardRoom());
        }
        if (other.hasLaiziFlag()) {
          setLaiziFlag(other.getLaiziFlag());
        }
        if (other.hasRoomName()) {
          setRoomName(other.getRoomName());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ret_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              retMsg_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              seatid_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              action_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              basepoint_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              readytimeout_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              awardRoom_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              laiziFlag_ = input.readUInt32();
              break;
            }
            case 82: {
              bitField0_ |= 0x00000200;
              roomName_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 ret = 1;
      private int ret_ ;
      public boolean hasRet() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRet() {
        return ret_;
      }
      public Builder setRet(int value) {
        bitField0_ |= 0x00000001;
        ret_ = value;
        onChanged();
        return this;
      }
      public Builder clearRet() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ret_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 retCode = 2;
      private int retCode_ ;
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getRetCode() {
        return retCode_;
      }
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }
      
      // optional string retMsg = 3;
      private java.lang.Object retMsg_ = "";
      public boolean hasRetMsg() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getRetMsg() {
        java.lang.Object ref = retMsg_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          retMsg_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setRetMsg(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retMsg_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetMsg() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retMsg_ = getDefaultInstance().getRetMsg();
        onChanged();
        return this;
      }
      void setRetMsg(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000004;
        retMsg_ = value;
        onChanged();
      }
      
      // optional uint32 seatid = 4;
      private int seatid_ ;
      public boolean hasSeatid() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getSeatid() {
        return seatid_;
      }
      public Builder setSeatid(int value) {
        bitField0_ |= 0x00000008;
        seatid_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatid() {
        bitField0_ = (bitField0_ & ~0x00000008);
        seatid_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 action = 5;
      private int action_ ;
      public boolean hasAction() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getAction() {
        return action_;
      }
      public Builder setAction(int value) {
        bitField0_ |= 0x00000010;
        action_ = value;
        onChanged();
        return this;
      }
      public Builder clearAction() {
        bitField0_ = (bitField0_ & ~0x00000010);
        action_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 basepoint = 6;
      private int basepoint_ ;
      public boolean hasBasepoint() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public int getBasepoint() {
        return basepoint_;
      }
      public Builder setBasepoint(int value) {
        bitField0_ |= 0x00000020;
        basepoint_ = value;
        onChanged();
        return this;
      }
      public Builder clearBasepoint() {
        bitField0_ = (bitField0_ & ~0x00000020);
        basepoint_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 readytimeout = 7;
      private int readytimeout_ ;
      public boolean hasReadytimeout() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public int getReadytimeout() {
        return readytimeout_;
      }
      public Builder setReadytimeout(int value) {
        bitField0_ |= 0x00000040;
        readytimeout_ = value;
        onChanged();
        return this;
      }
      public Builder clearReadytimeout() {
        bitField0_ = (bitField0_ & ~0x00000040);
        readytimeout_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 awardRoom = 8;
      private int awardRoom_ ;
      public boolean hasAwardRoom() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public int getAwardRoom() {
        return awardRoom_;
      }
      public Builder setAwardRoom(int value) {
        bitField0_ |= 0x00000080;
        awardRoom_ = value;
        onChanged();
        return this;
      }
      public Builder clearAwardRoom() {
        bitField0_ = (bitField0_ & ~0x00000080);
        awardRoom_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 laiziFlag = 9;
      private int laiziFlag_ ;
      public boolean hasLaiziFlag() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public int getLaiziFlag() {
        return laiziFlag_;
      }
      public Builder setLaiziFlag(int value) {
        bitField0_ |= 0x00000100;
        laiziFlag_ = value;
        onChanged();
        return this;
      }
      public Builder clearLaiziFlag() {
        bitField0_ = (bitField0_ & ~0x00000100);
        laiziFlag_ = 0;
        onChanged();
        return this;
      }
      
      // optional string roomName = 10;
      private java.lang.Object roomName_ = "";
      public boolean hasRoomName() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      public String getRoomName() {
        java.lang.Object ref = roomName_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          roomName_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setRoomName(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        roomName_ = value;
        onChanged();
        return this;
      }
      public Builder clearRoomName() {
        bitField0_ = (bitField0_ & ~0x00000200);
        roomName_ = getDefaultInstance().getRoomName();
        onChanged();
        return this;
      }
      void setRoomName(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000200;
        roomName_ = value;
        onChanged();
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.SeatRpy)
    }
    
    static {
      defaultInstance = new SeatRpy(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.SeatRpy)
  }
  
  public interface GameStartOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 gameNum = 1;
    boolean hasGameNum();
    int getGameNum();
    
    // optional uint32 bet = 2;
    boolean hasBet();
    int getBet();
    
    // repeated .com.backfire.socket.socketProto.CardInfo commcard = 3;
    java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> 
        getCommcardList();
    com.backfire.socket.socketProto.Doudizhu.CardInfo getCommcard(int index);
    int getCommcardCount();
    java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
        getCommcardOrBuilderList();
    com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getCommcardOrBuilder(
        int index);
    
    // optional uint32 dizhu = 4;
    boolean hasDizhu();
    int getDizhu();
    
    // optional uint32 timeout = 5;
    boolean hasTimeout();
    int getTimeout();
  }
  public static final class GameStart extends
      com.google.protobuf.GeneratedMessage
      implements GameStartOrBuilder {
    // Use GameStart.newBuilder() to construct.
    private GameStart(Builder builder) {
      super(builder);
    }
    private GameStart(boolean noInit) {}
    
    private static final GameStart defaultInstance;
    public static GameStart getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameStart getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameStart_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameStart_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 gameNum = 1;
    public static final int GAMENUM_FIELD_NUMBER = 1;
    private int gameNum_;
    public boolean hasGameNum() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameNum() {
      return gameNum_;
    }
    
    // optional uint32 bet = 2;
    public static final int BET_FIELD_NUMBER = 2;
    private int bet_;
    public boolean hasBet() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getBet() {
      return bet_;
    }
    
    // repeated .com.backfire.socket.socketProto.CardInfo commcard = 3;
    public static final int COMMCARD_FIELD_NUMBER = 3;
    private java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> commcard_;
    public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> getCommcardList() {
      return commcard_;
    }
    public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
        getCommcardOrBuilderList() {
      return commcard_;
    }
    public int getCommcardCount() {
      return commcard_.size();
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfo getCommcard(int index) {
      return commcard_.get(index);
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getCommcardOrBuilder(
        int index) {
      return commcard_.get(index);
    }
    
    // optional uint32 dizhu = 4;
    public static final int DIZHU_FIELD_NUMBER = 4;
    private int dizhu_;
    public boolean hasDizhu() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getDizhu() {
      return dizhu_;
    }
    
    // optional uint32 timeout = 5;
    public static final int TIMEOUT_FIELD_NUMBER = 5;
    private int timeout_;
    public boolean hasTimeout() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getTimeout() {
      return timeout_;
    }
    
    private void initFields() {
      gameNum_ = 0;
      bet_ = 0;
      commcard_ = java.util.Collections.emptyList();
      dizhu_ = 0;
      timeout_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameNum_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, bet_);
      }
      for (int i = 0; i < commcard_.size(); i++) {
        output.writeMessage(3, commcard_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, dizhu_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(5, timeout_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameNum_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, bet_);
      }
      for (int i = 0; i < commcard_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, commcard_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, dizhu_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, timeout_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.GameStart parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameStart parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameStart parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameStart parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameStart parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameStart parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameStart parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameStart parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameStart parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameStart parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.GameStart prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.GameStartOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameStart_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameStart_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.GameStart.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getCommcardFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        bet_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (commcardBuilder_ == null) {
          commcard_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          commcardBuilder_.clear();
        }
        dizhu_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        timeout_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.GameStart.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.GameStart getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.GameStart.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.GameStart build() {
        com.backfire.socket.socketProto.Doudizhu.GameStart result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.GameStart buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.GameStart result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.GameStart buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.GameStart result = new com.backfire.socket.socketProto.Doudizhu.GameStart(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameNum_ = gameNum_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.bet_ = bet_;
        if (commcardBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            commcard_ = java.util.Collections.unmodifiableList(commcard_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.commcard_ = commcard_;
        } else {
          result.commcard_ = commcardBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.dizhu_ = dizhu_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.timeout_ = timeout_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.GameStart) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.GameStart)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.GameStart other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.GameStart.getDefaultInstance()) return this;
        if (other.hasGameNum()) {
          setGameNum(other.getGameNum());
        }
        if (other.hasBet()) {
          setBet(other.getBet());
        }
        if (commcardBuilder_ == null) {
          if (!other.commcard_.isEmpty()) {
            if (commcard_.isEmpty()) {
              commcard_ = other.commcard_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureCommcardIsMutable();
              commcard_.addAll(other.commcard_);
            }
            onChanged();
          }
        } else {
          if (!other.commcard_.isEmpty()) {
            if (commcardBuilder_.isEmpty()) {
              commcardBuilder_.dispose();
              commcardBuilder_ = null;
              commcard_ = other.commcard_;
              bitField0_ = (bitField0_ & ~0x00000004);
              commcardBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getCommcardFieldBuilder() : null;
            } else {
              commcardBuilder_.addAllMessages(other.commcard_);
            }
          }
        }
        if (other.hasDizhu()) {
          setDizhu(other.getDizhu());
        }
        if (other.hasTimeout()) {
          setTimeout(other.getTimeout());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameNum_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              bet_ = input.readUInt32();
              break;
            }
            case 26: {
              com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.CardInfo.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addCommcard(subBuilder.buildPartial());
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              dizhu_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              timeout_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 gameNum = 1;
      private int gameNum_ ;
      public boolean hasGameNum() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameNum() {
        return gameNum_;
      }
      public Builder setGameNum(int value) {
        bitField0_ |= 0x00000001;
        gameNum_ = value;
        onChanged();
        return this;
      }
      public Builder clearGameNum() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameNum_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 bet = 2;
      private int bet_ ;
      public boolean hasBet() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getBet() {
        return bet_;
      }
      public Builder setBet(int value) {
        bitField0_ |= 0x00000002;
        bet_ = value;
        onChanged();
        return this;
      }
      public Builder clearBet() {
        bitField0_ = (bitField0_ & ~0x00000002);
        bet_ = 0;
        onChanged();
        return this;
      }
      
      // repeated .com.backfire.socket.socketProto.CardInfo commcard = 3;
      private java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> commcard_ =
        java.util.Collections.emptyList();
      private void ensureCommcardIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          commcard_ = new java.util.ArrayList<com.backfire.socket.socketProto.Doudizhu.CardInfo>(commcard_);
          bitField0_ |= 0x00000004;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> commcardBuilder_;
      
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> getCommcardList() {
        if (commcardBuilder_ == null) {
          return java.util.Collections.unmodifiableList(commcard_);
        } else {
          return commcardBuilder_.getMessageList();
        }
      }
      public int getCommcardCount() {
        if (commcardBuilder_ == null) {
          return commcard_.size();
        } else {
          return commcardBuilder_.getCount();
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo getCommcard(int index) {
        if (commcardBuilder_ == null) {
          return commcard_.get(index);
        } else {
          return commcardBuilder_.getMessage(index);
        }
      }
      public Builder setCommcard(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (commcardBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCommcardIsMutable();
          commcard_.set(index, value);
          onChanged();
        } else {
          commcardBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setCommcard(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (commcardBuilder_ == null) {
          ensureCommcardIsMutable();
          commcard_.set(index, builderForValue.build());
          onChanged();
        } else {
          commcardBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addCommcard(com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (commcardBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCommcardIsMutable();
          commcard_.add(value);
          onChanged();
        } else {
          commcardBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addCommcard(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (commcardBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCommcardIsMutable();
          commcard_.add(index, value);
          onChanged();
        } else {
          commcardBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addCommcard(
          com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (commcardBuilder_ == null) {
          ensureCommcardIsMutable();
          commcard_.add(builderForValue.build());
          onChanged();
        } else {
          commcardBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addCommcard(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (commcardBuilder_ == null) {
          ensureCommcardIsMutable();
          commcard_.add(index, builderForValue.build());
          onChanged();
        } else {
          commcardBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllCommcard(
          java.lang.Iterable<? extends com.backfire.socket.socketProto.Doudizhu.CardInfo> values) {
        if (commcardBuilder_ == null) {
          ensureCommcardIsMutable();
          super.addAll(values, commcard_);
          onChanged();
        } else {
          commcardBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearCommcard() {
        if (commcardBuilder_ == null) {
          commcard_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          commcardBuilder_.clear();
        }
        return this;
      }
      public Builder removeCommcard(int index) {
        if (commcardBuilder_ == null) {
          ensureCommcardIsMutable();
          commcard_.remove(index);
          onChanged();
        } else {
          commcardBuilder_.remove(index);
        }
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder getCommcardBuilder(
          int index) {
        return getCommcardFieldBuilder().getBuilder(index);
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getCommcardOrBuilder(
          int index) {
        if (commcardBuilder_ == null) {
          return commcard_.get(index);  } else {
          return commcardBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
           getCommcardOrBuilderList() {
        if (commcardBuilder_ != null) {
          return commcardBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(commcard_);
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder addCommcardBuilder() {
        return getCommcardFieldBuilder().addBuilder(
            com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance());
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder addCommcardBuilder(
          int index) {
        return getCommcardFieldBuilder().addBuilder(
            index, com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance());
      }
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder> 
           getCommcardBuilderList() {
        return getCommcardFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
          getCommcardFieldBuilder() {
        if (commcardBuilder_ == null) {
          commcardBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder>(
                  commcard_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          commcard_ = null;
        }
        return commcardBuilder_;
      }
      
      // optional uint32 dizhu = 4;
      private int dizhu_ ;
      public boolean hasDizhu() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getDizhu() {
        return dizhu_;
      }
      public Builder setDizhu(int value) {
        bitField0_ |= 0x00000008;
        dizhu_ = value;
        onChanged();
        return this;
      }
      public Builder clearDizhu() {
        bitField0_ = (bitField0_ & ~0x00000008);
        dizhu_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 timeout = 5;
      private int timeout_ ;
      public boolean hasTimeout() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getTimeout() {
        return timeout_;
      }
      public Builder setTimeout(int value) {
        bitField0_ |= 0x00000010;
        timeout_ = value;
        onChanged();
        return this;
      }
      public Builder clearTimeout() {
        bitField0_ = (bitField0_ & ~0x00000010);
        timeout_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.GameStart)
    }
    
    static {
      defaultInstance = new GameStart(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.GameStart)
  }
  
  public interface QiangdizhuReqOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 ratio = 1;
    boolean hasRatio();
    int getRatio();
    
    // optional uint32 giveup = 2;
    boolean hasGiveup();
    int getGiveup();
  }
  public static final class QiangdizhuReq extends
      com.google.protobuf.GeneratedMessage
      implements QiangdizhuReqOrBuilder {
    // Use QiangdizhuReq.newBuilder() to construct.
    private QiangdizhuReq(Builder builder) {
      super(builder);
    }
    private QiangdizhuReq(boolean noInit) {}
    
    private static final QiangdizhuReq defaultInstance;
    public static QiangdizhuReq getDefaultInstance() {
      return defaultInstance;
    }
    
    public QiangdizhuReq getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_QiangdizhuReq_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_QiangdizhuReq_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 ratio = 1;
    public static final int RATIO_FIELD_NUMBER = 1;
    private int ratio_;
    public boolean hasRatio() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRatio() {
      return ratio_;
    }
    
    // optional uint32 giveup = 2;
    public static final int GIVEUP_FIELD_NUMBER = 2;
    private int giveup_;
    public boolean hasGiveup() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getGiveup() {
      return giveup_;
    }
    
    private void initFields() {
      ratio_ = 0;
      giveup_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ratio_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, giveup_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ratio_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, giveup_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.QiangdizhuReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_QiangdizhuReq_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_QiangdizhuReq_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        ratio_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        giveup_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq build() {
        com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq result = new com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ratio_ = ratio_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.giveup_ = giveup_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq.getDefaultInstance()) return this;
        if (other.hasRatio()) {
          setRatio(other.getRatio());
        }
        if (other.hasGiveup()) {
          setGiveup(other.getGiveup());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ratio_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              giveup_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 ratio = 1;
      private int ratio_ ;
      public boolean hasRatio() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRatio() {
        return ratio_;
      }
      public Builder setRatio(int value) {
        bitField0_ |= 0x00000001;
        ratio_ = value;
        onChanged();
        return this;
      }
      public Builder clearRatio() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ratio_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 giveup = 2;
      private int giveup_ ;
      public boolean hasGiveup() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getGiveup() {
        return giveup_;
      }
      public Builder setGiveup(int value) {
        bitField0_ |= 0x00000002;
        giveup_ = value;
        onChanged();
        return this;
      }
      public Builder clearGiveup() {
        bitField0_ = (bitField0_ & ~0x00000002);
        giveup_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.QiangdizhuReq)
    }
    
    static {
      defaultInstance = new QiangdizhuReq(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.QiangdizhuReq)
  }
  
  public interface QiangdizhuRpyOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 ret = 1;
    boolean hasRet();
    int getRet();
    
    // optional uint32 retcode = 2;
    boolean hasRetcode();
    int getRetcode();
    
    // optional string retmsg = 3;
    boolean hasRetmsg();
    String getRetmsg();
    
    // optional uint32 ratio = 4;
    boolean hasRatio();
    int getRatio();
    
    // optional uint32 seatid = 5;
    boolean hasSeatid();
    int getSeatid();
    
    // optional uint32 timeout = 6;
    boolean hasTimeout();
    int getTimeout();
    
    // optional uint32 callCount = 7;
    boolean hasCallCount();
    int getCallCount();
  }
  public static final class QiangdizhuRpy extends
      com.google.protobuf.GeneratedMessage
      implements QiangdizhuRpyOrBuilder {
    // Use QiangdizhuRpy.newBuilder() to construct.
    private QiangdizhuRpy(Builder builder) {
      super(builder);
    }
    private QiangdizhuRpy(boolean noInit) {}
    
    private static final QiangdizhuRpy defaultInstance;
    public static QiangdizhuRpy getDefaultInstance() {
      return defaultInstance;
    }
    
    public QiangdizhuRpy getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_QiangdizhuRpy_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_QiangdizhuRpy_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 ret = 1;
    public static final int RET_FIELD_NUMBER = 1;
    private int ret_;
    public boolean hasRet() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRet() {
      return ret_;
    }
    
    // optional uint32 retcode = 2;
    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retcode_;
    public boolean hasRetcode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getRetcode() {
      return retcode_;
    }
    
    // optional string retmsg = 3;
    public static final int RETMSG_FIELD_NUMBER = 3;
    private java.lang.Object retmsg_;
    public boolean hasRetmsg() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getRetmsg() {
      java.lang.Object ref = retmsg_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          retmsg_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getRetmsgBytes() {
      java.lang.Object ref = retmsg_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        retmsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional uint32 ratio = 4;
    public static final int RATIO_FIELD_NUMBER = 4;
    private int ratio_;
    public boolean hasRatio() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getRatio() {
      return ratio_;
    }
    
    // optional uint32 seatid = 5;
    public static final int SEATID_FIELD_NUMBER = 5;
    private int seatid_;
    public boolean hasSeatid() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getSeatid() {
      return seatid_;
    }
    
    // optional uint32 timeout = 6;
    public static final int TIMEOUT_FIELD_NUMBER = 6;
    private int timeout_;
    public boolean hasTimeout() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public int getTimeout() {
      return timeout_;
    }
    
    // optional uint32 callCount = 7;
    public static final int CALLCOUNT_FIELD_NUMBER = 7;
    private int callCount_;
    public boolean hasCallCount() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    public int getCallCount() {
      return callCount_;
    }
    
    private void initFields() {
      ret_ = 0;
      retcode_ = 0;
      retmsg_ = "";
      ratio_ = 0;
      seatid_ = 0;
      timeout_ = 0;
      callCount_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, retcode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getRetmsgBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, ratio_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, seatid_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, timeout_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, callCount_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, retcode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getRetmsgBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, ratio_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, seatid_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, timeout_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, callCount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_QiangdizhuRpy_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_QiangdizhuRpy_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        ret_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        retcode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retmsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        ratio_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        seatid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        timeout_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        callCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy build() {
        com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy result = new com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ret_ = ret_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.retcode_ = retcode_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retmsg_ = retmsg_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.ratio_ = ratio_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.seatid_ = seatid_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.timeout_ = timeout_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.callCount_ = callCount_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.getDefaultInstance()) return this;
        if (other.hasRet()) {
          setRet(other.getRet());
        }
        if (other.hasRetcode()) {
          setRetcode(other.getRetcode());
        }
        if (other.hasRetmsg()) {
          setRetmsg(other.getRetmsg());
        }
        if (other.hasRatio()) {
          setRatio(other.getRatio());
        }
        if (other.hasSeatid()) {
          setSeatid(other.getSeatid());
        }
        if (other.hasTimeout()) {
          setTimeout(other.getTimeout());
        }
        if (other.hasCallCount()) {
          setCallCount(other.getCallCount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ret_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retcode_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              retmsg_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              ratio_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              seatid_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              timeout_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              callCount_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 ret = 1;
      private int ret_ ;
      public boolean hasRet() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRet() {
        return ret_;
      }
      public Builder setRet(int value) {
        bitField0_ |= 0x00000001;
        ret_ = value;
        onChanged();
        return this;
      }
      public Builder clearRet() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ret_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 retcode = 2;
      private int retcode_ ;
      public boolean hasRetcode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getRetcode() {
        return retcode_;
      }
      public Builder setRetcode(int value) {
        bitField0_ |= 0x00000002;
        retcode_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetcode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retcode_ = 0;
        onChanged();
        return this;
      }
      
      // optional string retmsg = 3;
      private java.lang.Object retmsg_ = "";
      public boolean hasRetmsg() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getRetmsg() {
        java.lang.Object ref = retmsg_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          retmsg_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setRetmsg(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retmsg_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetmsg() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retmsg_ = getDefaultInstance().getRetmsg();
        onChanged();
        return this;
      }
      void setRetmsg(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000004;
        retmsg_ = value;
        onChanged();
      }
      
      // optional uint32 ratio = 4;
      private int ratio_ ;
      public boolean hasRatio() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getRatio() {
        return ratio_;
      }
      public Builder setRatio(int value) {
        bitField0_ |= 0x00000008;
        ratio_ = value;
        onChanged();
        return this;
      }
      public Builder clearRatio() {
        bitField0_ = (bitField0_ & ~0x00000008);
        ratio_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 seatid = 5;
      private int seatid_ ;
      public boolean hasSeatid() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getSeatid() {
        return seatid_;
      }
      public Builder setSeatid(int value) {
        bitField0_ |= 0x00000010;
        seatid_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatid() {
        bitField0_ = (bitField0_ & ~0x00000010);
        seatid_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 timeout = 6;
      private int timeout_ ;
      public boolean hasTimeout() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public int getTimeout() {
        return timeout_;
      }
      public Builder setTimeout(int value) {
        bitField0_ |= 0x00000020;
        timeout_ = value;
        onChanged();
        return this;
      }
      public Builder clearTimeout() {
        bitField0_ = (bitField0_ & ~0x00000020);
        timeout_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 callCount = 7;
      private int callCount_ ;
      public boolean hasCallCount() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public int getCallCount() {
        return callCount_;
      }
      public Builder setCallCount(int value) {
        bitField0_ |= 0x00000040;
        callCount_ = value;
        onChanged();
        return this;
      }
      public Builder clearCallCount() {
        bitField0_ = (bitField0_ & ~0x00000040);
        callCount_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.QiangdizhuRpy)
    }
    
    static {
      defaultInstance = new QiangdizhuRpy(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.QiangdizhuRpy)
  }
  
  public interface CardInfoOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 cardFace = 1;
    boolean hasCardFace();
    int getCardFace();
    
    // optional uint32 cardSuit = 2;
    boolean hasCardSuit();
    int getCardSuit();
    
    // optional uint32 laiziFace = 3;
    boolean hasLaiziFace();
    int getLaiziFace();
  }
  public static final class CardInfo extends
      com.google.protobuf.GeneratedMessage
      implements CardInfoOrBuilder {
    // Use CardInfo.newBuilder() to construct.
    private CardInfo(Builder builder) {
      super(builder);
    }
    private CardInfo(boolean noInit) {}
    
    private static final CardInfo defaultInstance;
    public static CardInfo getDefaultInstance() {
      return defaultInstance;
    }
    
    public CardInfo getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_CardInfo_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_CardInfo_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 cardFace = 1;
    public static final int CARDFACE_FIELD_NUMBER = 1;
    private int cardFace_;
    public boolean hasCardFace() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getCardFace() {
      return cardFace_;
    }
    
    // optional uint32 cardSuit = 2;
    public static final int CARDSUIT_FIELD_NUMBER = 2;
    private int cardSuit_;
    public boolean hasCardSuit() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getCardSuit() {
      return cardSuit_;
    }
    
    // optional uint32 laiziFace = 3;
    public static final int LAIZIFACE_FIELD_NUMBER = 3;
    private int laiziFace_;
    public boolean hasLaiziFace() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getLaiziFace() {
      return laiziFace_;
    }
    
    private void initFields() {
      cardFace_ = 0;
      cardSuit_ = 0;
      laiziFace_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, cardFace_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, cardSuit_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, laiziFace_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, cardFace_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, cardSuit_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, laiziFace_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.CardInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.CardInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.CardInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.CardInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.CardInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.CardInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.CardInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.CardInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.CardInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.CardInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.CardInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_CardInfo_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_CardInfo_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.CardInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        cardFace_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        cardSuit_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        laiziFace_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.CardInfo.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.CardInfo getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.CardInfo build() {
        com.backfire.socket.socketProto.Doudizhu.CardInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.CardInfo buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.CardInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.CardInfo buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.CardInfo result = new com.backfire.socket.socketProto.Doudizhu.CardInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.cardFace_ = cardFace_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.cardSuit_ = cardSuit_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.laiziFace_ = laiziFace_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.CardInfo) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.CardInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.CardInfo other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance()) return this;
        if (other.hasCardFace()) {
          setCardFace(other.getCardFace());
        }
        if (other.hasCardSuit()) {
          setCardSuit(other.getCardSuit());
        }
        if (other.hasLaiziFace()) {
          setLaiziFace(other.getLaiziFace());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              cardFace_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              cardSuit_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              laiziFace_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 cardFace = 1;
      private int cardFace_ ;
      public boolean hasCardFace() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getCardFace() {
        return cardFace_;
      }
      public Builder setCardFace(int value) {
        bitField0_ |= 0x00000001;
        cardFace_ = value;
        onChanged();
        return this;
      }
      public Builder clearCardFace() {
        bitField0_ = (bitField0_ & ~0x00000001);
        cardFace_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 cardSuit = 2;
      private int cardSuit_ ;
      public boolean hasCardSuit() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getCardSuit() {
        return cardSuit_;
      }
      public Builder setCardSuit(int value) {
        bitField0_ |= 0x00000002;
        cardSuit_ = value;
        onChanged();
        return this;
      }
      public Builder clearCardSuit() {
        bitField0_ = (bitField0_ & ~0x00000002);
        cardSuit_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 laiziFace = 3;
      private int laiziFace_ ;
      public boolean hasLaiziFace() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getLaiziFace() {
        return laiziFace_;
      }
      public Builder setLaiziFace(int value) {
        bitField0_ |= 0x00000004;
        laiziFace_ = value;
        onChanged();
        return this;
      }
      public Builder clearLaiziFace() {
        bitField0_ = (bitField0_ & ~0x00000004);
        laiziFace_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.CardInfo)
    }
    
    static {
      defaultInstance = new CardInfo(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.CardInfo)
  }
  
  public interface HandCardOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // repeated .com.backfire.socket.socketProto.CardInfo handCardList = 1;
    java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> 
        getHandCardListList();
    com.backfire.socket.socketProto.Doudizhu.CardInfo getHandCardList(int index);
    int getHandCardListCount();
    java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
        getHandCardListOrBuilderList();
    com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getHandCardListOrBuilder(
        int index);
  }
  public static final class HandCard extends
      com.google.protobuf.GeneratedMessage
      implements HandCardOrBuilder {
    // Use HandCard.newBuilder() to construct.
    private HandCard(Builder builder) {
      super(builder);
    }
    private HandCard(boolean noInit) {}
    
    private static final HandCard defaultInstance;
    public static HandCard getDefaultInstance() {
      return defaultInstance;
    }
    
    public HandCard getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_HandCard_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_HandCard_fieldAccessorTable;
    }
    
    // repeated .com.backfire.socket.socketProto.CardInfo handCardList = 1;
    public static final int HANDCARDLIST_FIELD_NUMBER = 1;
    private java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> handCardList_;
    public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> getHandCardListList() {
      return handCardList_;
    }
    public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
        getHandCardListOrBuilderList() {
      return handCardList_;
    }
    public int getHandCardListCount() {
      return handCardList_.size();
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfo getHandCardList(int index) {
      return handCardList_.get(index);
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getHandCardListOrBuilder(
        int index) {
      return handCardList_.get(index);
    }
    
    private void initFields() {
      handCardList_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < handCardList_.size(); i++) {
        output.writeMessage(1, handCardList_.get(i));
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      for (int i = 0; i < handCardList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, handCardList_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.HandCard parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.HandCard parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.HandCard parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.HandCard parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.HandCard parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.HandCard parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.HandCard parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.HandCard parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.HandCard parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.HandCard parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.HandCard prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.HandCardOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_HandCard_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_HandCard_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.HandCard.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getHandCardListFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        if (handCardListBuilder_ == null) {
          handCardList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          handCardListBuilder_.clear();
        }
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.HandCard.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.HandCard getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.HandCard.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.HandCard build() {
        com.backfire.socket.socketProto.Doudizhu.HandCard result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.HandCard buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.HandCard result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.HandCard buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.HandCard result = new com.backfire.socket.socketProto.Doudizhu.HandCard(this);
        int from_bitField0_ = bitField0_;
        if (handCardListBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            handCardList_ = java.util.Collections.unmodifiableList(handCardList_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.handCardList_ = handCardList_;
        } else {
          result.handCardList_ = handCardListBuilder_.build();
        }
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.HandCard) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.HandCard)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.HandCard other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.HandCard.getDefaultInstance()) return this;
        if (handCardListBuilder_ == null) {
          if (!other.handCardList_.isEmpty()) {
            if (handCardList_.isEmpty()) {
              handCardList_ = other.handCardList_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureHandCardListIsMutable();
              handCardList_.addAll(other.handCardList_);
            }
            onChanged();
          }
        } else {
          if (!other.handCardList_.isEmpty()) {
            if (handCardListBuilder_.isEmpty()) {
              handCardListBuilder_.dispose();
              handCardListBuilder_ = null;
              handCardList_ = other.handCardList_;
              bitField0_ = (bitField0_ & ~0x00000001);
              handCardListBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getHandCardListFieldBuilder() : null;
            } else {
              handCardListBuilder_.addAllMessages(other.handCardList_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 10: {
              com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.CardInfo.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addHandCardList(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // repeated .com.backfire.socket.socketProto.CardInfo handCardList = 1;
      private java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> handCardList_ =
        java.util.Collections.emptyList();
      private void ensureHandCardListIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          handCardList_ = new java.util.ArrayList<com.backfire.socket.socketProto.Doudizhu.CardInfo>(handCardList_);
          bitField0_ |= 0x00000001;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> handCardListBuilder_;
      
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> getHandCardListList() {
        if (handCardListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(handCardList_);
        } else {
          return handCardListBuilder_.getMessageList();
        }
      }
      public int getHandCardListCount() {
        if (handCardListBuilder_ == null) {
          return handCardList_.size();
        } else {
          return handCardListBuilder_.getCount();
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo getHandCardList(int index) {
        if (handCardListBuilder_ == null) {
          return handCardList_.get(index);
        } else {
          return handCardListBuilder_.getMessage(index);
        }
      }
      public Builder setHandCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (handCardListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHandCardListIsMutable();
          handCardList_.set(index, value);
          onChanged();
        } else {
          handCardListBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setHandCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (handCardListBuilder_ == null) {
          ensureHandCardListIsMutable();
          handCardList_.set(index, builderForValue.build());
          onChanged();
        } else {
          handCardListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addHandCardList(com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (handCardListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHandCardListIsMutable();
          handCardList_.add(value);
          onChanged();
        } else {
          handCardListBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addHandCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (handCardListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHandCardListIsMutable();
          handCardList_.add(index, value);
          onChanged();
        } else {
          handCardListBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addHandCardList(
          com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (handCardListBuilder_ == null) {
          ensureHandCardListIsMutable();
          handCardList_.add(builderForValue.build());
          onChanged();
        } else {
          handCardListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addHandCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (handCardListBuilder_ == null) {
          ensureHandCardListIsMutable();
          handCardList_.add(index, builderForValue.build());
          onChanged();
        } else {
          handCardListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllHandCardList(
          java.lang.Iterable<? extends com.backfire.socket.socketProto.Doudizhu.CardInfo> values) {
        if (handCardListBuilder_ == null) {
          ensureHandCardListIsMutable();
          super.addAll(values, handCardList_);
          onChanged();
        } else {
          handCardListBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearHandCardList() {
        if (handCardListBuilder_ == null) {
          handCardList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          handCardListBuilder_.clear();
        }
        return this;
      }
      public Builder removeHandCardList(int index) {
        if (handCardListBuilder_ == null) {
          ensureHandCardListIsMutable();
          handCardList_.remove(index);
          onChanged();
        } else {
          handCardListBuilder_.remove(index);
        }
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder getHandCardListBuilder(
          int index) {
        return getHandCardListFieldBuilder().getBuilder(index);
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getHandCardListOrBuilder(
          int index) {
        if (handCardListBuilder_ == null) {
          return handCardList_.get(index);  } else {
          return handCardListBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
           getHandCardListOrBuilderList() {
        if (handCardListBuilder_ != null) {
          return handCardListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(handCardList_);
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder addHandCardListBuilder() {
        return getHandCardListFieldBuilder().addBuilder(
            com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance());
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder addHandCardListBuilder(
          int index) {
        return getHandCardListFieldBuilder().addBuilder(
            index, com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance());
      }
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder> 
           getHandCardListBuilderList() {
        return getHandCardListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
          getHandCardListFieldBuilder() {
        if (handCardListBuilder_ == null) {
          handCardListBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder>(
                  handCardList_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          handCardList_ = null;
        }
        return handCardListBuilder_;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.HandCard)
    }
    
    static {
      defaultInstance = new HandCard(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.HandCard)
  }
  
  public interface PlayerPlayActionReqOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint64 uid = 1;
    boolean hasUid();
    long getUid();
    
    // optional uint32 action = 2;
    boolean hasAction();
    int getAction();
    
    // repeated .com.backfire.socket.socketProto.CardInfo pushCardList = 3;
    java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> 
        getPushCardListList();
    com.backfire.socket.socketProto.Doudizhu.CardInfo getPushCardList(int index);
    int getPushCardListCount();
    java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
        getPushCardListOrBuilderList();
    com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getPushCardListOrBuilder(
        int index);
    
    // optional uint32 emotionId = 4;
    boolean hasEmotionId();
    int getEmotionId();
  }
  public static final class PlayerPlayActionReq extends
      com.google.protobuf.GeneratedMessage
      implements PlayerPlayActionReqOrBuilder {
    // Use PlayerPlayActionReq.newBuilder() to construct.
    private PlayerPlayActionReq(Builder builder) {
      super(builder);
    }
    private PlayerPlayActionReq(boolean noInit) {}
    
    private static final PlayerPlayActionReq defaultInstance;
    public static PlayerPlayActionReq getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayerPlayActionReq getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerPlayActionReq_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerPlayActionReq_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint64 uid = 1;
    public static final int UID_FIELD_NUMBER = 1;
    private long uid_;
    public boolean hasUid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public long getUid() {
      return uid_;
    }
    
    // optional uint32 action = 2;
    public static final int ACTION_FIELD_NUMBER = 2;
    private int action_;
    public boolean hasAction() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getAction() {
      return action_;
    }
    
    // repeated .com.backfire.socket.socketProto.CardInfo pushCardList = 3;
    public static final int PUSHCARDLIST_FIELD_NUMBER = 3;
    private java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> pushCardList_;
    public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> getPushCardListList() {
      return pushCardList_;
    }
    public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
        getPushCardListOrBuilderList() {
      return pushCardList_;
    }
    public int getPushCardListCount() {
      return pushCardList_.size();
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfo getPushCardList(int index) {
      return pushCardList_.get(index);
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getPushCardListOrBuilder(
        int index) {
      return pushCardList_.get(index);
    }
    
    // optional uint32 emotionId = 4;
    public static final int EMOTIONID_FIELD_NUMBER = 4;
    private int emotionId_;
    public boolean hasEmotionId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getEmotionId() {
      return emotionId_;
    }
    
    private void initFields() {
      uid_ = 0L;
      action_ = 0;
      pushCardList_ = java.util.Collections.emptyList();
      emotionId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, action_);
      }
      for (int i = 0; i < pushCardList_.size(); i++) {
        output.writeMessage(3, pushCardList_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, emotionId_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, action_);
      }
      for (int i = 0; i < pushCardList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, pushCardList_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, emotionId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerPlayActionReq_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerPlayActionReq_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPushCardListFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        uid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        action_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (pushCardListBuilder_ == null) {
          pushCardList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          pushCardListBuilder_.clear();
        }
        emotionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq build() {
        com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq result = new com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.action_ = action_;
        if (pushCardListBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            pushCardList_ = java.util.Collections.unmodifiableList(pushCardList_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.pushCardList_ = pushCardList_;
        } else {
          result.pushCardList_ = pushCardListBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.emotionId_ = emotionId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq.getDefaultInstance()) return this;
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        if (other.hasAction()) {
          setAction(other.getAction());
        }
        if (pushCardListBuilder_ == null) {
          if (!other.pushCardList_.isEmpty()) {
            if (pushCardList_.isEmpty()) {
              pushCardList_ = other.pushCardList_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensurePushCardListIsMutable();
              pushCardList_.addAll(other.pushCardList_);
            }
            onChanged();
          }
        } else {
          if (!other.pushCardList_.isEmpty()) {
            if (pushCardListBuilder_.isEmpty()) {
              pushCardListBuilder_.dispose();
              pushCardListBuilder_ = null;
              pushCardList_ = other.pushCardList_;
              bitField0_ = (bitField0_ & ~0x00000004);
              pushCardListBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPushCardListFieldBuilder() : null;
            } else {
              pushCardListBuilder_.addAllMessages(other.pushCardList_);
            }
          }
        }
        if (other.hasEmotionId()) {
          setEmotionId(other.getEmotionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              uid_ = input.readUInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              action_ = input.readUInt32();
              break;
            }
            case 26: {
              com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.CardInfo.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addPushCardList(subBuilder.buildPartial());
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              emotionId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint64 uid = 1;
      private long uid_ ;
      public boolean hasUid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public long getUid() {
        return uid_;
      }
      public Builder setUid(long value) {
        bitField0_ |= 0x00000001;
        uid_ = value;
        onChanged();
        return this;
      }
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0L;
        onChanged();
        return this;
      }
      
      // optional uint32 action = 2;
      private int action_ ;
      public boolean hasAction() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getAction() {
        return action_;
      }
      public Builder setAction(int value) {
        bitField0_ |= 0x00000002;
        action_ = value;
        onChanged();
        return this;
      }
      public Builder clearAction() {
        bitField0_ = (bitField0_ & ~0x00000002);
        action_ = 0;
        onChanged();
        return this;
      }
      
      // repeated .com.backfire.socket.socketProto.CardInfo pushCardList = 3;
      private java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> pushCardList_ =
        java.util.Collections.emptyList();
      private void ensurePushCardListIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          pushCardList_ = new java.util.ArrayList<com.backfire.socket.socketProto.Doudizhu.CardInfo>(pushCardList_);
          bitField0_ |= 0x00000004;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> pushCardListBuilder_;
      
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> getPushCardListList() {
        if (pushCardListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pushCardList_);
        } else {
          return pushCardListBuilder_.getMessageList();
        }
      }
      public int getPushCardListCount() {
        if (pushCardListBuilder_ == null) {
          return pushCardList_.size();
        } else {
          return pushCardListBuilder_.getCount();
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo getPushCardList(int index) {
        if (pushCardListBuilder_ == null) {
          return pushCardList_.get(index);
        } else {
          return pushCardListBuilder_.getMessage(index);
        }
      }
      public Builder setPushCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (pushCardListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePushCardListIsMutable();
          pushCardList_.set(index, value);
          onChanged();
        } else {
          pushCardListBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setPushCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (pushCardListBuilder_ == null) {
          ensurePushCardListIsMutable();
          pushCardList_.set(index, builderForValue.build());
          onChanged();
        } else {
          pushCardListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addPushCardList(com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (pushCardListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePushCardListIsMutable();
          pushCardList_.add(value);
          onChanged();
        } else {
          pushCardListBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addPushCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (pushCardListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePushCardListIsMutable();
          pushCardList_.add(index, value);
          onChanged();
        } else {
          pushCardListBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addPushCardList(
          com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (pushCardListBuilder_ == null) {
          ensurePushCardListIsMutable();
          pushCardList_.add(builderForValue.build());
          onChanged();
        } else {
          pushCardListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addPushCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (pushCardListBuilder_ == null) {
          ensurePushCardListIsMutable();
          pushCardList_.add(index, builderForValue.build());
          onChanged();
        } else {
          pushCardListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllPushCardList(
          java.lang.Iterable<? extends com.backfire.socket.socketProto.Doudizhu.CardInfo> values) {
        if (pushCardListBuilder_ == null) {
          ensurePushCardListIsMutable();
          super.addAll(values, pushCardList_);
          onChanged();
        } else {
          pushCardListBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearPushCardList() {
        if (pushCardListBuilder_ == null) {
          pushCardList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          pushCardListBuilder_.clear();
        }
        return this;
      }
      public Builder removePushCardList(int index) {
        if (pushCardListBuilder_ == null) {
          ensurePushCardListIsMutable();
          pushCardList_.remove(index);
          onChanged();
        } else {
          pushCardListBuilder_.remove(index);
        }
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder getPushCardListBuilder(
          int index) {
        return getPushCardListFieldBuilder().getBuilder(index);
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getPushCardListOrBuilder(
          int index) {
        if (pushCardListBuilder_ == null) {
          return pushCardList_.get(index);  } else {
          return pushCardListBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
           getPushCardListOrBuilderList() {
        if (pushCardListBuilder_ != null) {
          return pushCardListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pushCardList_);
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder addPushCardListBuilder() {
        return getPushCardListFieldBuilder().addBuilder(
            com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance());
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder addPushCardListBuilder(
          int index) {
        return getPushCardListFieldBuilder().addBuilder(
            index, com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance());
      }
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder> 
           getPushCardListBuilderList() {
        return getPushCardListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
          getPushCardListFieldBuilder() {
        if (pushCardListBuilder_ == null) {
          pushCardListBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder>(
                  pushCardList_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          pushCardList_ = null;
        }
        return pushCardListBuilder_;
      }
      
      // optional uint32 emotionId = 4;
      private int emotionId_ ;
      public boolean hasEmotionId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getEmotionId() {
        return emotionId_;
      }
      public Builder setEmotionId(int value) {
        bitField0_ |= 0x00000008;
        emotionId_ = value;
        onChanged();
        return this;
      }
      public Builder clearEmotionId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        emotionId_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.PlayerPlayActionReq)
    }
    
    static {
      defaultInstance = new PlayerPlayActionReq(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.PlayerPlayActionReq)
  }
  
  public interface PlayerPlayActionRpyOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 ret = 1;
    boolean hasRet();
    int getRet();
    
    // optional uint32 retCode = 2;
    boolean hasRetCode();
    int getRetCode();
    
    // optional string retMsg = 3;
    boolean hasRetMsg();
    String getRetMsg();
  }
  public static final class PlayerPlayActionRpy extends
      com.google.protobuf.GeneratedMessage
      implements PlayerPlayActionRpyOrBuilder {
    // Use PlayerPlayActionRpy.newBuilder() to construct.
    private PlayerPlayActionRpy(Builder builder) {
      super(builder);
    }
    private PlayerPlayActionRpy(boolean noInit) {}
    
    private static final PlayerPlayActionRpy defaultInstance;
    public static PlayerPlayActionRpy getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayerPlayActionRpy getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerPlayActionRpy_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerPlayActionRpy_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 ret = 1;
    public static final int RET_FIELD_NUMBER = 1;
    private int ret_;
    public boolean hasRet() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRet() {
      return ret_;
    }
    
    // optional uint32 retCode = 2;
    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getRetCode() {
      return retCode_;
    }
    
    // optional string retMsg = 3;
    public static final int RETMSG_FIELD_NUMBER = 3;
    private java.lang.Object retMsg_;
    public boolean hasRetMsg() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getRetMsg() {
      java.lang.Object ref = retMsg_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          retMsg_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getRetMsgBytes() {
      java.lang.Object ref = retMsg_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        retMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      ret_ = 0;
      retCode_ = 0;
      retMsg_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getRetMsgBytes());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ret_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getRetMsgBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerPlayActionRpy_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerPlayActionRpy_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        ret_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retMsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy build() {
        com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy result = new com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ret_ = ret_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.retCode_ = retCode_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retMsg_ = retMsg_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy.getDefaultInstance()) return this;
        if (other.hasRet()) {
          setRet(other.getRet());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetMsg()) {
          setRetMsg(other.getRetMsg());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ret_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              retMsg_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 ret = 1;
      private int ret_ ;
      public boolean hasRet() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRet() {
        return ret_;
      }
      public Builder setRet(int value) {
        bitField0_ |= 0x00000001;
        ret_ = value;
        onChanged();
        return this;
      }
      public Builder clearRet() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ret_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 retCode = 2;
      private int retCode_ ;
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getRetCode() {
        return retCode_;
      }
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }
      
      // optional string retMsg = 3;
      private java.lang.Object retMsg_ = "";
      public boolean hasRetMsg() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getRetMsg() {
        java.lang.Object ref = retMsg_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          retMsg_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setRetMsg(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retMsg_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetMsg() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retMsg_ = getDefaultInstance().getRetMsg();
        onChanged();
        return this;
      }
      void setRetMsg(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000004;
        retMsg_ = value;
        onChanged();
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.PlayerPlayActionRpy)
    }
    
    static {
      defaultInstance = new PlayerPlayActionRpy(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.PlayerPlayActionRpy)
  }
  
  public interface BroadcastPlayerActionOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint64 uid = 1;
    boolean hasUid();
    long getUid();
    
    // optional uint32 seatid = 2;
    boolean hasSeatid();
    int getSeatid();
    
    // optional uint32 action = 3;
    boolean hasAction();
    int getAction();
    
    // repeated .com.backfire.socket.socketProto.CardInfo pushCardList = 4;
    java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> 
        getPushCardListList();
    com.backfire.socket.socketProto.Doudizhu.CardInfo getPushCardList(int index);
    int getPushCardListCount();
    java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
        getPushCardListOrBuilderList();
    com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getPushCardListOrBuilder(
        int index);
    
    // optional uint32 emotionId = 5;
    boolean hasEmotionId();
    int getEmotionId();
    
    // optional uint64 nextuid = 6;
    boolean hasNextuid();
    long getNextuid();
    
    // optional uint32 nextseatid = 7;
    boolean hasNextseatid();
    int getNextseatid();
    
    // optional uint32 pointratio = 8;
    boolean hasPointratio();
    int getPointratio();
    
    // optional uint32 cardType = 9;
    boolean hasCardType();
    int getCardType();
    
    // optional uint32 highcard = 10;
    boolean hasHighcard();
    int getHighcard();
  }
  public static final class BroadcastPlayerAction extends
      com.google.protobuf.GeneratedMessage
      implements BroadcastPlayerActionOrBuilder {
    // Use BroadcastPlayerAction.newBuilder() to construct.
    private BroadcastPlayerAction(Builder builder) {
      super(builder);
    }
    private BroadcastPlayerAction(boolean noInit) {}
    
    private static final BroadcastPlayerAction defaultInstance;
    public static BroadcastPlayerAction getDefaultInstance() {
      return defaultInstance;
    }
    
    public BroadcastPlayerAction getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastPlayerAction_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastPlayerAction_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint64 uid = 1;
    public static final int UID_FIELD_NUMBER = 1;
    private long uid_;
    public boolean hasUid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public long getUid() {
      return uid_;
    }
    
    // optional uint32 seatid = 2;
    public static final int SEATID_FIELD_NUMBER = 2;
    private int seatid_;
    public boolean hasSeatid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getSeatid() {
      return seatid_;
    }
    
    // optional uint32 action = 3;
    public static final int ACTION_FIELD_NUMBER = 3;
    private int action_;
    public boolean hasAction() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getAction() {
      return action_;
    }
    
    // repeated .com.backfire.socket.socketProto.CardInfo pushCardList = 4;
    public static final int PUSHCARDLIST_FIELD_NUMBER = 4;
    private java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> pushCardList_;
    public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> getPushCardListList() {
      return pushCardList_;
    }
    public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
        getPushCardListOrBuilderList() {
      return pushCardList_;
    }
    public int getPushCardListCount() {
      return pushCardList_.size();
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfo getPushCardList(int index) {
      return pushCardList_.get(index);
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getPushCardListOrBuilder(
        int index) {
      return pushCardList_.get(index);
    }
    
    // optional uint32 emotionId = 5;
    public static final int EMOTIONID_FIELD_NUMBER = 5;
    private int emotionId_;
    public boolean hasEmotionId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getEmotionId() {
      return emotionId_;
    }
    
    // optional uint64 nextuid = 6;
    public static final int NEXTUID_FIELD_NUMBER = 6;
    private long nextuid_;
    public boolean hasNextuid() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public long getNextuid() {
      return nextuid_;
    }
    
    // optional uint32 nextseatid = 7;
    public static final int NEXTSEATID_FIELD_NUMBER = 7;
    private int nextseatid_;
    public boolean hasNextseatid() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public int getNextseatid() {
      return nextseatid_;
    }
    
    // optional uint32 pointratio = 8;
    public static final int POINTRATIO_FIELD_NUMBER = 8;
    private int pointratio_;
    public boolean hasPointratio() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    public int getPointratio() {
      return pointratio_;
    }
    
    // optional uint32 cardType = 9;
    public static final int CARDTYPE_FIELD_NUMBER = 9;
    private int cardType_;
    public boolean hasCardType() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    public int getCardType() {
      return cardType_;
    }
    
    // optional uint32 highcard = 10;
    public static final int HIGHCARD_FIELD_NUMBER = 10;
    private int highcard_;
    public boolean hasHighcard() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    public int getHighcard() {
      return highcard_;
    }
    
    private void initFields() {
      uid_ = 0L;
      seatid_ = 0;
      action_ = 0;
      pushCardList_ = java.util.Collections.emptyList();
      emotionId_ = 0;
      nextuid_ = 0L;
      nextseatid_ = 0;
      pointratio_ = 0;
      cardType_ = 0;
      highcard_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, seatid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, action_);
      }
      for (int i = 0; i < pushCardList_.size(); i++) {
        output.writeMessage(4, pushCardList_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(5, emotionId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt64(6, nextuid_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(7, nextseatid_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(8, pointratio_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(9, cardType_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeUInt32(10, highcard_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, uid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, seatid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, action_);
      }
      for (int i = 0; i < pushCardList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, pushCardList_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, emotionId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(6, nextuid_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, nextseatid_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, pointratio_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, cardType_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, highcard_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerActionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastPlayerAction_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastPlayerAction_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPushCardListFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        uid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        seatid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        action_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (pushCardListBuilder_ == null) {
          pushCardList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          pushCardListBuilder_.clear();
        }
        emotionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        nextuid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        nextseatid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        pointratio_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        cardType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        highcard_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction build() {
        com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction result = new com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.seatid_ = seatid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.action_ = action_;
        if (pushCardListBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            pushCardList_ = java.util.Collections.unmodifiableList(pushCardList_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.pushCardList_ = pushCardList_;
        } else {
          result.pushCardList_ = pushCardListBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.emotionId_ = emotionId_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.nextuid_ = nextuid_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.nextseatid_ = nextseatid_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        result.pointratio_ = pointratio_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000080;
        }
        result.cardType_ = cardType_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000100;
        }
        result.highcard_ = highcard_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.getDefaultInstance()) return this;
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        if (other.hasSeatid()) {
          setSeatid(other.getSeatid());
        }
        if (other.hasAction()) {
          setAction(other.getAction());
        }
        if (pushCardListBuilder_ == null) {
          if (!other.pushCardList_.isEmpty()) {
            if (pushCardList_.isEmpty()) {
              pushCardList_ = other.pushCardList_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensurePushCardListIsMutable();
              pushCardList_.addAll(other.pushCardList_);
            }
            onChanged();
          }
        } else {
          if (!other.pushCardList_.isEmpty()) {
            if (pushCardListBuilder_.isEmpty()) {
              pushCardListBuilder_.dispose();
              pushCardListBuilder_ = null;
              pushCardList_ = other.pushCardList_;
              bitField0_ = (bitField0_ & ~0x00000008);
              pushCardListBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPushCardListFieldBuilder() : null;
            } else {
              pushCardListBuilder_.addAllMessages(other.pushCardList_);
            }
          }
        }
        if (other.hasEmotionId()) {
          setEmotionId(other.getEmotionId());
        }
        if (other.hasNextuid()) {
          setNextuid(other.getNextuid());
        }
        if (other.hasNextseatid()) {
          setNextseatid(other.getNextseatid());
        }
        if (other.hasPointratio()) {
          setPointratio(other.getPointratio());
        }
        if (other.hasCardType()) {
          setCardType(other.getCardType());
        }
        if (other.hasHighcard()) {
          setHighcard(other.getHighcard());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              uid_ = input.readUInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              seatid_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              action_ = input.readUInt32();
              break;
            }
            case 34: {
              com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.CardInfo.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addPushCardList(subBuilder.buildPartial());
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              emotionId_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              nextuid_ = input.readUInt64();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              nextseatid_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              pointratio_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              cardType_ = input.readUInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              highcard_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint64 uid = 1;
      private long uid_ ;
      public boolean hasUid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public long getUid() {
        return uid_;
      }
      public Builder setUid(long value) {
        bitField0_ |= 0x00000001;
        uid_ = value;
        onChanged();
        return this;
      }
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0L;
        onChanged();
        return this;
      }
      
      // optional uint32 seatid = 2;
      private int seatid_ ;
      public boolean hasSeatid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getSeatid() {
        return seatid_;
      }
      public Builder setSeatid(int value) {
        bitField0_ |= 0x00000002;
        seatid_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        seatid_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 action = 3;
      private int action_ ;
      public boolean hasAction() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getAction() {
        return action_;
      }
      public Builder setAction(int value) {
        bitField0_ |= 0x00000004;
        action_ = value;
        onChanged();
        return this;
      }
      public Builder clearAction() {
        bitField0_ = (bitField0_ & ~0x00000004);
        action_ = 0;
        onChanged();
        return this;
      }
      
      // repeated .com.backfire.socket.socketProto.CardInfo pushCardList = 4;
      private java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> pushCardList_ =
        java.util.Collections.emptyList();
      private void ensurePushCardListIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          pushCardList_ = new java.util.ArrayList<com.backfire.socket.socketProto.Doudizhu.CardInfo>(pushCardList_);
          bitField0_ |= 0x00000008;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> pushCardListBuilder_;
      
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> getPushCardListList() {
        if (pushCardListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pushCardList_);
        } else {
          return pushCardListBuilder_.getMessageList();
        }
      }
      public int getPushCardListCount() {
        if (pushCardListBuilder_ == null) {
          return pushCardList_.size();
        } else {
          return pushCardListBuilder_.getCount();
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo getPushCardList(int index) {
        if (pushCardListBuilder_ == null) {
          return pushCardList_.get(index);
        } else {
          return pushCardListBuilder_.getMessage(index);
        }
      }
      public Builder setPushCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (pushCardListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePushCardListIsMutable();
          pushCardList_.set(index, value);
          onChanged();
        } else {
          pushCardListBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setPushCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (pushCardListBuilder_ == null) {
          ensurePushCardListIsMutable();
          pushCardList_.set(index, builderForValue.build());
          onChanged();
        } else {
          pushCardListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addPushCardList(com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (pushCardListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePushCardListIsMutable();
          pushCardList_.add(value);
          onChanged();
        } else {
          pushCardListBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addPushCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (pushCardListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePushCardListIsMutable();
          pushCardList_.add(index, value);
          onChanged();
        } else {
          pushCardListBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addPushCardList(
          com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (pushCardListBuilder_ == null) {
          ensurePushCardListIsMutable();
          pushCardList_.add(builderForValue.build());
          onChanged();
        } else {
          pushCardListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addPushCardList(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (pushCardListBuilder_ == null) {
          ensurePushCardListIsMutable();
          pushCardList_.add(index, builderForValue.build());
          onChanged();
        } else {
          pushCardListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllPushCardList(
          java.lang.Iterable<? extends com.backfire.socket.socketProto.Doudizhu.CardInfo> values) {
        if (pushCardListBuilder_ == null) {
          ensurePushCardListIsMutable();
          super.addAll(values, pushCardList_);
          onChanged();
        } else {
          pushCardListBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearPushCardList() {
        if (pushCardListBuilder_ == null) {
          pushCardList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          pushCardListBuilder_.clear();
        }
        return this;
      }
      public Builder removePushCardList(int index) {
        if (pushCardListBuilder_ == null) {
          ensurePushCardListIsMutable();
          pushCardList_.remove(index);
          onChanged();
        } else {
          pushCardListBuilder_.remove(index);
        }
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder getPushCardListBuilder(
          int index) {
        return getPushCardListFieldBuilder().getBuilder(index);
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getPushCardListOrBuilder(
          int index) {
        if (pushCardListBuilder_ == null) {
          return pushCardList_.get(index);  } else {
          return pushCardListBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
           getPushCardListOrBuilderList() {
        if (pushCardListBuilder_ != null) {
          return pushCardListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pushCardList_);
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder addPushCardListBuilder() {
        return getPushCardListFieldBuilder().addBuilder(
            com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance());
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder addPushCardListBuilder(
          int index) {
        return getPushCardListFieldBuilder().addBuilder(
            index, com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance());
      }
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder> 
           getPushCardListBuilderList() {
        return getPushCardListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
          getPushCardListFieldBuilder() {
        if (pushCardListBuilder_ == null) {
          pushCardListBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder>(
                  pushCardList_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          pushCardList_ = null;
        }
        return pushCardListBuilder_;
      }
      
      // optional uint32 emotionId = 5;
      private int emotionId_ ;
      public boolean hasEmotionId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getEmotionId() {
        return emotionId_;
      }
      public Builder setEmotionId(int value) {
        bitField0_ |= 0x00000010;
        emotionId_ = value;
        onChanged();
        return this;
      }
      public Builder clearEmotionId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        emotionId_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint64 nextuid = 6;
      private long nextuid_ ;
      public boolean hasNextuid() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public long getNextuid() {
        return nextuid_;
      }
      public Builder setNextuid(long value) {
        bitField0_ |= 0x00000020;
        nextuid_ = value;
        onChanged();
        return this;
      }
      public Builder clearNextuid() {
        bitField0_ = (bitField0_ & ~0x00000020);
        nextuid_ = 0L;
        onChanged();
        return this;
      }
      
      // optional uint32 nextseatid = 7;
      private int nextseatid_ ;
      public boolean hasNextseatid() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public int getNextseatid() {
        return nextseatid_;
      }
      public Builder setNextseatid(int value) {
        bitField0_ |= 0x00000040;
        nextseatid_ = value;
        onChanged();
        return this;
      }
      public Builder clearNextseatid() {
        bitField0_ = (bitField0_ & ~0x00000040);
        nextseatid_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 pointratio = 8;
      private int pointratio_ ;
      public boolean hasPointratio() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public int getPointratio() {
        return pointratio_;
      }
      public Builder setPointratio(int value) {
        bitField0_ |= 0x00000080;
        pointratio_ = value;
        onChanged();
        return this;
      }
      public Builder clearPointratio() {
        bitField0_ = (bitField0_ & ~0x00000080);
        pointratio_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 cardType = 9;
      private int cardType_ ;
      public boolean hasCardType() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public int getCardType() {
        return cardType_;
      }
      public Builder setCardType(int value) {
        bitField0_ |= 0x00000100;
        cardType_ = value;
        onChanged();
        return this;
      }
      public Builder clearCardType() {
        bitField0_ = (bitField0_ & ~0x00000100);
        cardType_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 highcard = 10;
      private int highcard_ ;
      public boolean hasHighcard() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      public int getHighcard() {
        return highcard_;
      }
      public Builder setHighcard(int value) {
        bitField0_ |= 0x00000200;
        highcard_ = value;
        onChanged();
        return this;
      }
      public Builder clearHighcard() {
        bitField0_ = (bitField0_ & ~0x00000200);
        highcard_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.BroadcastPlayerAction)
    }
    
    static {
      defaultInstance = new BroadcastPlayerAction(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.BroadcastPlayerAction)
  }
  
  public interface ChatReqOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint64 uId = 1;
    boolean hasUId();
    long getUId();
    
    // required uint32 seatId = 2;
    boolean hasSeatId();
    int getSeatId();
    
    // optional uint32 roomId = 3;
    boolean hasRoomId();
    int getRoomId();
    
    // optional string chatMsg = 4;
    boolean hasChatMsg();
    String getChatMsg();
    
    // optional uint32 faceId = 5;
    boolean hasFaceId();
    int getFaceId();
  }
  public static final class ChatReq extends
      com.google.protobuf.GeneratedMessage
      implements ChatReqOrBuilder {
    // Use ChatReq.newBuilder() to construct.
    private ChatReq(Builder builder) {
      super(builder);
    }
    private ChatReq(boolean noInit) {}
    
    private static final ChatReq defaultInstance;
    public static ChatReq getDefaultInstance() {
      return defaultInstance;
    }
    
    public ChatReq getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_ChatReq_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_ChatReq_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint64 uId = 1;
    public static final int UID_FIELD_NUMBER = 1;
    private long uId_;
    public boolean hasUId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public long getUId() {
      return uId_;
    }
    
    // required uint32 seatId = 2;
    public static final int SEATID_FIELD_NUMBER = 2;
    private int seatId_;
    public boolean hasSeatId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getSeatId() {
      return seatId_;
    }
    
    // optional uint32 roomId = 3;
    public static final int ROOMID_FIELD_NUMBER = 3;
    private int roomId_;
    public boolean hasRoomId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getRoomId() {
      return roomId_;
    }
    
    // optional string chatMsg = 4;
    public static final int CHATMSG_FIELD_NUMBER = 4;
    private java.lang.Object chatMsg_;
    public boolean hasChatMsg() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public String getChatMsg() {
      java.lang.Object ref = chatMsg_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          chatMsg_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getChatMsgBytes() {
      java.lang.Object ref = chatMsg_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        chatMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional uint32 faceId = 5;
    public static final int FACEID_FIELD_NUMBER = 5;
    private int faceId_;
    public boolean hasFaceId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getFaceId() {
      return faceId_;
    }
    
    private void initFields() {
      uId_ = 0L;
      seatId_ = 0;
      roomId_ = 0;
      chatMsg_ = "";
      faceId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasSeatId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, uId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, seatId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, roomId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getChatMsgBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, faceId_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, uId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, seatId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, roomId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getChatMsgBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, faceId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.ChatReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ChatReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ChatReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ChatReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ChatReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ChatReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ChatReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.ChatReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.ChatReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.ChatReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.ChatReq prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.ChatReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_ChatReq_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_ChatReq_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.ChatReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        uId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        seatId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        roomId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        chatMsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        faceId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.ChatReq.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.ChatReq getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.ChatReq.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.ChatReq build() {
        com.backfire.socket.socketProto.Doudizhu.ChatReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.ChatReq buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.ChatReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.ChatReq buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.ChatReq result = new com.backfire.socket.socketProto.Doudizhu.ChatReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uId_ = uId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.seatId_ = seatId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.roomId_ = roomId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.chatMsg_ = chatMsg_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.faceId_ = faceId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.ChatReq) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.ChatReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.ChatReq other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.ChatReq.getDefaultInstance()) return this;
        if (other.hasUId()) {
          setUId(other.getUId());
        }
        if (other.hasSeatId()) {
          setSeatId(other.getSeatId());
        }
        if (other.hasRoomId()) {
          setRoomId(other.getRoomId());
        }
        if (other.hasChatMsg()) {
          setChatMsg(other.getChatMsg());
        }
        if (other.hasFaceId()) {
          setFaceId(other.getFaceId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasSeatId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              uId_ = input.readUInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              seatId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              roomId_ = input.readUInt32();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              chatMsg_ = input.readBytes();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              faceId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint64 uId = 1;
      private long uId_ ;
      public boolean hasUId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public long getUId() {
        return uId_;
      }
      public Builder setUId(long value) {
        bitField0_ |= 0x00000001;
        uId_ = value;
        onChanged();
        return this;
      }
      public Builder clearUId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uId_ = 0L;
        onChanged();
        return this;
      }
      
      // required uint32 seatId = 2;
      private int seatId_ ;
      public boolean hasSeatId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getSeatId() {
        return seatId_;
      }
      public Builder setSeatId(int value) {
        bitField0_ |= 0x00000002;
        seatId_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        seatId_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 roomId = 3;
      private int roomId_ ;
      public boolean hasRoomId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getRoomId() {
        return roomId_;
      }
      public Builder setRoomId(int value) {
        bitField0_ |= 0x00000004;
        roomId_ = value;
        onChanged();
        return this;
      }
      public Builder clearRoomId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        roomId_ = 0;
        onChanged();
        return this;
      }
      
      // optional string chatMsg = 4;
      private java.lang.Object chatMsg_ = "";
      public boolean hasChatMsg() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public String getChatMsg() {
        java.lang.Object ref = chatMsg_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          chatMsg_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setChatMsg(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        chatMsg_ = value;
        onChanged();
        return this;
      }
      public Builder clearChatMsg() {
        bitField0_ = (bitField0_ & ~0x00000008);
        chatMsg_ = getDefaultInstance().getChatMsg();
        onChanged();
        return this;
      }
      void setChatMsg(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000008;
        chatMsg_ = value;
        onChanged();
      }
      
      // optional uint32 faceId = 5;
      private int faceId_ ;
      public boolean hasFaceId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getFaceId() {
        return faceId_;
      }
      public Builder setFaceId(int value) {
        bitField0_ |= 0x00000010;
        faceId_ = value;
        onChanged();
        return this;
      }
      public Builder clearFaceId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        faceId_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.ChatReq)
    }
    
    static {
      defaultInstance = new ChatReq(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.ChatReq)
  }
  
  public interface BroadcastChatOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // required uint32 seatId = 1;
    boolean hasSeatId();
    int getSeatId();
    
    // optional string chatMsg = 2;
    boolean hasChatMsg();
    String getChatMsg();
    
    // optional uint32 faceId = 3;
    boolean hasFaceId();
    int getFaceId();
    
    // optional uint32 roomId = 4;
    boolean hasRoomId();
    int getRoomId();
  }
  public static final class BroadcastChat extends
      com.google.protobuf.GeneratedMessage
      implements BroadcastChatOrBuilder {
    // Use BroadcastChat.newBuilder() to construct.
    private BroadcastChat(Builder builder) {
      super(builder);
    }
    private BroadcastChat(boolean noInit) {}
    
    private static final BroadcastChat defaultInstance;
    public static BroadcastChat getDefaultInstance() {
      return defaultInstance;
    }
    
    public BroadcastChat getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastChat_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastChat_fieldAccessorTable;
    }
    
    private int bitField0_;
    // required uint32 seatId = 1;
    public static final int SEATID_FIELD_NUMBER = 1;
    private int seatId_;
    public boolean hasSeatId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getSeatId() {
      return seatId_;
    }
    
    // optional string chatMsg = 2;
    public static final int CHATMSG_FIELD_NUMBER = 2;
    private java.lang.Object chatMsg_;
    public boolean hasChatMsg() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public String getChatMsg() {
      java.lang.Object ref = chatMsg_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          chatMsg_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getChatMsgBytes() {
      java.lang.Object ref = chatMsg_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        chatMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional uint32 faceId = 3;
    public static final int FACEID_FIELD_NUMBER = 3;
    private int faceId_;
    public boolean hasFaceId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getFaceId() {
      return faceId_;
    }
    
    // optional uint32 roomId = 4;
    public static final int ROOMID_FIELD_NUMBER = 4;
    private int roomId_;
    public boolean hasRoomId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getRoomId() {
      return roomId_;
    }
    
    private void initFields() {
      seatId_ = 0;
      chatMsg_ = "";
      faceId_ = 0;
      roomId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasSeatId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, seatId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getChatMsgBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, faceId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, roomId_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, seatId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getChatMsgBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, faceId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, roomId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastChat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastChat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastChat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastChat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastChat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastChat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastChat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastChat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastChat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastChat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.BroadcastChat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.BroadcastChatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastChat_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastChat_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.BroadcastChat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        seatId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        chatMsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        faceId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        roomId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.BroadcastChat.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastChat getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.BroadcastChat.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastChat build() {
        com.backfire.socket.socketProto.Doudizhu.BroadcastChat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.BroadcastChat buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.BroadcastChat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastChat buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.BroadcastChat result = new com.backfire.socket.socketProto.Doudizhu.BroadcastChat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.seatId_ = seatId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.chatMsg_ = chatMsg_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.faceId_ = faceId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.roomId_ = roomId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.BroadcastChat) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.BroadcastChat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.BroadcastChat other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.BroadcastChat.getDefaultInstance()) return this;
        if (other.hasSeatId()) {
          setSeatId(other.getSeatId());
        }
        if (other.hasChatMsg()) {
          setChatMsg(other.getChatMsg());
        }
        if (other.hasFaceId()) {
          setFaceId(other.getFaceId());
        }
        if (other.hasRoomId()) {
          setRoomId(other.getRoomId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasSeatId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              seatId_ = input.readUInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              chatMsg_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              faceId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              roomId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 seatId = 1;
      private int seatId_ ;
      public boolean hasSeatId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getSeatId() {
        return seatId_;
      }
      public Builder setSeatId(int value) {
        bitField0_ |= 0x00000001;
        seatId_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seatId_ = 0;
        onChanged();
        return this;
      }
      
      // optional string chatMsg = 2;
      private java.lang.Object chatMsg_ = "";
      public boolean hasChatMsg() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public String getChatMsg() {
        java.lang.Object ref = chatMsg_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          chatMsg_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setChatMsg(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        chatMsg_ = value;
        onChanged();
        return this;
      }
      public Builder clearChatMsg() {
        bitField0_ = (bitField0_ & ~0x00000002);
        chatMsg_ = getDefaultInstance().getChatMsg();
        onChanged();
        return this;
      }
      void setChatMsg(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000002;
        chatMsg_ = value;
        onChanged();
      }
      
      // optional uint32 faceId = 3;
      private int faceId_ ;
      public boolean hasFaceId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getFaceId() {
        return faceId_;
      }
      public Builder setFaceId(int value) {
        bitField0_ |= 0x00000004;
        faceId_ = value;
        onChanged();
        return this;
      }
      public Builder clearFaceId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        faceId_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 roomId = 4;
      private int roomId_ ;
      public boolean hasRoomId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getRoomId() {
        return roomId_;
      }
      public Builder setRoomId(int value) {
        bitField0_ |= 0x00000008;
        roomId_ = value;
        onChanged();
        return this;
      }
      public Builder clearRoomId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        roomId_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.BroadcastChat)
    }
    
    static {
      defaultInstance = new BroadcastChat(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.BroadcastChat)
  }
  
  public interface GameOverOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 winSide = 1;
    boolean hasWinSide();
    int getWinSide();
    
    // repeated .com.backfire.socket.socketProto.GameResult result = 2;
    java.util.List<com.backfire.socket.socketProto.Doudizhu.GameResult> 
        getResultList();
    com.backfire.socket.socketProto.Doudizhu.GameResult getResult(int index);
    int getResultCount();
    java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.GameResultOrBuilder> 
        getResultOrBuilderList();
    com.backfire.socket.socketProto.Doudizhu.GameResultOrBuilder getResultOrBuilder(
        int index);
  }
  public static final class GameOver extends
      com.google.protobuf.GeneratedMessage
      implements GameOverOrBuilder {
    // Use GameOver.newBuilder() to construct.
    private GameOver(Builder builder) {
      super(builder);
    }
    private GameOver(boolean noInit) {}
    
    private static final GameOver defaultInstance;
    public static GameOver getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameOver getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameOver_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameOver_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 winSide = 1;
    public static final int WINSIDE_FIELD_NUMBER = 1;
    private int winSide_;
    public boolean hasWinSide() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getWinSide() {
      return winSide_;
    }
    
    // repeated .com.backfire.socket.socketProto.GameResult result = 2;
    public static final int RESULT_FIELD_NUMBER = 2;
    private java.util.List<com.backfire.socket.socketProto.Doudizhu.GameResult> result_;
    public java.util.List<com.backfire.socket.socketProto.Doudizhu.GameResult> getResultList() {
      return result_;
    }
    public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.GameResultOrBuilder> 
        getResultOrBuilderList() {
      return result_;
    }
    public int getResultCount() {
      return result_.size();
    }
    public com.backfire.socket.socketProto.Doudizhu.GameResult getResult(int index) {
      return result_.get(index);
    }
    public com.backfire.socket.socketProto.Doudizhu.GameResultOrBuilder getResultOrBuilder(
        int index) {
      return result_.get(index);
    }
    
    private void initFields() {
      winSide_ = 0;
      result_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, winSide_);
      }
      for (int i = 0; i < result_.size(); i++) {
        output.writeMessage(2, result_.get(i));
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, winSide_);
      }
      for (int i = 0; i < result_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, result_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.GameOver parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameOver parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameOver parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameOver parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameOver parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameOver parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameOver parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameOver parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameOver parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameOver parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.GameOver prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.GameOverOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameOver_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameOver_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.GameOver.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getResultFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        winSide_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (resultBuilder_ == null) {
          result_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          resultBuilder_.clear();
        }
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.GameOver.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.GameOver getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.GameOver.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.GameOver build() {
        com.backfire.socket.socketProto.Doudizhu.GameOver result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.GameOver buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.GameOver result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.GameOver buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.GameOver result = new com.backfire.socket.socketProto.Doudizhu.GameOver(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.winSide_ = winSide_;
        if (resultBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            result_ = java.util.Collections.unmodifiableList(result_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.result_ = result_;
        } else {
          result.result_ = resultBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.GameOver) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.GameOver)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.GameOver other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.GameOver.getDefaultInstance()) return this;
        if (other.hasWinSide()) {
          setWinSide(other.getWinSide());
        }
        if (resultBuilder_ == null) {
          if (!other.result_.isEmpty()) {
            if (result_.isEmpty()) {
              result_ = other.result_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureResultIsMutable();
              result_.addAll(other.result_);
            }
            onChanged();
          }
        } else {
          if (!other.result_.isEmpty()) {
            if (resultBuilder_.isEmpty()) {
              resultBuilder_.dispose();
              resultBuilder_ = null;
              result_ = other.result_;
              bitField0_ = (bitField0_ & ~0x00000002);
              resultBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getResultFieldBuilder() : null;
            } else {
              resultBuilder_.addAllMessages(other.result_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              winSide_ = input.readUInt32();
              break;
            }
            case 18: {
              com.backfire.socket.socketProto.Doudizhu.GameResult.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.GameResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResult(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 winSide = 1;
      private int winSide_ ;
      public boolean hasWinSide() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getWinSide() {
        return winSide_;
      }
      public Builder setWinSide(int value) {
        bitField0_ |= 0x00000001;
        winSide_ = value;
        onChanged();
        return this;
      }
      public Builder clearWinSide() {
        bitField0_ = (bitField0_ & ~0x00000001);
        winSide_ = 0;
        onChanged();
        return this;
      }
      
      // repeated .com.backfire.socket.socketProto.GameResult result = 2;
      private java.util.List<com.backfire.socket.socketProto.Doudizhu.GameResult> result_ =
        java.util.Collections.emptyList();
      private void ensureResultIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          result_ = new java.util.ArrayList<com.backfire.socket.socketProto.Doudizhu.GameResult>(result_);
          bitField0_ |= 0x00000002;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.GameResult, com.backfire.socket.socketProto.Doudizhu.GameResult.Builder, com.backfire.socket.socketProto.Doudizhu.GameResultOrBuilder> resultBuilder_;
      
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.GameResult> getResultList() {
        if (resultBuilder_ == null) {
          return java.util.Collections.unmodifiableList(result_);
        } else {
          return resultBuilder_.getMessageList();
        }
      }
      public int getResultCount() {
        if (resultBuilder_ == null) {
          return result_.size();
        } else {
          return resultBuilder_.getCount();
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.GameResult getResult(int index) {
        if (resultBuilder_ == null) {
          return result_.get(index);
        } else {
          return resultBuilder_.getMessage(index);
        }
      }
      public Builder setResult(
          int index, com.backfire.socket.socketProto.Doudizhu.GameResult value) {
        if (resultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultIsMutable();
          result_.set(index, value);
          onChanged();
        } else {
          resultBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setResult(
          int index, com.backfire.socket.socketProto.Doudizhu.GameResult.Builder builderForValue) {
        if (resultBuilder_ == null) {
          ensureResultIsMutable();
          result_.set(index, builderForValue.build());
          onChanged();
        } else {
          resultBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addResult(com.backfire.socket.socketProto.Doudizhu.GameResult value) {
        if (resultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultIsMutable();
          result_.add(value);
          onChanged();
        } else {
          resultBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addResult(
          int index, com.backfire.socket.socketProto.Doudizhu.GameResult value) {
        if (resultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultIsMutable();
          result_.add(index, value);
          onChanged();
        } else {
          resultBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addResult(
          com.backfire.socket.socketProto.Doudizhu.GameResult.Builder builderForValue) {
        if (resultBuilder_ == null) {
          ensureResultIsMutable();
          result_.add(builderForValue.build());
          onChanged();
        } else {
          resultBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addResult(
          int index, com.backfire.socket.socketProto.Doudizhu.GameResult.Builder builderForValue) {
        if (resultBuilder_ == null) {
          ensureResultIsMutable();
          result_.add(index, builderForValue.build());
          onChanged();
        } else {
          resultBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllResult(
          java.lang.Iterable<? extends com.backfire.socket.socketProto.Doudizhu.GameResult> values) {
        if (resultBuilder_ == null) {
          ensureResultIsMutable();
          super.addAll(values, result_);
          onChanged();
        } else {
          resultBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearResult() {
        if (resultBuilder_ == null) {
          result_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          resultBuilder_.clear();
        }
        return this;
      }
      public Builder removeResult(int index) {
        if (resultBuilder_ == null) {
          ensureResultIsMutable();
          result_.remove(index);
          onChanged();
        } else {
          resultBuilder_.remove(index);
        }
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.GameResult.Builder getResultBuilder(
          int index) {
        return getResultFieldBuilder().getBuilder(index);
      }
      public com.backfire.socket.socketProto.Doudizhu.GameResultOrBuilder getResultOrBuilder(
          int index) {
        if (resultBuilder_ == null) {
          return result_.get(index);  } else {
          return resultBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.GameResultOrBuilder> 
           getResultOrBuilderList() {
        if (resultBuilder_ != null) {
          return resultBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(result_);
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.GameResult.Builder addResultBuilder() {
        return getResultFieldBuilder().addBuilder(
            com.backfire.socket.socketProto.Doudizhu.GameResult.getDefaultInstance());
      }
      public com.backfire.socket.socketProto.Doudizhu.GameResult.Builder addResultBuilder(
          int index) {
        return getResultFieldBuilder().addBuilder(
            index, com.backfire.socket.socketProto.Doudizhu.GameResult.getDefaultInstance());
      }
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.GameResult.Builder> 
           getResultBuilderList() {
        return getResultFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.GameResult, com.backfire.socket.socketProto.Doudizhu.GameResult.Builder, com.backfire.socket.socketProto.Doudizhu.GameResultOrBuilder> 
          getResultFieldBuilder() {
        if (resultBuilder_ == null) {
          resultBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.GameResult, com.backfire.socket.socketProto.Doudizhu.GameResult.Builder, com.backfire.socket.socketProto.Doudizhu.GameResultOrBuilder>(
                  result_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          result_ = null;
        }
        return resultBuilder_;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.GameOver)
    }
    
    static {
      defaultInstance = new GameOver(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.GameOver)
  }
  
  public interface GameResultOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 seatid = 1;
    boolean hasSeatid();
    int getSeatid();
    
    // optional uint64 winMoney = 2;
    boolean hasWinMoney();
    long getWinMoney();
    
    // optional uint32 winRatio = 3;
    boolean hasWinRatio();
    int getWinRatio();
    
    // optional uint32 bombs = 4;
    boolean hasBombs();
    int getBombs();
    
    // repeated .com.backfire.socket.socketProto.CardInfo seatCards = 5;
    java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> 
        getSeatCardsList();
    com.backfire.socket.socketProto.Doudizhu.CardInfo getSeatCards(int index);
    int getSeatCardsCount();
    java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
        getSeatCardsOrBuilderList();
    com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getSeatCardsOrBuilder(
        int index);
    
    // optional uint32 spring = 6;
    boolean hasSpring();
    int getSpring();
    
    // optional uint32 reward = 7;
    boolean hasReward();
    int getReward();
    
    // optional uint64 money = 8;
    boolean hasMoney();
    long getMoney();
    
    // optional uint64 lottery = 9;
    boolean hasLottery();
    long getLottery();
    
    // optional uint64 winLottery = 10;
    boolean hasWinLottery();
    long getWinLottery();
  }
  public static final class GameResult extends
      com.google.protobuf.GeneratedMessage
      implements GameResultOrBuilder {
    // Use GameResult.newBuilder() to construct.
    private GameResult(Builder builder) {
      super(builder);
    }
    private GameResult(boolean noInit) {}
    
    private static final GameResult defaultInstance;
    public static GameResult getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameResult getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameResult_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameResult_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 seatid = 1;
    public static final int SEATID_FIELD_NUMBER = 1;
    private int seatid_;
    public boolean hasSeatid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getSeatid() {
      return seatid_;
    }
    
    // optional uint64 winMoney = 2;
    public static final int WINMONEY_FIELD_NUMBER = 2;
    private long winMoney_;
    public boolean hasWinMoney() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public long getWinMoney() {
      return winMoney_;
    }
    
    // optional uint32 winRatio = 3;
    public static final int WINRATIO_FIELD_NUMBER = 3;
    private int winRatio_;
    public boolean hasWinRatio() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getWinRatio() {
      return winRatio_;
    }
    
    // optional uint32 bombs = 4;
    public static final int BOMBS_FIELD_NUMBER = 4;
    private int bombs_;
    public boolean hasBombs() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getBombs() {
      return bombs_;
    }
    
    // repeated .com.backfire.socket.socketProto.CardInfo seatCards = 5;
    public static final int SEATCARDS_FIELD_NUMBER = 5;
    private java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> seatCards_;
    public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> getSeatCardsList() {
      return seatCards_;
    }
    public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
        getSeatCardsOrBuilderList() {
      return seatCards_;
    }
    public int getSeatCardsCount() {
      return seatCards_.size();
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfo getSeatCards(int index) {
      return seatCards_.get(index);
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getSeatCardsOrBuilder(
        int index) {
      return seatCards_.get(index);
    }
    
    // optional uint32 spring = 6;
    public static final int SPRING_FIELD_NUMBER = 6;
    private int spring_;
    public boolean hasSpring() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getSpring() {
      return spring_;
    }
    
    // optional uint32 reward = 7;
    public static final int REWARD_FIELD_NUMBER = 7;
    private int reward_;
    public boolean hasReward() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public int getReward() {
      return reward_;
    }
    
    // optional uint64 money = 8;
    public static final int MONEY_FIELD_NUMBER = 8;
    private long money_;
    public boolean hasMoney() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    public long getMoney() {
      return money_;
    }
    
    // optional uint64 lottery = 9;
    public static final int LOTTERY_FIELD_NUMBER = 9;
    private long lottery_;
    public boolean hasLottery() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    public long getLottery() {
      return lottery_;
    }
    
    // optional uint64 winLottery = 10;
    public static final int WINLOTTERY_FIELD_NUMBER = 10;
    private long winLottery_;
    public boolean hasWinLottery() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    public long getWinLottery() {
      return winLottery_;
    }
    
    private void initFields() {
      seatid_ = 0;
      winMoney_ = 0L;
      winRatio_ = 0;
      bombs_ = 0;
      seatCards_ = java.util.Collections.emptyList();
      spring_ = 0;
      reward_ = 0;
      money_ = 0L;
      lottery_ = 0L;
      winLottery_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, seatid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, winMoney_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, winRatio_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, bombs_);
      }
      for (int i = 0; i < seatCards_.size(); i++) {
        output.writeMessage(5, seatCards_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(6, spring_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(7, reward_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt64(8, money_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt64(9, lottery_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeUInt64(10, winLottery_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, seatid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, winMoney_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, winRatio_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, bombs_);
      }
      for (int i = 0; i < seatCards_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, seatCards_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, spring_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, reward_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(8, money_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(9, lottery_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(10, winLottery_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.GameResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.GameResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.GameResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.GameResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_GameResult_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.GameResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getSeatCardsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        seatid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        winMoney_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        winRatio_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        bombs_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (seatCardsBuilder_ == null) {
          seatCards_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          seatCardsBuilder_.clear();
        }
        spring_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        reward_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        money_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000080);
        lottery_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000100);
        winLottery_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.GameResult.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.GameResult getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.GameResult.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.GameResult build() {
        com.backfire.socket.socketProto.Doudizhu.GameResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.GameResult buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.GameResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.GameResult buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.GameResult result = new com.backfire.socket.socketProto.Doudizhu.GameResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.seatid_ = seatid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.winMoney_ = winMoney_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.winRatio_ = winRatio_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.bombs_ = bombs_;
        if (seatCardsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            seatCards_ = java.util.Collections.unmodifiableList(seatCards_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.seatCards_ = seatCards_;
        } else {
          result.seatCards_ = seatCardsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.spring_ = spring_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.reward_ = reward_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        result.money_ = money_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000080;
        }
        result.lottery_ = lottery_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000100;
        }
        result.winLottery_ = winLottery_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.GameResult) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.GameResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.GameResult other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.GameResult.getDefaultInstance()) return this;
        if (other.hasSeatid()) {
          setSeatid(other.getSeatid());
        }
        if (other.hasWinMoney()) {
          setWinMoney(other.getWinMoney());
        }
        if (other.hasWinRatio()) {
          setWinRatio(other.getWinRatio());
        }
        if (other.hasBombs()) {
          setBombs(other.getBombs());
        }
        if (seatCardsBuilder_ == null) {
          if (!other.seatCards_.isEmpty()) {
            if (seatCards_.isEmpty()) {
              seatCards_ = other.seatCards_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureSeatCardsIsMutable();
              seatCards_.addAll(other.seatCards_);
            }
            onChanged();
          }
        } else {
          if (!other.seatCards_.isEmpty()) {
            if (seatCardsBuilder_.isEmpty()) {
              seatCardsBuilder_.dispose();
              seatCardsBuilder_ = null;
              seatCards_ = other.seatCards_;
              bitField0_ = (bitField0_ & ~0x00000010);
              seatCardsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSeatCardsFieldBuilder() : null;
            } else {
              seatCardsBuilder_.addAllMessages(other.seatCards_);
            }
          }
        }
        if (other.hasSpring()) {
          setSpring(other.getSpring());
        }
        if (other.hasReward()) {
          setReward(other.getReward());
        }
        if (other.hasMoney()) {
          setMoney(other.getMoney());
        }
        if (other.hasLottery()) {
          setLottery(other.getLottery());
        }
        if (other.hasWinLottery()) {
          setWinLottery(other.getWinLottery());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              seatid_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              winMoney_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              winRatio_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              bombs_ = input.readUInt32();
              break;
            }
            case 42: {
              com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.CardInfo.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addSeatCards(subBuilder.buildPartial());
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              spring_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              reward_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              money_ = input.readUInt64();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              lottery_ = input.readUInt64();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              winLottery_ = input.readUInt64();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 seatid = 1;
      private int seatid_ ;
      public boolean hasSeatid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getSeatid() {
        return seatid_;
      }
      public Builder setSeatid(int value) {
        bitField0_ |= 0x00000001;
        seatid_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seatid_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint64 winMoney = 2;
      private long winMoney_ ;
      public boolean hasWinMoney() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public long getWinMoney() {
        return winMoney_;
      }
      public Builder setWinMoney(long value) {
        bitField0_ |= 0x00000002;
        winMoney_ = value;
        onChanged();
        return this;
      }
      public Builder clearWinMoney() {
        bitField0_ = (bitField0_ & ~0x00000002);
        winMoney_ = 0L;
        onChanged();
        return this;
      }
      
      // optional uint32 winRatio = 3;
      private int winRatio_ ;
      public boolean hasWinRatio() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getWinRatio() {
        return winRatio_;
      }
      public Builder setWinRatio(int value) {
        bitField0_ |= 0x00000004;
        winRatio_ = value;
        onChanged();
        return this;
      }
      public Builder clearWinRatio() {
        bitField0_ = (bitField0_ & ~0x00000004);
        winRatio_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 bombs = 4;
      private int bombs_ ;
      public boolean hasBombs() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getBombs() {
        return bombs_;
      }
      public Builder setBombs(int value) {
        bitField0_ |= 0x00000008;
        bombs_ = value;
        onChanged();
        return this;
      }
      public Builder clearBombs() {
        bitField0_ = (bitField0_ & ~0x00000008);
        bombs_ = 0;
        onChanged();
        return this;
      }
      
      // repeated .com.backfire.socket.socketProto.CardInfo seatCards = 5;
      private java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> seatCards_ =
        java.util.Collections.emptyList();
      private void ensureSeatCardsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          seatCards_ = new java.util.ArrayList<com.backfire.socket.socketProto.Doudizhu.CardInfo>(seatCards_);
          bitField0_ |= 0x00000010;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> seatCardsBuilder_;
      
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo> getSeatCardsList() {
        if (seatCardsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(seatCards_);
        } else {
          return seatCardsBuilder_.getMessageList();
        }
      }
      public int getSeatCardsCount() {
        if (seatCardsBuilder_ == null) {
          return seatCards_.size();
        } else {
          return seatCardsBuilder_.getCount();
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo getSeatCards(int index) {
        if (seatCardsBuilder_ == null) {
          return seatCards_.get(index);
        } else {
          return seatCardsBuilder_.getMessage(index);
        }
      }
      public Builder setSeatCards(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (seatCardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSeatCardsIsMutable();
          seatCards_.set(index, value);
          onChanged();
        } else {
          seatCardsBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setSeatCards(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (seatCardsBuilder_ == null) {
          ensureSeatCardsIsMutable();
          seatCards_.set(index, builderForValue.build());
          onChanged();
        } else {
          seatCardsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addSeatCards(com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (seatCardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSeatCardsIsMutable();
          seatCards_.add(value);
          onChanged();
        } else {
          seatCardsBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addSeatCards(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (seatCardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSeatCardsIsMutable();
          seatCards_.add(index, value);
          onChanged();
        } else {
          seatCardsBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addSeatCards(
          com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (seatCardsBuilder_ == null) {
          ensureSeatCardsIsMutable();
          seatCards_.add(builderForValue.build());
          onChanged();
        } else {
          seatCardsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addSeatCards(
          int index, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (seatCardsBuilder_ == null) {
          ensureSeatCardsIsMutable();
          seatCards_.add(index, builderForValue.build());
          onChanged();
        } else {
          seatCardsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllSeatCards(
          java.lang.Iterable<? extends com.backfire.socket.socketProto.Doudizhu.CardInfo> values) {
        if (seatCardsBuilder_ == null) {
          ensureSeatCardsIsMutable();
          super.addAll(values, seatCards_);
          onChanged();
        } else {
          seatCardsBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearSeatCards() {
        if (seatCardsBuilder_ == null) {
          seatCards_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          seatCardsBuilder_.clear();
        }
        return this;
      }
      public Builder removeSeatCards(int index) {
        if (seatCardsBuilder_ == null) {
          ensureSeatCardsIsMutable();
          seatCards_.remove(index);
          onChanged();
        } else {
          seatCardsBuilder_.remove(index);
        }
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder getSeatCardsBuilder(
          int index) {
        return getSeatCardsFieldBuilder().getBuilder(index);
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getSeatCardsOrBuilder(
          int index) {
        if (seatCardsBuilder_ == null) {
          return seatCards_.get(index);  } else {
          return seatCardsBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
           getSeatCardsOrBuilderList() {
        if (seatCardsBuilder_ != null) {
          return seatCardsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(seatCards_);
        }
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder addSeatCardsBuilder() {
        return getSeatCardsFieldBuilder().addBuilder(
            com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance());
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder addSeatCardsBuilder(
          int index) {
        return getSeatCardsFieldBuilder().addBuilder(
            index, com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance());
      }
      public java.util.List<com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder> 
           getSeatCardsBuilderList() {
        return getSeatCardsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
          getSeatCardsFieldBuilder() {
        if (seatCardsBuilder_ == null) {
          seatCardsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder>(
                  seatCards_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          seatCards_ = null;
        }
        return seatCardsBuilder_;
      }
      
      // optional uint32 spring = 6;
      private int spring_ ;
      public boolean hasSpring() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public int getSpring() {
        return spring_;
      }
      public Builder setSpring(int value) {
        bitField0_ |= 0x00000020;
        spring_ = value;
        onChanged();
        return this;
      }
      public Builder clearSpring() {
        bitField0_ = (bitField0_ & ~0x00000020);
        spring_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 reward = 7;
      private int reward_ ;
      public boolean hasReward() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public int getReward() {
        return reward_;
      }
      public Builder setReward(int value) {
        bitField0_ |= 0x00000040;
        reward_ = value;
        onChanged();
        return this;
      }
      public Builder clearReward() {
        bitField0_ = (bitField0_ & ~0x00000040);
        reward_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint64 money = 8;
      private long money_ ;
      public boolean hasMoney() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public long getMoney() {
        return money_;
      }
      public Builder setMoney(long value) {
        bitField0_ |= 0x00000080;
        money_ = value;
        onChanged();
        return this;
      }
      public Builder clearMoney() {
        bitField0_ = (bitField0_ & ~0x00000080);
        money_ = 0L;
        onChanged();
        return this;
      }
      
      // optional uint64 lottery = 9;
      private long lottery_ ;
      public boolean hasLottery() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public long getLottery() {
        return lottery_;
      }
      public Builder setLottery(long value) {
        bitField0_ |= 0x00000100;
        lottery_ = value;
        onChanged();
        return this;
      }
      public Builder clearLottery() {
        bitField0_ = (bitField0_ & ~0x00000100);
        lottery_ = 0L;
        onChanged();
        return this;
      }
      
      // optional uint64 winLottery = 10;
      private long winLottery_ ;
      public boolean hasWinLottery() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      public long getWinLottery() {
        return winLottery_;
      }
      public Builder setWinLottery(long value) {
        bitField0_ |= 0x00000200;
        winLottery_ = value;
        onChanged();
        return this;
      }
      public Builder clearWinLottery() {
        bitField0_ = (bitField0_ & ~0x00000200);
        winLottery_ = 0L;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.GameResult)
    }
    
    static {
      defaultInstance = new GameResult(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.GameResult)
  }
  
  public interface BroadcastLaiziCardOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional .com.backfire.socket.socketProto.CardInfo laizicard = 1;
    boolean hasLaizicard();
    com.backfire.socket.socketProto.Doudizhu.CardInfo getLaizicard();
    com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getLaizicardOrBuilder();
    
    // optional uint32 seatid = 2;
    boolean hasSeatid();
    int getSeatid();
  }
  public static final class BroadcastLaiziCard extends
      com.google.protobuf.GeneratedMessage
      implements BroadcastLaiziCardOrBuilder {
    // Use BroadcastLaiziCard.newBuilder() to construct.
    private BroadcastLaiziCard(Builder builder) {
      super(builder);
    }
    private BroadcastLaiziCard(boolean noInit) {}
    
    private static final BroadcastLaiziCard defaultInstance;
    public static BroadcastLaiziCard getDefaultInstance() {
      return defaultInstance;
    }
    
    public BroadcastLaiziCard getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastLaiziCard_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastLaiziCard_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional .com.backfire.socket.socketProto.CardInfo laizicard = 1;
    public static final int LAIZICARD_FIELD_NUMBER = 1;
    private com.backfire.socket.socketProto.Doudizhu.CardInfo laizicard_;
    public boolean hasLaizicard() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfo getLaizicard() {
      return laizicard_;
    }
    public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getLaizicardOrBuilder() {
      return laizicard_;
    }
    
    // optional uint32 seatid = 2;
    public static final int SEATID_FIELD_NUMBER = 2;
    private int seatid_;
    public boolean hasSeatid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getSeatid() {
      return seatid_;
    }
    
    private void initFields() {
      laizicard_ = com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance();
      seatid_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, laizicard_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, seatid_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, laizicard_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, seatid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCardOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastLaiziCard_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_BroadcastLaiziCard_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLaizicardFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        if (laizicardBuilder_ == null) {
          laizicard_ = com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance();
        } else {
          laizicardBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        seatid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard build() {
        com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard result = new com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (laizicardBuilder_ == null) {
          result.laizicard_ = laizicard_;
        } else {
          result.laizicard_ = laizicardBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.seatid_ = seatid_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.getDefaultInstance()) return this;
        if (other.hasLaizicard()) {
          mergeLaizicard(other.getLaizicard());
        }
        if (other.hasSeatid()) {
          setSeatid(other.getSeatid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 10: {
              com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder subBuilder = com.backfire.socket.socketProto.Doudizhu.CardInfo.newBuilder();
              if (hasLaizicard()) {
                subBuilder.mergeFrom(getLaizicard());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setLaizicard(subBuilder.buildPartial());
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              seatid_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional .com.backfire.socket.socketProto.CardInfo laizicard = 1;
      private com.backfire.socket.socketProto.Doudizhu.CardInfo laizicard_ = com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> laizicardBuilder_;
      public boolean hasLaizicard() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo getLaizicard() {
        if (laizicardBuilder_ == null) {
          return laizicard_;
        } else {
          return laizicardBuilder_.getMessage();
        }
      }
      public Builder setLaizicard(com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (laizicardBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          laizicard_ = value;
          onChanged();
        } else {
          laizicardBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder setLaizicard(
          com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder builderForValue) {
        if (laizicardBuilder_ == null) {
          laizicard_ = builderForValue.build();
          onChanged();
        } else {
          laizicardBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder mergeLaizicard(com.backfire.socket.socketProto.Doudizhu.CardInfo value) {
        if (laizicardBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              laizicard_ != com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance()) {
            laizicard_ =
              com.backfire.socket.socketProto.Doudizhu.CardInfo.newBuilder(laizicard_).mergeFrom(value).buildPartial();
          } else {
            laizicard_ = value;
          }
          onChanged();
        } else {
          laizicardBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder clearLaizicard() {
        if (laizicardBuilder_ == null) {
          laizicard_ = com.backfire.socket.socketProto.Doudizhu.CardInfo.getDefaultInstance();
          onChanged();
        } else {
          laizicardBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder getLaizicardBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLaizicardFieldBuilder().getBuilder();
      }
      public com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder getLaizicardOrBuilder() {
        if (laizicardBuilder_ != null) {
          return laizicardBuilder_.getMessageOrBuilder();
        } else {
          return laizicard_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder> 
          getLaizicardFieldBuilder() {
        if (laizicardBuilder_ == null) {
          laizicardBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.backfire.socket.socketProto.Doudizhu.CardInfo, com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder, com.backfire.socket.socketProto.Doudizhu.CardInfoOrBuilder>(
                  laizicard_,
                  getParentForChildren(),
                  isClean());
          laizicard_ = null;
        }
        return laizicardBuilder_;
      }
      
      // optional uint32 seatid = 2;
      private int seatid_ ;
      public boolean hasSeatid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getSeatid() {
        return seatid_;
      }
      public Builder setSeatid(int value) {
        bitField0_ |= 0x00000002;
        seatid_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        seatid_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.BroadcastLaiziCard)
    }
    
    static {
      defaultInstance = new BroadcastLaiziCard(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.BroadcastLaiziCard)
  }
  
  public interface PlayerDepositReqOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 isdeposited = 1;
    boolean hasIsdeposited();
    int getIsdeposited();
  }
  public static final class PlayerDepositReq extends
      com.google.protobuf.GeneratedMessage
      implements PlayerDepositReqOrBuilder {
    // Use PlayerDepositReq.newBuilder() to construct.
    private PlayerDepositReq(Builder builder) {
      super(builder);
    }
    private PlayerDepositReq(boolean noInit) {}
    
    private static final PlayerDepositReq defaultInstance;
    public static PlayerDepositReq getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayerDepositReq getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerDepositReq_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerDepositReq_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 isdeposited = 1;
    public static final int ISDEPOSITED_FIELD_NUMBER = 1;
    private int isdeposited_;
    public boolean hasIsdeposited() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getIsdeposited() {
      return isdeposited_;
    }
    
    private void initFields() {
      isdeposited_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, isdeposited_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, isdeposited_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.PlayerDepositReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerDepositReq_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerDepositReq_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        isdeposited_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq build() {
        com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq result = new com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.isdeposited_ = isdeposited_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq.getDefaultInstance()) return this;
        if (other.hasIsdeposited()) {
          setIsdeposited(other.getIsdeposited());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              isdeposited_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 isdeposited = 1;
      private int isdeposited_ ;
      public boolean hasIsdeposited() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getIsdeposited() {
        return isdeposited_;
      }
      public Builder setIsdeposited(int value) {
        bitField0_ |= 0x00000001;
        isdeposited_ = value;
        onChanged();
        return this;
      }
      public Builder clearIsdeposited() {
        bitField0_ = (bitField0_ & ~0x00000001);
        isdeposited_ = 0;
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.PlayerDepositReq)
    }
    
    static {
      defaultInstance = new PlayerDepositReq(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.PlayerDepositReq)
  }
  
  public interface PlayerDepositRpyOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional uint32 seatid = 1;
    boolean hasSeatid();
    int getSeatid();
    
    // optional uint64 uid = 2;
    boolean hasUid();
    long getUid();
    
    // optional uint32 isdeposited = 3;
    boolean hasIsdeposited();
    int getIsdeposited();
    
    // optional uint32 ret = 4;
    boolean hasRet();
    int getRet();
    
    // optional uint32 retcode = 5;
    boolean hasRetcode();
    int getRetcode();
    
    // optional string retmsg = 6;
    boolean hasRetmsg();
    String getRetmsg();
  }
  public static final class PlayerDepositRpy extends
      com.google.protobuf.GeneratedMessage
      implements PlayerDepositRpyOrBuilder {
    // Use PlayerDepositRpy.newBuilder() to construct.
    private PlayerDepositRpy(Builder builder) {
      super(builder);
    }
    private PlayerDepositRpy(boolean noInit) {}
    
    private static final PlayerDepositRpy defaultInstance;
    public static PlayerDepositRpy getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayerDepositRpy getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerDepositRpy_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerDepositRpy_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional uint32 seatid = 1;
    public static final int SEATID_FIELD_NUMBER = 1;
    private int seatid_;
    public boolean hasSeatid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getSeatid() {
      return seatid_;
    }
    
    // optional uint64 uid = 2;
    public static final int UID_FIELD_NUMBER = 2;
    private long uid_;
    public boolean hasUid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public long getUid() {
      return uid_;
    }
    
    // optional uint32 isdeposited = 3;
    public static final int ISDEPOSITED_FIELD_NUMBER = 3;
    private int isdeposited_;
    public boolean hasIsdeposited() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getIsdeposited() {
      return isdeposited_;
    }
    
    // optional uint32 ret = 4;
    public static final int RET_FIELD_NUMBER = 4;
    private int ret_;
    public boolean hasRet() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getRet() {
      return ret_;
    }
    
    // optional uint32 retcode = 5;
    public static final int RETCODE_FIELD_NUMBER = 5;
    private int retcode_;
    public boolean hasRetcode() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getRetcode() {
      return retcode_;
    }
    
    // optional string retmsg = 6;
    public static final int RETMSG_FIELD_NUMBER = 6;
    private java.lang.Object retmsg_;
    public boolean hasRetmsg() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public String getRetmsg() {
      java.lang.Object ref = retmsg_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          retmsg_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getRetmsgBytes() {
      java.lang.Object ref = retmsg_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        retmsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      seatid_ = 0;
      uid_ = 0L;
      isdeposited_ = 0;
      ret_ = 0;
      retcode_ = 0;
      retmsg_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, seatid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, uid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, isdeposited_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, ret_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, retcode_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(6, getRetmsgBytes());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, seatid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, uid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, isdeposited_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, ret_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, retcode_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, getRetmsgBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerDepositRpy_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.backfire.socket.socketProto.Doudizhu.internal_static_com_backfire_socket_socketProto_PlayerDepositRpy_fieldAccessorTable;
      }
      
      // Construct using com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        seatid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        isdeposited_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        ret_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        retcode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        retmsg_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.getDescriptor();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy getDefaultInstanceForType() {
        return com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.getDefaultInstance();
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy build() {
        com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy buildPartial() {
        com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy result = new com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.seatid_ = seatid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.isdeposited_ = isdeposited_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.ret_ = ret_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.retcode_ = retcode_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.retmsg_ = retmsg_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy) {
          return mergeFrom((com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy other) {
        if (other == com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.getDefaultInstance()) return this;
        if (other.hasSeatid()) {
          setSeatid(other.getSeatid());
        }
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        if (other.hasIsdeposited()) {
          setIsdeposited(other.getIsdeposited());
        }
        if (other.hasRet()) {
          setRet(other.getRet());
        }
        if (other.hasRetcode()) {
          setRetcode(other.getRetcode());
        }
        if (other.hasRetmsg()) {
          setRetmsg(other.getRetmsg());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              seatid_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              uid_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              isdeposited_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              ret_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              retcode_ = input.readUInt32();
              break;
            }
            case 50: {
              bitField0_ |= 0x00000020;
              retmsg_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 seatid = 1;
      private int seatid_ ;
      public boolean hasSeatid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getSeatid() {
        return seatid_;
      }
      public Builder setSeatid(int value) {
        bitField0_ |= 0x00000001;
        seatid_ = value;
        onChanged();
        return this;
      }
      public Builder clearSeatid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seatid_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint64 uid = 2;
      private long uid_ ;
      public boolean hasUid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public long getUid() {
        return uid_;
      }
      public Builder setUid(long value) {
        bitField0_ |= 0x00000002;
        uid_ = value;
        onChanged();
        return this;
      }
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        uid_ = 0L;
        onChanged();
        return this;
      }
      
      // optional uint32 isdeposited = 3;
      private int isdeposited_ ;
      public boolean hasIsdeposited() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getIsdeposited() {
        return isdeposited_;
      }
      public Builder setIsdeposited(int value) {
        bitField0_ |= 0x00000004;
        isdeposited_ = value;
        onChanged();
        return this;
      }
      public Builder clearIsdeposited() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isdeposited_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 ret = 4;
      private int ret_ ;
      public boolean hasRet() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getRet() {
        return ret_;
      }
      public Builder setRet(int value) {
        bitField0_ |= 0x00000008;
        ret_ = value;
        onChanged();
        return this;
      }
      public Builder clearRet() {
        bitField0_ = (bitField0_ & ~0x00000008);
        ret_ = 0;
        onChanged();
        return this;
      }
      
      // optional uint32 retcode = 5;
      private int retcode_ ;
      public boolean hasRetcode() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getRetcode() {
        return retcode_;
      }
      public Builder setRetcode(int value) {
        bitField0_ |= 0x00000010;
        retcode_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetcode() {
        bitField0_ = (bitField0_ & ~0x00000010);
        retcode_ = 0;
        onChanged();
        return this;
      }
      
      // optional string retmsg = 6;
      private java.lang.Object retmsg_ = "";
      public boolean hasRetmsg() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public String getRetmsg() {
        java.lang.Object ref = retmsg_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          retmsg_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setRetmsg(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        retmsg_ = value;
        onChanged();
        return this;
      }
      public Builder clearRetmsg() {
        bitField0_ = (bitField0_ & ~0x00000020);
        retmsg_ = getDefaultInstance().getRetmsg();
        onChanged();
        return this;
      }
      void setRetmsg(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000020;
        retmsg_ = value;
        onChanged();
      }
      
      // @@protoc_insertion_point(builder_scope:com.backfire.socket.socketProto.PlayerDepositRpy)
    }
    
    static {
      defaultInstance = new PlayerDepositRpy(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:com.backfire.socket.socketProto.PlayerDepositRpy)
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_AuthReq_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_AuthReq_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_AuthRpy_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_AuthRpy_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_LoginoutReq_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_LoginoutReq_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_Ready_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_Ready_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_ReadyReply_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_ReadyReply_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_PlayerInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_PlayerInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_BroadcastPlayerInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_BroadcastPlayerInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_RebindReq_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_RebindReq_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_RebindRpy_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_RebindRpy_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_SeatReq_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_SeatReq_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_SeatRpy_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_SeatRpy_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_GameStart_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_GameStart_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_QiangdizhuReq_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_QiangdizhuReq_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_QiangdizhuRpy_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_QiangdizhuRpy_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_CardInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_CardInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_HandCard_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_HandCard_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_PlayerPlayActionReq_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_PlayerPlayActionReq_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_PlayerPlayActionRpy_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_PlayerPlayActionRpy_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_BroadcastPlayerAction_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_BroadcastPlayerAction_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_ChatReq_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_ChatReq_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_BroadcastChat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_BroadcastChat_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_GameOver_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_GameOver_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_GameResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_GameResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_BroadcastLaiziCard_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_BroadcastLaiziCard_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_PlayerDepositReq_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_PlayerDepositReq_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_backfire_socket_socketProto_PlayerDepositRpy_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_backfire_socket_socketProto_PlayerDepositRpy_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\016Doudizhu.proto\022\037com.backfire.socket.so" +
      "cketProto\"#\n\007AuthReq\022\013\n\003uid\030\001 \001(\004\022\013\n\003key" +
      "\030\002 \001(\t\"7\n\007AuthRpy\022\013\n\003ret\030\001 \001(\r\022\017\n\007retcod" +
      "e\030\002 \001(\r\022\016\n\006retmsg\030\003 \001(\t\"\032\n\013LoginoutReq\022\013" +
      "\n\003cmd\030\001 \001(\r\"0\n\005Ready\022\017\n\007isready\030\001 \001(\r\022\026\n" +
      "\016handcardAnimMS\030\002 \001(\r\"I\n\nReadyReply\022\013\n\003r" +
      "et\030\001 \001(\r\022\017\n\007retcode\030\002 \001(\r\022\016\n\006retmsg\030\003 \001(" +
      "\t\022\r\n\005seats\030\004 \003(\r\"\351\001\n\nPlayerInfo\022\016\n\006seatI" +
      "d\030\001 \001(\r\022\013\n\003uid\030\002 \001(\004\022\r\n\005uName\030\003 \001(\t\022\014\n\004i" +
      "con\030\004 \001(\t\022\r\n\005money\030\005 \001(\004\022\r\n\005level\030\006 \001(\r\022",
      "\013\n\003sex\030\007 \001(\r\022\r\n\005items\030\010 \003(\r\022\021\n\tgameCount" +
      "\030\t \001(\r\022\020\n\010winCount\030\n \001(\r\022\021\n\tdropCount\030\013 " +
      "\001(\r\022\020\n\010runCount\030\014 \001(\r\022\017\n\007lottery\030\r \001(\004\022\014" +
      "\n\004sign\030\016 \001(\t\"T\n\023BroadcastPlayerInfo\022=\n\010s" +
      "eatList\030\001 \003(\0132+.com.backfire.socket.sock" +
      "etProto.PlayerInfo\")\n\tRebindReq\022\013\n\003uid\030\001" +
      " \001(\004\022\017\n\007session\030\002 \001(\t\"\220\005\n\tRebindRpy\022\013\n\003r" +
      "et\030\001 \001(\r\022\017\n\007retcode\030\002 \001(\r\022\016\n\006retmsg\030\003 \001(" +
      "\t\022=\n\tgamestart\030\004 \001(\0132*.com.backfire.sock" +
      "et.socketProto.GameStart\022>\n\006qdzRpy\030\005 \001(\013",
      "2..com.backfire.socket.socketProto.Qiang" +
      "dizhuRpy\022L\n\014playerAction\030\006 \001(\01326.com.bac" +
      "kfire.socket.socketProto.BroadcastPlayer" +
      "Action\022H\n\nplayerinfo\030\007 \001(\01324.com.backfir" +
      "e.socket.socketProto.BroadcastPlayerInfo" +
      "\022;\n\010handcard\030\010 \001(\0132).com.backfire.socket" +
      ".socketProto.HandCard\022\016\n\006seatid\030\t \001(\r\022\031\n" +
      "\021playerCardsRemain\030\n \003(\r\022D\n\tdeposited\030\013 " +
      "\003(\01321.com.backfire.socket.socketProto.Pl" +
      "ayerDepositRpy\022\020\n\010roomType\030\014 \001(\r\022B\n\005laiz",
      "i\030\r \003(\01323.com.backfire.socket.socketProt" +
      "o.BroadcastLaiziCard\022:\n\010seatInfo\030\016 \001(\0132(" +
      ".com.backfire.socket.socketProto.SeatRpy" +
      "\"Y\n\007SeatReq\022\013\n\003uid\030\001 \001(\004\022\016\n\006seatId\030\002 \001(\r" +
      "\022\016\n\006action\030\003 \001(\r\022\021\n\tautoready\030\004 \001(\r\022\016\n\006r" +
      "oomid\030\005 \001(\r\"\270\001\n\007SeatRpy\022\013\n\003ret\030\001 \001(\r\022\017\n\007" +
      "retCode\030\002 \001(\r\022\016\n\006retMsg\030\003 \001(\t\022\016\n\006seatid\030" +
      "\004 \001(\r\022\016\n\006action\030\005 \001(\r\022\021\n\tbasepoint\030\006 \001(\r" +
      "\022\024\n\014readytimeout\030\007 \001(\r\022\021\n\tawardRoom\030\010 \001(" +
      "\r\022\021\n\tlaiziFlag\030\t \001(\r\022\020\n\010roomName\030\n \001(\t\"\206",
      "\001\n\tGameStart\022\017\n\007gameNum\030\001 \001(\r\022\013\n\003bet\030\002 \001" +
      "(\r\022;\n\010commcard\030\003 \003(\0132).com.backfire.sock" +
      "et.socketProto.CardInfo\022\r\n\005dizhu\030\004 \001(\r\022\017" +
      "\n\007timeout\030\005 \001(\r\".\n\rQiangdizhuReq\022\r\n\005rati" +
      "o\030\001 \001(\r\022\016\n\006giveup\030\002 \001(\r\"\200\001\n\rQiangdizhuRp" +
      "y\022\013\n\003ret\030\001 \001(\r\022\017\n\007retcode\030\002 \001(\r\022\016\n\006retms" +
      "g\030\003 \001(\t\022\r\n\005ratio\030\004 \001(\r\022\016\n\006seatid\030\005 \001(\r\022\017" +
      "\n\007timeout\030\006 \001(\r\022\021\n\tcallCount\030\007 \001(\r\"A\n\010Ca" +
      "rdInfo\022\020\n\010cardFace\030\001 \001(\r\022\020\n\010cardSuit\030\002 \001" +
      "(\r\022\021\n\tlaiziFace\030\003 \001(\r\"K\n\010HandCard\022?\n\014han",
      "dCardList\030\001 \003(\0132).com.backfire.socket.so" +
      "cketProto.CardInfo\"\206\001\n\023PlayerPlayActionR" +
      "eq\022\013\n\003uid\030\001 \001(\004\022\016\n\006action\030\002 \001(\r\022?\n\014pushC" +
      "ardList\030\003 \003(\0132).com.backfire.socket.sock" +
      "etProto.CardInfo\022\021\n\temotionId\030\004 \001(\r\"C\n\023P" +
      "layerPlayActionRpy\022\013\n\003ret\030\001 \001(\r\022\017\n\007retCo" +
      "de\030\002 \001(\r\022\016\n\006retMsg\030\003 \001(\t\"\365\001\n\025BroadcastPl" +
      "ayerAction\022\013\n\003uid\030\001 \001(\004\022\016\n\006seatid\030\002 \001(\r\022" +
      "\016\n\006action\030\003 \001(\r\022?\n\014pushCardList\030\004 \003(\0132)." +
      "com.backfire.socket.socketProto.CardInfo",
      "\022\021\n\temotionId\030\005 \001(\r\022\017\n\007nextuid\030\006 \001(\004\022\022\n\n" +
      "nextseatid\030\007 \001(\r\022\022\n\npointratio\030\010 \001(\r\022\020\n\010" +
      "cardType\030\t \001(\r\022\020\n\010highcard\030\n \001(\r\"W\n\007Chat" +
      "Req\022\013\n\003uId\030\001 \001(\004\022\016\n\006seatId\030\002 \002(\r\022\016\n\006room" +
      "Id\030\003 \001(\r\022\017\n\007chatMsg\030\004 \001(\t\022\016\n\006faceId\030\005 \001(" +
      "\r\"P\n\rBroadcastChat\022\016\n\006seatId\030\001 \002(\r\022\017\n\007ch" +
      "atMsg\030\002 \001(\t\022\016\n\006faceId\030\003 \001(\r\022\016\n\006roomId\030\004 " +
      "\001(\r\"X\n\010GameOver\022\017\n\007winSide\030\001 \001(\r\022;\n\006resu" +
      "lt\030\002 \003(\0132+.com.backfire.socket.socketPro" +
      "to.GameResult\"\341\001\n\nGameResult\022\016\n\006seatid\030\001",
      " \001(\r\022\020\n\010winMoney\030\002 \001(\004\022\020\n\010winRatio\030\003 \001(\r" +
      "\022\r\n\005bombs\030\004 \001(\r\022<\n\tseatCards\030\005 \003(\0132).com" +
      ".backfire.socket.socketProto.CardInfo\022\016\n" +
      "\006spring\030\006 \001(\r\022\016\n\006reward\030\007 \001(\r\022\r\n\005money\030\010" +
      " \001(\004\022\017\n\007lottery\030\t \001(\004\022\022\n\nwinLottery\030\n \001(" +
      "\004\"b\n\022BroadcastLaiziCard\022<\n\tlaizicard\030\001 \001" +
      "(\0132).com.backfire.socket.socketProto.Car" +
      "dInfo\022\016\n\006seatid\030\002 \001(\r\"\'\n\020PlayerDepositRe" +
      "q\022\023\n\013isdeposited\030\001 \001(\r\"r\n\020PlayerDepositR" +
      "py\022\016\n\006seatid\030\001 \001(\r\022\013\n\003uid\030\002 \001(\004\022\023\n\013isdep",
      "osited\030\003 \001(\r\022\013\n\003ret\030\004 \001(\r\022\017\n\007retcode\030\005 \001" +
      "(\r\022\016\n\006retmsg\030\006 \001(\tB+\n\037com.backfire.socke" +
      "t.socketProtoB\010Doudizhu"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_com_backfire_socket_socketProto_AuthReq_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_com_backfire_socket_socketProto_AuthReq_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_AuthReq_descriptor,
              new java.lang.String[] { "Uid", "Key", },
              com.backfire.socket.socketProto.Doudizhu.AuthReq.class,
              com.backfire.socket.socketProto.Doudizhu.AuthReq.Builder.class);
          internal_static_com_backfire_socket_socketProto_AuthRpy_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_com_backfire_socket_socketProto_AuthRpy_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_AuthRpy_descriptor,
              new java.lang.String[] { "Ret", "Retcode", "Retmsg", },
              com.backfire.socket.socketProto.Doudizhu.AuthRpy.class,
              com.backfire.socket.socketProto.Doudizhu.AuthRpy.Builder.class);
          internal_static_com_backfire_socket_socketProto_LoginoutReq_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_com_backfire_socket_socketProto_LoginoutReq_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_LoginoutReq_descriptor,
              new java.lang.String[] { "Cmd", },
              com.backfire.socket.socketProto.Doudizhu.LoginoutReq.class,
              com.backfire.socket.socketProto.Doudizhu.LoginoutReq.Builder.class);
          internal_static_com_backfire_socket_socketProto_Ready_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_com_backfire_socket_socketProto_Ready_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_Ready_descriptor,
              new java.lang.String[] { "Isready", "HandcardAnimMS", },
              com.backfire.socket.socketProto.Doudizhu.Ready.class,
              com.backfire.socket.socketProto.Doudizhu.Ready.Builder.class);
          internal_static_com_backfire_socket_socketProto_ReadyReply_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_com_backfire_socket_socketProto_ReadyReply_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_ReadyReply_descriptor,
              new java.lang.String[] { "Ret", "Retcode", "Retmsg", "Seats", },
              com.backfire.socket.socketProto.Doudizhu.ReadyReply.class,
              com.backfire.socket.socketProto.Doudizhu.ReadyReply.Builder.class);
          internal_static_com_backfire_socket_socketProto_PlayerInfo_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_com_backfire_socket_socketProto_PlayerInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_PlayerInfo_descriptor,
              new java.lang.String[] { "SeatId", "Uid", "UName", "Icon", "Money", "Level", "Sex", "Items", "GameCount", "WinCount", "DropCount", "RunCount", "Lottery", "Sign", },
              com.backfire.socket.socketProto.Doudizhu.PlayerInfo.class,
              com.backfire.socket.socketProto.Doudizhu.PlayerInfo.Builder.class);
          internal_static_com_backfire_socket_socketProto_BroadcastPlayerInfo_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_com_backfire_socket_socketProto_BroadcastPlayerInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_BroadcastPlayerInfo_descriptor,
              new java.lang.String[] { "SeatList", },
              com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.class,
              com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerInfo.Builder.class);
          internal_static_com_backfire_socket_socketProto_RebindReq_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_com_backfire_socket_socketProto_RebindReq_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_RebindReq_descriptor,
              new java.lang.String[] { "Uid", "Session", },
              com.backfire.socket.socketProto.Doudizhu.RebindReq.class,
              com.backfire.socket.socketProto.Doudizhu.RebindReq.Builder.class);
          internal_static_com_backfire_socket_socketProto_RebindRpy_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_com_backfire_socket_socketProto_RebindRpy_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_RebindRpy_descriptor,
              new java.lang.String[] { "Ret", "Retcode", "Retmsg", "Gamestart", "QdzRpy", "PlayerAction", "Playerinfo", "Handcard", "Seatid", "PlayerCardsRemain", "Deposited", "RoomType", "Laizi", "SeatInfo", },
              com.backfire.socket.socketProto.Doudizhu.RebindRpy.class,
              com.backfire.socket.socketProto.Doudizhu.RebindRpy.Builder.class);
          internal_static_com_backfire_socket_socketProto_SeatReq_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_com_backfire_socket_socketProto_SeatReq_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_SeatReq_descriptor,
              new java.lang.String[] { "Uid", "SeatId", "Action", "Autoready", "Roomid", },
              com.backfire.socket.socketProto.Doudizhu.SeatReq.class,
              com.backfire.socket.socketProto.Doudizhu.SeatReq.Builder.class);
          internal_static_com_backfire_socket_socketProto_SeatRpy_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_com_backfire_socket_socketProto_SeatRpy_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_SeatRpy_descriptor,
              new java.lang.String[] { "Ret", "RetCode", "RetMsg", "Seatid", "Action", "Basepoint", "Readytimeout", "AwardRoom", "LaiziFlag", "RoomName", },
              com.backfire.socket.socketProto.Doudizhu.SeatRpy.class,
              com.backfire.socket.socketProto.Doudizhu.SeatRpy.Builder.class);
          internal_static_com_backfire_socket_socketProto_GameStart_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_com_backfire_socket_socketProto_GameStart_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_GameStart_descriptor,
              new java.lang.String[] { "GameNum", "Bet", "Commcard", "Dizhu", "Timeout", },
              com.backfire.socket.socketProto.Doudizhu.GameStart.class,
              com.backfire.socket.socketProto.Doudizhu.GameStart.Builder.class);
          internal_static_com_backfire_socket_socketProto_QiangdizhuReq_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_com_backfire_socket_socketProto_QiangdizhuReq_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_QiangdizhuReq_descriptor,
              new java.lang.String[] { "Ratio", "Giveup", },
              com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq.class,
              com.backfire.socket.socketProto.Doudizhu.QiangdizhuReq.Builder.class);
          internal_static_com_backfire_socket_socketProto_QiangdizhuRpy_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_com_backfire_socket_socketProto_QiangdizhuRpy_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_QiangdizhuRpy_descriptor,
              new java.lang.String[] { "Ret", "Retcode", "Retmsg", "Ratio", "Seatid", "Timeout", "CallCount", },
              com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.class,
              com.backfire.socket.socketProto.Doudizhu.QiangdizhuRpy.Builder.class);
          internal_static_com_backfire_socket_socketProto_CardInfo_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_com_backfire_socket_socketProto_CardInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_CardInfo_descriptor,
              new java.lang.String[] { "CardFace", "CardSuit", "LaiziFace", },
              com.backfire.socket.socketProto.Doudizhu.CardInfo.class,
              com.backfire.socket.socketProto.Doudizhu.CardInfo.Builder.class);
          internal_static_com_backfire_socket_socketProto_HandCard_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_com_backfire_socket_socketProto_HandCard_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_HandCard_descriptor,
              new java.lang.String[] { "HandCardList", },
              com.backfire.socket.socketProto.Doudizhu.HandCard.class,
              com.backfire.socket.socketProto.Doudizhu.HandCard.Builder.class);
          internal_static_com_backfire_socket_socketProto_PlayerPlayActionReq_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_com_backfire_socket_socketProto_PlayerPlayActionReq_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_PlayerPlayActionReq_descriptor,
              new java.lang.String[] { "Uid", "Action", "PushCardList", "EmotionId", },
              com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq.class,
              com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionReq.Builder.class);
          internal_static_com_backfire_socket_socketProto_PlayerPlayActionRpy_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_com_backfire_socket_socketProto_PlayerPlayActionRpy_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_PlayerPlayActionRpy_descriptor,
              new java.lang.String[] { "Ret", "RetCode", "RetMsg", },
              com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy.class,
              com.backfire.socket.socketProto.Doudizhu.PlayerPlayActionRpy.Builder.class);
          internal_static_com_backfire_socket_socketProto_BroadcastPlayerAction_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_com_backfire_socket_socketProto_BroadcastPlayerAction_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_BroadcastPlayerAction_descriptor,
              new java.lang.String[] { "Uid", "Seatid", "Action", "PushCardList", "EmotionId", "Nextuid", "Nextseatid", "Pointratio", "CardType", "Highcard", },
              com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.class,
              com.backfire.socket.socketProto.Doudizhu.BroadcastPlayerAction.Builder.class);
          internal_static_com_backfire_socket_socketProto_ChatReq_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_com_backfire_socket_socketProto_ChatReq_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_ChatReq_descriptor,
              new java.lang.String[] { "UId", "SeatId", "RoomId", "ChatMsg", "FaceId", },
              com.backfire.socket.socketProto.Doudizhu.ChatReq.class,
              com.backfire.socket.socketProto.Doudizhu.ChatReq.Builder.class);
          internal_static_com_backfire_socket_socketProto_BroadcastChat_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_com_backfire_socket_socketProto_BroadcastChat_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_BroadcastChat_descriptor,
              new java.lang.String[] { "SeatId", "ChatMsg", "FaceId", "RoomId", },
              com.backfire.socket.socketProto.Doudizhu.BroadcastChat.class,
              com.backfire.socket.socketProto.Doudizhu.BroadcastChat.Builder.class);
          internal_static_com_backfire_socket_socketProto_GameOver_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_com_backfire_socket_socketProto_GameOver_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_GameOver_descriptor,
              new java.lang.String[] { "WinSide", "Result", },
              com.backfire.socket.socketProto.Doudizhu.GameOver.class,
              com.backfire.socket.socketProto.Doudizhu.GameOver.Builder.class);
          internal_static_com_backfire_socket_socketProto_GameResult_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_com_backfire_socket_socketProto_GameResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_GameResult_descriptor,
              new java.lang.String[] { "Seatid", "WinMoney", "WinRatio", "Bombs", "SeatCards", "Spring", "Reward", "Money", "Lottery", "WinLottery", },
              com.backfire.socket.socketProto.Doudizhu.GameResult.class,
              com.backfire.socket.socketProto.Doudizhu.GameResult.Builder.class);
          internal_static_com_backfire_socket_socketProto_BroadcastLaiziCard_descriptor =
            getDescriptor().getMessageTypes().get(23);
          internal_static_com_backfire_socket_socketProto_BroadcastLaiziCard_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_BroadcastLaiziCard_descriptor,
              new java.lang.String[] { "Laizicard", "Seatid", },
              com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.class,
              com.backfire.socket.socketProto.Doudizhu.BroadcastLaiziCard.Builder.class);
          internal_static_com_backfire_socket_socketProto_PlayerDepositReq_descriptor =
            getDescriptor().getMessageTypes().get(24);
          internal_static_com_backfire_socket_socketProto_PlayerDepositReq_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_PlayerDepositReq_descriptor,
              new java.lang.String[] { "Isdeposited", },
              com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq.class,
              com.backfire.socket.socketProto.Doudizhu.PlayerDepositReq.Builder.class);
          internal_static_com_backfire_socket_socketProto_PlayerDepositRpy_descriptor =
            getDescriptor().getMessageTypes().get(25);
          internal_static_com_backfire_socket_socketProto_PlayerDepositRpy_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_backfire_socket_socketProto_PlayerDepositRpy_descriptor,
              new java.lang.String[] { "Seatid", "Uid", "Isdeposited", "Ret", "Retcode", "Retmsg", },
              com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.class,
              com.backfire.socket.socketProto.Doudizhu.PlayerDepositRpy.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }
  
  // @@protoc_insertion_point(outer_class_scope)
}
