content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: AdminProtocol.proto
  
  package com.alibaba.otter.canal.protocol;
  
  public final class AdminPacket {
    private AdminPacket() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistryLite registry) {
    }
  
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
      registerAllExtensions(
          (com.google.protobuf.ExtensionRegistryLite) registry);
    }
    /**
     * Protobuf enum {@code com.alibaba.otter.canal.protocol.PacketType}
     */
    public enum PacketType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *compatible
       * </pre>
       *
       * <code>PACKAGETYPECOMPATIBLEPROTO2 = 0;</code>
       */
      PACKAGETYPECOMPATIBLEPROTO2(0),
      /**
       * <code>HANDSHAKE = 1;</code>
       */
      HANDSHAKE(1),
      /**
       * <code>CLIENTAUTHENTICATION = 2;</code>
       */
      CLIENTAUTHENTICATION(2),
      /**
       * <code>ACK = 3;</code>
       */
      ACK(3),
      /**
       * <code>SERVER = 4;</code>
       */
      SERVER(4),
      /**
       * <code>INSTANCE = 5;</code>
       */
      INSTANCE(5),
      /**
       * <code>LOG = 6;</code>
       */
      LOG(6),
      UNRECOGNIZED(-1),
      ;
  
      /**
       * <pre>
       *compatible
       * </pre>
       *
       * <code>PACKAGETYPECOMPATIBLEPROTO2 = 0;</code>
       */
      public static final int PACKAGETYPECOMPATIBLEPROTO2_VALUE = 0;
      /**
       * <code>HANDSHAKE = 1;</code>
       */
      public static final int HANDSHAKE_VALUE = 1;
      /**
       * <code>CLIENTAUTHENTICATION = 2;</code>
       */
      public static final int CLIENTAUTHENTICATION_VALUE = 2;
      /**
       * <code>ACK = 3;</code>
       */
      public static final int ACK_VALUE = 3;
      /**
       * <code>SERVER = 4;</code>
       */
      public static final int SERVER_VALUE = 4;
      /**
       * <code>INSTANCE = 5;</code>
       */
      public static final int INSTANCE_VALUE = 5;
      /**
       * <code>LOG = 6;</code>
       */
      public static final int LOG_VALUE = 6;
  
  
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }
  
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PacketType valueOf(int value) {
        return forNumber(value);
      }
  
      public static PacketType forNumber(int value) {
        switch (value) {
          case 0: return PACKAGETYPECOMPATIBLEPROTO2;
          case 1: return HANDSHAKE;
          case 2: return CLIENTAUTHENTICATION;
          case 3: return ACK;
          case 4: return SERVER;
          case 5: return INSTANCE;
          case 6: return LOG;
          default: return null;
        }
      }
  
      public static com.google.protobuf.Internal.EnumLiteMap<PacketType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          PacketType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PacketType>() {
              public PacketType findValueByNumber(int number) {
                return PacketType.forNumber(number);
              }
            };
  
      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.alibaba.otter.canal.protocol.AdminPacket.getDescriptor().getEnumTypes().get(0);
      }
  
      private static final PacketType[] VALUES = values();
  
      public static PacketType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }
  
      private final int value;
  
      private PacketType(int value) {
        this.value = value;
      }
  
      // @@protoc_insertion_point(enum_scope:com.alibaba.otter.canal.protocol.PacketType)
    }
  
    public interface PacketOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.canal.protocol.Packet)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>int32 magic_number = 1;</code>
       */
      int getMagicNumber();
  
      /**
       * <code>int32 version = 2;</code>
       */
      int getVersion();
  
      /**
       * <code>.com.alibaba.otter.canal.protocol.PacketType type = 3;</code>
       */
      int getTypeValue();
      /**
       * <code>.com.alibaba.otter.canal.protocol.PacketType type = 3;</code>
       */
      com.alibaba.otter.canal.protocol.AdminPacket.PacketType getType();
  
      /**
       * <code>bytes body = 4;</code>
       */
      com.google.protobuf.ByteString getBody();
  
      public com.alibaba.otter.canal.protocol.AdminPacket.Packet.MagicNumberPresentCase getMagicNumberPresentCase();
  
      public com.alibaba.otter.canal.protocol.AdminPacket.Packet.VersionPresentCase getVersionPresentCase();
    }
    /**
     * Protobuf type {@code com.alibaba.otter.canal.protocol.Packet}
     */
    public  static final class Packet extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.canal.protocol.Packet)
        PacketOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Packet.newBuilder() to construct.
      private Packet(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Packet() {
        type_ = 0;
        body_ = com.google.protobuf.ByteString.EMPTY;
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Packet(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                magicNumberPresentCase_ = 1;
                magicNumberPresent_ = input.readInt32();
                break;
              }
              case 16: {
                versionPresentCase_ = 2;
                versionPresent_ = input.readInt32();
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
  
                type_ = rawValue;
                break;
              }
              case 34: {
  
                body_ = input.readBytes();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Packet_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Packet_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.canal.protocol.AdminPacket.Packet.class, com.alibaba.otter.canal.protocol.AdminPacket.Packet.Builder.class);
      }
  
      private int magicNumberPresentCase_ = 0;
      private java.lang.Object magicNumberPresent_;
      public enum MagicNumberPresentCase
          implements com.google.protobuf.Internal.EnumLite {
        MAGIC_NUMBER(1),
        MAGICNUMBERPRESENT_NOT_SET(0);
        private final int value;
        private MagicNumberPresentCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static MagicNumberPresentCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static MagicNumberPresentCase forNumber(int value) {
          switch (value) {
            case 1: return MAGIC_NUMBER;
            case 0: return MAGICNUMBERPRESENT_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public MagicNumberPresentCase
      getMagicNumberPresentCase() {
        return MagicNumberPresentCase.forNumber(
            magicNumberPresentCase_);
      }
  
      private int versionPresentCase_ = 0;
      private java.lang.Object versionPresent_;
      public enum VersionPresentCase
          implements com.google.protobuf.Internal.EnumLite {
        VERSION(2),
        VERSIONPRESENT_NOT_SET(0);
        private final int value;
        private VersionPresentCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static VersionPresentCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static VersionPresentCase forNumber(int value) {
          switch (value) {
            case 2: return VERSION;
            case 0: return VERSIONPRESENT_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public VersionPresentCase
      getVersionPresentCase() {
        return VersionPresentCase.forNumber(
            versionPresentCase_);
      }
  
      public static final int MAGIC_NUMBER_FIELD_NUMBER = 1;
      /**
       * <code>int32 magic_number = 1;</code>
       */
      public int getMagicNumber() {
        if (magicNumberPresentCase_ == 1) {
          return (java.lang.Integer) magicNumberPresent_;
        }
        return 0;
      }
  
      public static final int VERSION_FIELD_NUMBER = 2;
      /**
       * <code>int32 version = 2;</code>
       */
      public int getVersion() {
        if (versionPresentCase_ == 2) {
          return (java.lang.Integer) versionPresent_;
        }
        return 0;
      }
  
      public static final int TYPE_FIELD_NUMBER = 3;
      private int type_;
      /**
       * <code>.com.alibaba.otter.canal.protocol.PacketType type = 3;</code>
       */
      public int getTypeValue() {
        return type_;
      }
      /**
       * <code>.com.alibaba.otter.canal.protocol.PacketType type = 3;</code>
       */
      public com.alibaba.otter.canal.protocol.AdminPacket.PacketType getType() {
        @SuppressWarnings("deprecation")
        com.alibaba.otter.canal.protocol.AdminPacket.PacketType result = com.alibaba.otter.canal.protocol.AdminPacket.PacketType.valueOf(type_);
        return result == null ? com.alibaba.otter.canal.protocol.AdminPacket.PacketType.UNRECOGNIZED : result;
      }
  
      public static final int BODY_FIELD_NUMBER = 4;
      private com.google.protobuf.ByteString body_;
      /**
       * <code>bytes body = 4;</code>
       */
      public com.google.protobuf.ByteString getBody() {
        return body_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (magicNumberPresentCase_ == 1) {
          output.writeInt32(
              1, (int)((java.lang.Integer) magicNumberPresent_));
        }
        if (versionPresentCase_ == 2) {
          output.writeInt32(
              2, (int)((java.lang.Integer) versionPresent_));
        }
        if (type_ != com.alibaba.otter.canal.protocol.AdminPacket.PacketType.PACKAGETYPECOMPATIBLEPROTO2.getNumber()) {
          output.writeEnum(3, type_);
        }
        if (!body_.isEmpty()) {
          output.writeBytes(4, body_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (magicNumberPresentCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(
                1, (int)((java.lang.Integer) magicNumberPresent_));
        }
        if (versionPresentCase_ == 2) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(
                2, (int)((java.lang.Integer) versionPresent_));
        }
        if (type_ != com.alibaba.otter.canal.protocol.AdminPacket.PacketType.PACKAGETYPECOMPATIBLEPROTO2.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, type_);
        }
        if (!body_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, body_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.alibaba.otter.canal.protocol.AdminPacket.Packet)) {
          return super.equals(obj);
        }
        com.alibaba.otter.canal.protocol.AdminPacket.Packet other = (com.alibaba.otter.canal.protocol.AdminPacket.Packet) obj;
  
        boolean result = true;
        result = result && type_ == other.type_;
        result = result && getBody()
            .equals(other.getBody());
        result = result && getMagicNumberPresentCase().equals(
            other.getMagicNumberPresentCase());
        if (!result) return false;
        switch (magicNumberPresentCase_) {
          case 1:
            result = result && (getMagicNumber()
                == other.getMagicNumber());
            break;
          case 0:
          default:
        }
        result = result && getVersionPresentCase().equals(
            other.getVersionPresentCase());
        if (!result) return false;
        switch (versionPresentCase_) {
          case 2:
            result = result && (getVersion()
                == other.getVersion());
            break;
          case 0:
          default:
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + type_;
        hash = (37 * hash) + BODY_FIELD_NUMBER;
        hash = (53 * hash) + getBody().hashCode();
        switch (magicNumberPresentCase_) {
          case 1:
            hash = (37 * hash) + MAGIC_NUMBER_FIELD_NUMBER;
            hash = (53 * hash) + getMagicNumber();
            break;
          case 0:
          default:
        }
        switch (versionPresentCase_) {
          case 2:
            hash = (37 * hash) + VERSION_FIELD_NUMBER;
            hash = (53 * hash) + getVersion();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.alibaba.otter.canal.protocol.AdminPacket.Packet prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.canal.protocol.Packet}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.canal.protocol.Packet)
          com.alibaba.otter.canal.protocol.AdminPacket.PacketOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Packet_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Packet_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.canal.protocol.AdminPacket.Packet.class, com.alibaba.otter.canal.protocol.AdminPacket.Packet.Builder.class);
        }
  
        // Construct using com.alibaba.otter.canal.protocol.AdminPacket.Packet.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          type_ = 0;
  
          body_ = com.google.protobuf.ByteString.EMPTY;
  
          magicNumberPresentCase_ = 0;
          magicNumberPresent_ = null;
          versionPresentCase_ = 0;
          versionPresent_ = null;
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Packet_descriptor;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.Packet getDefaultInstanceForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.Packet.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.Packet build() {
          com.alibaba.otter.canal.protocol.AdminPacket.Packet result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.Packet buildPartial() {
          com.alibaba.otter.canal.protocol.AdminPacket.Packet result = new com.alibaba.otter.canal.protocol.AdminPacket.Packet(this);
          if (magicNumberPresentCase_ == 1) {
            result.magicNumberPresent_ = magicNumberPresent_;
          }
          if (versionPresentCase_ == 2) {
            result.versionPresent_ = versionPresent_;
          }
          result.type_ = type_;
          result.body_ = body_;
          result.magicNumberPresentCase_ = magicNumberPresentCase_;
          result.versionPresentCase_ = versionPresentCase_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.canal.protocol.AdminPacket.Packet) {
            return mergeFrom((com.alibaba.otter.canal.protocol.AdminPacket.Packet)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.canal.protocol.AdminPacket.Packet other) {
          if (other == com.alibaba.otter.canal.protocol.AdminPacket.Packet.getDefaultInstance()) return this;
          if (other.type_ != 0) {
            setTypeValue(other.getTypeValue());
          }
          if (other.getBody() != com.google.protobuf.ByteString.EMPTY) {
            setBody(other.getBody());
          }
          switch (other.getMagicNumberPresentCase()) {
            case MAGIC_NUMBER: {
              setMagicNumber(other.getMagicNumber());
              break;
            }
            case MAGICNUMBERPRESENT_NOT_SET: {
              break;
            }
          }
          switch (other.getVersionPresentCase()) {
            case VERSION: {
              setVersion(other.getVersion());
              break;
            }
            case VERSIONPRESENT_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.canal.protocol.AdminPacket.Packet parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.canal.protocol.AdminPacket.Packet) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int magicNumberPresentCase_ = 0;
        private java.lang.Object magicNumberPresent_;
        public MagicNumberPresentCase
            getMagicNumberPresentCase() {
          return MagicNumberPresentCase.forNumber(
              magicNumberPresentCase_);
        }
  
        public Builder clearMagicNumberPresent() {
          magicNumberPresentCase_ = 0;
          magicNumberPresent_ = null;
          onChanged();
          return this;
        }
  
        private int versionPresentCase_ = 0;
        private java.lang.Object versionPresent_;
        public VersionPresentCase
            getVersionPresentCase() {
          return VersionPresentCase.forNumber(
              versionPresentCase_);
        }
  
        public Builder clearVersionPresent() {
          versionPresentCase_ = 0;
          versionPresent_ = null;
          onChanged();
          return this;
        }
  
  
        /**
         * <code>int32 magic_number = 1;</code>
         */
        public int getMagicNumber() {
          if (magicNumberPresentCase_ == 1) {
            return (java.lang.Integer) magicNumberPresent_;
          }
          return 0;
        }
        /**
         * <code>int32 magic_number = 1;</code>
         */
        public Builder setMagicNumber(int value) {
          magicNumberPresentCase_ = 1;
          magicNumberPresent_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 magic_number = 1;</code>
         */
        public Builder clearMagicNumber() {
          if (magicNumberPresentCase_ == 1) {
            magicNumberPresentCase_ = 0;
            magicNumberPresent_ = null;
            onChanged();
          }
          return this;
        }
  
        /**
         * <code>int32 version = 2;</code>
         */
        public int getVersion() {
          if (versionPresentCase_ == 2) {
            return (java.lang.Integer) versionPresent_;
          }
          return 0;
        }
        /**
         * <code>int32 version = 2;</code>
         */
        public Builder setVersion(int value) {
          versionPresentCase_ = 2;
          versionPresent_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 version = 2;</code>
         */
        public Builder clearVersion() {
          if (versionPresentCase_ == 2) {
            versionPresentCase_ = 0;
            versionPresent_ = null;
            onChanged();
          }
          return this;
        }
  
        private int type_ = 0;
        /**
         * <code>.com.alibaba.otter.canal.protocol.PacketType type = 3;</code>
         */
        public int getTypeValue() {
          return type_;
        }
        /**
         * <code>.com.alibaba.otter.canal.protocol.PacketType type = 3;</code>
         */
        public Builder setTypeValue(int value) {
          type_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>.com.alibaba.otter.canal.protocol.PacketType type = 3;</code>
         */
        public com.alibaba.otter.canal.protocol.AdminPacket.PacketType getType() {
          @SuppressWarnings("deprecation")
          com.alibaba.otter.canal.protocol.AdminPacket.PacketType result = com.alibaba.otter.canal.protocol.AdminPacket.PacketType.valueOf(type_);
          return result == null ? com.alibaba.otter.canal.protocol.AdminPacket.PacketType.UNRECOGNIZED : result;
        }
        /**
         * <code>.com.alibaba.otter.canal.protocol.PacketType type = 3;</code>
         */
        public Builder setType(com.alibaba.otter.canal.protocol.AdminPacket.PacketType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          type_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>.com.alibaba.otter.canal.protocol.PacketType type = 3;</code>
         */
        public Builder clearType() {
          
          type_ = 0;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.ByteString body_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>bytes body = 4;</code>
         */
        public com.google.protobuf.ByteString getBody() {
          return body_;
        }
        /**
         * <code>bytes body = 4;</code>
         */
        public Builder setBody(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          body_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bytes body = 4;</code>
         */
        public Builder clearBody() {
          
          body_ = getDefaultInstance().getBody();
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.canal.protocol.Packet)
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.canal.protocol.Packet)
      private static final com.alibaba.otter.canal.protocol.AdminPacket.Packet DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alibaba.otter.canal.protocol.AdminPacket.Packet();
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.Packet getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<Packet>
          PARSER = new com.google.protobuf.AbstractParser<Packet>() {
        @java.lang.Override
        public Packet parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Packet(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<Packet> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<Packet> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alibaba.otter.canal.protocol.AdminPacket.Packet getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface AckOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.canal.protocol.Ack)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>int32 code = 1;</code>
       */
      int getCode();
  
      /**
       * <pre>
       * if something like compression is not supported, erorr_message will tell about it.
       * </pre>
       *
       * <code>string message = 2;</code>
       */
      java.lang.String getMessage();
      /**
       * <pre>
       * if something like compression is not supported, erorr_message will tell about it.
       * </pre>
       *
       * <code>string message = 2;</code>
       */
      com.google.protobuf.ByteString
          getMessageBytes();
  
      public com.alibaba.otter.canal.protocol.AdminPacket.Ack.ErrorCodePresentCase getErrorCodePresentCase();
    }
    /**
     * Protobuf type {@code com.alibaba.otter.canal.protocol.Ack}
     */
    public  static final class Ack extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.canal.protocol.Ack)
        AckOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Ack.newBuilder() to construct.
      private Ack(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Ack() {
        message_ = "";
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Ack(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                errorCodePresentCase_ = 1;
                errorCodePresent_ = input.readInt32();
                break;
              }
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
  
                message_ = s;
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Ack_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Ack_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.canal.protocol.AdminPacket.Ack.class, com.alibaba.otter.canal.protocol.AdminPacket.Ack.Builder.class);
      }
  
      private int errorCodePresentCase_ = 0;
      private java.lang.Object errorCodePresent_;
      public enum ErrorCodePresentCase
          implements com.google.protobuf.Internal.EnumLite {
        CODE(1),
        ERRORCODEPRESENT_NOT_SET(0);
        private final int value;
        private ErrorCodePresentCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ErrorCodePresentCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static ErrorCodePresentCase forNumber(int value) {
          switch (value) {
            case 1: return CODE;
            case 0: return ERRORCODEPRESENT_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public ErrorCodePresentCase
      getErrorCodePresentCase() {
        return ErrorCodePresentCase.forNumber(
            errorCodePresentCase_);
      }
  
      public static final int CODE_FIELD_NUMBER = 1;
      /**
       * <code>int32 code = 1;</code>
       */
      public int getCode() {
        if (errorCodePresentCase_ == 1) {
          return (java.lang.Integer) errorCodePresent_;
        }
        return 0;
      }
  
      public static final int MESSAGE_FIELD_NUMBER = 2;
      private volatile java.lang.Object message_;
      /**
       * <pre>
       * if something like compression is not supported, erorr_message will tell about it.
       * </pre>
       *
       * <code>string message = 2;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * if something like compression is not supported, erorr_message will tell about it.
       * </pre>
       *
       * <code>string message = 2;</code>
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (errorCodePresentCase_ == 1) {
          output.writeInt32(
              1, (int)((java.lang.Integer) errorCodePresent_));
        }
        if (!getMessageBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, message_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (errorCodePresentCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(
                1, (int)((java.lang.Integer) errorCodePresent_));
        }
        if (!getMessageBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, message_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.alibaba.otter.canal.protocol.AdminPacket.Ack)) {
          return super.equals(obj);
        }
        com.alibaba.otter.canal.protocol.AdminPacket.Ack other = (com.alibaba.otter.canal.protocol.AdminPacket.Ack) obj;
  
        boolean result = true;
        result = result && getMessage()
            .equals(other.getMessage());
        result = result && getErrorCodePresentCase().equals(
            other.getErrorCodePresentCase());
        if (!result) return false;
        switch (errorCodePresentCase_) {
          case 1:
            result = result && (getCode()
                == other.getCode());
            break;
          case 0:
          default:
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
        switch (errorCodePresentCase_) {
          case 1:
            hash = (37 * hash) + CODE_FIELD_NUMBER;
            hash = (53 * hash) + getCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.alibaba.otter.canal.protocol.AdminPacket.Ack prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.canal.protocol.Ack}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.canal.protocol.Ack)
          com.alibaba.otter.canal.protocol.AdminPacket.AckOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Ack_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Ack_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.canal.protocol.AdminPacket.Ack.class, com.alibaba.otter.canal.protocol.AdminPacket.Ack.Builder.class);
        }
  
        // Construct using com.alibaba.otter.canal.protocol.AdminPacket.Ack.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          message_ = "";
  
          errorCodePresentCase_ = 0;
          errorCodePresent_ = null;
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Ack_descriptor;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.Ack getDefaultInstanceForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.Ack.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.Ack build() {
          com.alibaba.otter.canal.protocol.AdminPacket.Ack result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.Ack buildPartial() {
          com.alibaba.otter.canal.protocol.AdminPacket.Ack result = new com.alibaba.otter.canal.protocol.AdminPacket.Ack(this);
          if (errorCodePresentCase_ == 1) {
            result.errorCodePresent_ = errorCodePresent_;
          }
          result.message_ = message_;
          result.errorCodePresentCase_ = errorCodePresentCase_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.canal.protocol.AdminPacket.Ack) {
            return mergeFrom((com.alibaba.otter.canal.protocol.AdminPacket.Ack)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.canal.protocol.AdminPacket.Ack other) {
          if (other == com.alibaba.otter.canal.protocol.AdminPacket.Ack.getDefaultInstance()) return this;
          if (!other.getMessage().isEmpty()) {
            message_ = other.message_;
            onChanged();
          }
          switch (other.getErrorCodePresentCase()) {
            case CODE: {
              setCode(other.getCode());
              break;
            }
            case ERRORCODEPRESENT_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.canal.protocol.AdminPacket.Ack parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.canal.protocol.AdminPacket.Ack) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int errorCodePresentCase_ = 0;
        private java.lang.Object errorCodePresent_;
        public ErrorCodePresentCase
            getErrorCodePresentCase() {
          return ErrorCodePresentCase.forNumber(
              errorCodePresentCase_);
        }
  
        public Builder clearErrorCodePresent() {
          errorCodePresentCase_ = 0;
          errorCodePresent_ = null;
          onChanged();
          return this;
        }
  
  
        /**
         * <code>int32 code = 1;</code>
         */
        public int getCode() {
          if (errorCodePresentCase_ == 1) {
            return (java.lang.Integer) errorCodePresent_;
          }
          return 0;
        }
        /**
         * <code>int32 code = 1;</code>
         */
        public Builder setCode(int value) {
          errorCodePresentCase_ = 1;
          errorCodePresent_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 code = 1;</code>
         */
        public Builder clearCode() {
          if (errorCodePresentCase_ == 1) {
            errorCodePresentCase_ = 0;
            errorCodePresent_ = null;
            onChanged();
          }
          return this;
        }
  
        private java.lang.Object message_ = "";
        /**
         * <pre>
         * if something like compression is not supported, erorr_message will tell about it.
         * </pre>
         *
         * <code>string message = 2;</code>
         */
        public java.lang.String getMessage() {
          java.lang.Object ref = message_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            message_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * if something like compression is not supported, erorr_message will tell about it.
         * </pre>
         *
         * <code>string message = 2;</code>
         */
        public com.google.protobuf.ByteString
            getMessageBytes() {
          java.lang.Object ref = message_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            message_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * if something like compression is not supported, erorr_message will tell about it.
         * </pre>
         *
         * <code>string message = 2;</code>
         */
        public Builder setMessage(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          message_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * if something like compression is not supported, erorr_message will tell about it.
         * </pre>
         *
         * <code>string message = 2;</code>
         */
        public Builder clearMessage() {
          
          message_ = getDefaultInstance().getMessage();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * if something like compression is not supported, erorr_message will tell about it.
         * </pre>
         *
         * <code>string message = 2;</code>
         */
        public Builder setMessageBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          message_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.canal.protocol.Ack)
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.canal.protocol.Ack)
      private static final com.alibaba.otter.canal.protocol.AdminPacket.Ack DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alibaba.otter.canal.protocol.AdminPacket.Ack();
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.Ack getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<Ack>
          PARSER = new com.google.protobuf.AbstractParser<Ack>() {
        @java.lang.Override
        public Ack parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Ack(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<Ack> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<Ack> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alibaba.otter.canal.protocol.AdminPacket.Ack getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface HandshakeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.canal.protocol.Handshake)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>string communication_encoding = 1;</code>
       */
      java.lang.String getCommunicationEncoding();
      /**
       * <code>string communication_encoding = 1;</code>
       */
      com.google.protobuf.ByteString
          getCommunicationEncodingBytes();
  
      /**
       * <code>bytes seeds = 2;</code>
       */
      com.google.protobuf.ByteString getSeeds();
  
      public com.alibaba.otter.canal.protocol.AdminPacket.Handshake.CommunicationEncodingPresentCase getCommunicationEncodingPresentCase();
    }
    /**
     * Protobuf type {@code com.alibaba.otter.canal.protocol.Handshake}
     */
    public  static final class Handshake extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.canal.protocol.Handshake)
        HandshakeOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Handshake.newBuilder() to construct.
      private Handshake(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Handshake() {
        seeds_ = com.google.protobuf.ByteString.EMPTY;
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Handshake(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
                communicationEncodingPresentCase_ = 1;
                communicationEncodingPresent_ = s;
                break;
              }
              case 18: {
  
                seeds_ = input.readBytes();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Handshake_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Handshake_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.canal.protocol.AdminPacket.Handshake.class, com.alibaba.otter.canal.protocol.AdminPacket.Handshake.Builder.class);
      }
  
      private int communicationEncodingPresentCase_ = 0;
      private java.lang.Object communicationEncodingPresent_;
      public enum CommunicationEncodingPresentCase
          implements com.google.protobuf.Internal.EnumLite {
        COMMUNICATION_ENCODING(1),
        COMMUNICATIONENCODINGPRESENT_NOT_SET(0);
        private final int value;
        private CommunicationEncodingPresentCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static CommunicationEncodingPresentCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static CommunicationEncodingPresentCase forNumber(int value) {
          switch (value) {
            case 1: return COMMUNICATION_ENCODING;
            case 0: return COMMUNICATIONENCODINGPRESENT_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public CommunicationEncodingPresentCase
      getCommunicationEncodingPresentCase() {
        return CommunicationEncodingPresentCase.forNumber(
            communicationEncodingPresentCase_);
      }
  
      public static final int COMMUNICATION_ENCODING_FIELD_NUMBER = 1;
      /**
       * <code>string communication_encoding = 1;</code>
       */
      public java.lang.String getCommunicationEncoding() {
        java.lang.Object ref = "";
        if (communicationEncodingPresentCase_ == 1) {
          ref = communicationEncodingPresent_;
        }
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (communicationEncodingPresentCase_ == 1) {
            communicationEncodingPresent_ = s;
          }
          return s;
        }
      }
      /**
       * <code>string communication_encoding = 1;</code>
       */
      public com.google.protobuf.ByteString
          getCommunicationEncodingBytes() {
        java.lang.Object ref = "";
        if (communicationEncodingPresentCase_ == 1) {
          ref = communicationEncodingPresent_;
        }
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (communicationEncodingPresentCase_ == 1) {
            communicationEncodingPresent_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int SEEDS_FIELD_NUMBER = 2;
      private com.google.protobuf.ByteString seeds_;
      /**
       * <code>bytes seeds = 2;</code>
       */
      public com.google.protobuf.ByteString getSeeds() {
        return seeds_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (communicationEncodingPresentCase_ == 1) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, communicationEncodingPresent_);
        }
        if (!seeds_.isEmpty()) {
          output.writeBytes(2, seeds_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (communicationEncodingPresentCase_ == 1) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, communicationEncodingPresent_);
        }
        if (!seeds_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, seeds_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.alibaba.otter.canal.protocol.AdminPacket.Handshake)) {
          return super.equals(obj);
        }
        com.alibaba.otter.canal.protocol.AdminPacket.Handshake other = (com.alibaba.otter.canal.protocol.AdminPacket.Handshake) obj;
  
        boolean result = true;
        result = result && getSeeds()
            .equals(other.getSeeds());
        result = result && getCommunicationEncodingPresentCase().equals(
            other.getCommunicationEncodingPresentCase());
        if (!result) return false;
        switch (communicationEncodingPresentCase_) {
          case 1:
            result = result && getCommunicationEncoding()
                .equals(other.getCommunicationEncoding());
            break;
          case 0:
          default:
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + SEEDS_FIELD_NUMBER;
        hash = (53 * hash) + getSeeds().hashCode();
        switch (communicationEncodingPresentCase_) {
          case 1:
            hash = (37 * hash) + COMMUNICATION_ENCODING_FIELD_NUMBER;
            hash = (53 * hash) + getCommunicationEncoding().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.alibaba.otter.canal.protocol.AdminPacket.Handshake prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.canal.protocol.Handshake}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.canal.protocol.Handshake)
          com.alibaba.otter.canal.protocol.AdminPacket.HandshakeOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Handshake_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Handshake_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.canal.protocol.AdminPacket.Handshake.class, com.alibaba.otter.canal.protocol.AdminPacket.Handshake.Builder.class);
        }
  
        // Construct using com.alibaba.otter.canal.protocol.AdminPacket.Handshake.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          seeds_ = com.google.protobuf.ByteString.EMPTY;
  
          communicationEncodingPresentCase_ = 0;
          communicationEncodingPresent_ = null;
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_Handshake_descriptor;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.Handshake getDefaultInstanceForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.Handshake.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.Handshake build() {
          com.alibaba.otter.canal.protocol.AdminPacket.Handshake result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.Handshake buildPartial() {
          com.alibaba.otter.canal.protocol.AdminPacket.Handshake result = new com.alibaba.otter.canal.protocol.AdminPacket.Handshake(this);
          if (communicationEncodingPresentCase_ == 1) {
            result.communicationEncodingPresent_ = communicationEncodingPresent_;
          }
          result.seeds_ = seeds_;
          result.communicationEncodingPresentCase_ = communicationEncodingPresentCase_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.canal.protocol.AdminPacket.Handshake) {
            return mergeFrom((com.alibaba.otter.canal.protocol.AdminPacket.Handshake)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.canal.protocol.AdminPacket.Handshake other) {
          if (other == com.alibaba.otter.canal.protocol.AdminPacket.Handshake.getDefaultInstance()) return this;
          if (other.getSeeds() != com.google.protobuf.ByteString.EMPTY) {
            setSeeds(other.getSeeds());
          }
          switch (other.getCommunicationEncodingPresentCase()) {
            case COMMUNICATION_ENCODING: {
              communicationEncodingPresentCase_ = 1;
              communicationEncodingPresent_ = other.communicationEncodingPresent_;
              onChanged();
              break;
            }
            case COMMUNICATIONENCODINGPRESENT_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.canal.protocol.AdminPacket.Handshake parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.canal.protocol.AdminPacket.Handshake) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int communicationEncodingPresentCase_ = 0;
        private java.lang.Object communicationEncodingPresent_;
        public CommunicationEncodingPresentCase
            getCommunicationEncodingPresentCase() {
          return CommunicationEncodingPresentCase.forNumber(
              communicationEncodingPresentCase_);
        }
  
        public Builder clearCommunicationEncodingPresent() {
          communicationEncodingPresentCase_ = 0;
          communicationEncodingPresent_ = null;
          onChanged();
          return this;
        }
  
  
        /**
         * <code>string communication_encoding = 1;</code>
         */
        public java.lang.String getCommunicationEncoding() {
          java.lang.Object ref = "";
          if (communicationEncodingPresentCase_ == 1) {
            ref = communicationEncodingPresent_;
          }
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (communicationEncodingPresentCase_ == 1) {
              communicationEncodingPresent_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string communication_encoding = 1;</code>
         */
        public com.google.protobuf.ByteString
            getCommunicationEncodingBytes() {
          java.lang.Object ref = "";
          if (communicationEncodingPresentCase_ == 1) {
            ref = communicationEncodingPresent_;
          }
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            if (communicationEncodingPresentCase_ == 1) {
              communicationEncodingPresent_ = b;
            }
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string communication_encoding = 1;</code>
         */
        public Builder setCommunicationEncoding(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    communicationEncodingPresentCase_ = 1;
          communicationEncodingPresent_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string communication_encoding = 1;</code>
         */
        public Builder clearCommunicationEncoding() {
          if (communicationEncodingPresentCase_ == 1) {
            communicationEncodingPresentCase_ = 0;
            communicationEncodingPresent_ = null;
            onChanged();
          }
          return this;
        }
        /**
         * <code>string communication_encoding = 1;</code>
         */
        public Builder setCommunicationEncodingBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          communicationEncodingPresentCase_ = 1;
          communicationEncodingPresent_ = value;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.ByteString seeds_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>bytes seeds = 2;</code>
         */
        public com.google.protobuf.ByteString getSeeds() {
          return seeds_;
        }
        /**
         * <code>bytes seeds = 2;</code>
         */
        public Builder setSeeds(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          seeds_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bytes seeds = 2;</code>
         */
        public Builder clearSeeds() {
          
          seeds_ = getDefaultInstance().getSeeds();
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.canal.protocol.Handshake)
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.canal.protocol.Handshake)
      private static final com.alibaba.otter.canal.protocol.AdminPacket.Handshake DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alibaba.otter.canal.protocol.AdminPacket.Handshake();
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.Handshake getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<Handshake>
          PARSER = new com.google.protobuf.AbstractParser<Handshake>() {
        @java.lang.Override
        public Handshake parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Handshake(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<Handshake> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<Handshake> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alibaba.otter.canal.protocol.AdminPacket.Handshake getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface ClientAuthOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.canal.protocol.ClientAuth)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>string username = 1;</code>
       */
      java.lang.String getUsername();
      /**
       * <code>string username = 1;</code>
       */
      com.google.protobuf.ByteString
          getUsernameBytes();
  
      /**
       * <pre>
       * hashed password with seeds from Handshake message
       * </pre>
       *
       * <code>bytes password = 2;</code>
       */
      com.google.protobuf.ByteString getPassword();
  
      /**
       * <pre>
       * in seconds
       * </pre>
       *
       * <code>int32 net_read_timeout = 3;</code>
       */
      int getNetReadTimeout();
  
      /**
       * <pre>
       * in seconds
       * </pre>
       *
       * <code>int32 net_write_timeout = 4;</code>
       */
      int getNetWriteTimeout();
  
      public com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth.NetReadTimeoutPresentCase getNetReadTimeoutPresentCase();
  
      public com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth.NetWriteTimeoutPresentCase getNetWriteTimeoutPresentCase();
    }
    /**
     * <pre>
     * client authentication
     * </pre>
     *
     * Protobuf type {@code com.alibaba.otter.canal.protocol.ClientAuth}
     */
    public  static final class ClientAuth extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.canal.protocol.ClientAuth)
        ClientAuthOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ClientAuth.newBuilder() to construct.
      private ClientAuth(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ClientAuth() {
        username_ = "";
        password_ = com.google.protobuf.ByteString.EMPTY;
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private ClientAuth(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
  
                username_ = s;
                break;
              }
              case 18: {
  
                password_ = input.readBytes();
                break;
              }
              case 24: {
                netReadTimeoutPresentCase_ = 3;
                netReadTimeoutPresent_ = input.readInt32();
                break;
              }
              case 32: {
                netWriteTimeoutPresentCase_ = 4;
                netWriteTimeoutPresent_ = input.readInt32();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_ClientAuth_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_ClientAuth_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth.class, com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth.Builder.class);
      }
  
      private int netReadTimeoutPresentCase_ = 0;
      private java.lang.Object netReadTimeoutPresent_;
      public enum NetReadTimeoutPresentCase
          implements com.google.protobuf.Internal.EnumLite {
        NET_READ_TIMEOUT(3),
        NETREADTIMEOUTPRESENT_NOT_SET(0);
        private final int value;
        private NetReadTimeoutPresentCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static NetReadTimeoutPresentCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static NetReadTimeoutPresentCase forNumber(int value) {
          switch (value) {
            case 3: return NET_READ_TIMEOUT;
            case 0: return NETREADTIMEOUTPRESENT_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public NetReadTimeoutPresentCase
      getNetReadTimeoutPresentCase() {
        return NetReadTimeoutPresentCase.forNumber(
            netReadTimeoutPresentCase_);
      }
  
      private int netWriteTimeoutPresentCase_ = 0;
      private java.lang.Object netWriteTimeoutPresent_;
      public enum NetWriteTimeoutPresentCase
          implements com.google.protobuf.Internal.EnumLite {
        NET_WRITE_TIMEOUT(4),
        NETWRITETIMEOUTPRESENT_NOT_SET(0);
        private final int value;
        private NetWriteTimeoutPresentCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static NetWriteTimeoutPresentCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static NetWriteTimeoutPresentCase forNumber(int value) {
          switch (value) {
            case 4: return NET_WRITE_TIMEOUT;
            case 0: return NETWRITETIMEOUTPRESENT_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public NetWriteTimeoutPresentCase
      getNetWriteTimeoutPresentCase() {
        return NetWriteTimeoutPresentCase.forNumber(
            netWriteTimeoutPresentCase_);
      }
  
      public static final int USERNAME_FIELD_NUMBER = 1;
      private volatile java.lang.Object username_;
      /**
       * <code>string username = 1;</code>
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        }
      }
      /**
       * <code>string username = 1;</code>
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int PASSWORD_FIELD_NUMBER = 2;
      private com.google.protobuf.ByteString password_;
      /**
       * <pre>
       * hashed password with seeds from Handshake message
       * </pre>
       *
       * <code>bytes password = 2;</code>
       */
      public com.google.protobuf.ByteString getPassword() {
        return password_;
      }
  
      public static final int NET_READ_TIMEOUT_FIELD_NUMBER = 3;
      /**
       * <pre>
       * in seconds
       * </pre>
       *
       * <code>int32 net_read_timeout = 3;</code>
       */
      public int getNetReadTimeout() {
        if (netReadTimeoutPresentCase_ == 3) {
          return (java.lang.Integer) netReadTimeoutPresent_;
        }
        return 0;
      }
  
      public static final int NET_WRITE_TIMEOUT_FIELD_NUMBER = 4;
      /**
       * <pre>
       * in seconds
       * </pre>
       *
       * <code>int32 net_write_timeout = 4;</code>
       */
      public int getNetWriteTimeout() {
        if (netWriteTimeoutPresentCase_ == 4) {
          return (java.lang.Integer) netWriteTimeoutPresent_;
        }
        return 0;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getUsernameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, username_);
        }
        if (!password_.isEmpty()) {
          output.writeBytes(2, password_);
        }
        if (netReadTimeoutPresentCase_ == 3) {
          output.writeInt32(
              3, (int)((java.lang.Integer) netReadTimeoutPresent_));
        }
        if (netWriteTimeoutPresentCase_ == 4) {
          output.writeInt32(
              4, (int)((java.lang.Integer) netWriteTimeoutPresent_));
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (!getUsernameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, username_);
        }
        if (!password_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, password_);
        }
        if (netReadTimeoutPresentCase_ == 3) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(
                3, (int)((java.lang.Integer) netReadTimeoutPresent_));
        }
        if (netWriteTimeoutPresentCase_ == 4) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(
                4, (int)((java.lang.Integer) netWriteTimeoutPresent_));
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth)) {
          return super.equals(obj);
        }
        com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth other = (com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth) obj;
  
        boolean result = true;
        result = result && getUsername()
            .equals(other.getUsername());
        result = result && getPassword()
            .equals(other.getPassword());
        result = result && getNetReadTimeoutPresentCase().equals(
            other.getNetReadTimeoutPresentCase());
        if (!result) return false;
        switch (netReadTimeoutPresentCase_) {
          case 3:
            result = result && (getNetReadTimeout()
                == other.getNetReadTimeout());
            break;
          case 0:
          default:
        }
        result = result && getNetWriteTimeoutPresentCase().equals(
            other.getNetWriteTimeoutPresentCase());
        if (!result) return false;
        switch (netWriteTimeoutPresentCase_) {
          case 4:
            result = result && (getNetWriteTimeout()
                == other.getNetWriteTimeout());
            break;
          case 0:
          default:
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + USERNAME_FIELD_NUMBER;
        hash = (53 * hash) + getUsername().hashCode();
        hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
        hash = (53 * hash) + getPassword().hashCode();
        switch (netReadTimeoutPresentCase_) {
          case 3:
            hash = (37 * hash) + NET_READ_TIMEOUT_FIELD_NUMBER;
            hash = (53 * hash) + getNetReadTimeout();
            break;
          case 0:
          default:
        }
        switch (netWriteTimeoutPresentCase_) {
          case 4:
            hash = (37 * hash) + NET_WRITE_TIMEOUT_FIELD_NUMBER;
            hash = (53 * hash) + getNetWriteTimeout();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * client authentication
       * </pre>
       *
       * Protobuf type {@code com.alibaba.otter.canal.protocol.ClientAuth}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.canal.protocol.ClientAuth)
          com.alibaba.otter.canal.protocol.AdminPacket.ClientAuthOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_ClientAuth_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_ClientAuth_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth.class, com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth.Builder.class);
        }
  
        // Construct using com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          username_ = "";
  
          password_ = com.google.protobuf.ByteString.EMPTY;
  
          netReadTimeoutPresentCase_ = 0;
          netReadTimeoutPresent_ = null;
          netWriteTimeoutPresentCase_ = 0;
          netWriteTimeoutPresent_ = null;
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_ClientAuth_descriptor;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth getDefaultInstanceForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth build() {
          com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth buildPartial() {
          com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth result = new com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth(this);
          result.username_ = username_;
          result.password_ = password_;
          if (netReadTimeoutPresentCase_ == 3) {
            result.netReadTimeoutPresent_ = netReadTimeoutPresent_;
          }
          if (netWriteTimeoutPresentCase_ == 4) {
            result.netWriteTimeoutPresent_ = netWriteTimeoutPresent_;
          }
          result.netReadTimeoutPresentCase_ = netReadTimeoutPresentCase_;
          result.netWriteTimeoutPresentCase_ = netWriteTimeoutPresentCase_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth) {
            return mergeFrom((com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth other) {
          if (other == com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth.getDefaultInstance()) return this;
          if (!other.getUsername().isEmpty()) {
            username_ = other.username_;
            onChanged();
          }
          if (other.getPassword() != com.google.protobuf.ByteString.EMPTY) {
            setPassword(other.getPassword());
          }
          switch (other.getNetReadTimeoutPresentCase()) {
            case NET_READ_TIMEOUT: {
              setNetReadTimeout(other.getNetReadTimeout());
              break;
            }
            case NETREADTIMEOUTPRESENT_NOT_SET: {
              break;
            }
          }
          switch (other.getNetWriteTimeoutPresentCase()) {
            case NET_WRITE_TIMEOUT: {
              setNetWriteTimeout(other.getNetWriteTimeout());
              break;
            }
            case NETWRITETIMEOUTPRESENT_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int netReadTimeoutPresentCase_ = 0;
        private java.lang.Object netReadTimeoutPresent_;
        public NetReadTimeoutPresentCase
            getNetReadTimeoutPresentCase() {
          return NetReadTimeoutPresentCase.forNumber(
              netReadTimeoutPresentCase_);
        }
  
        public Builder clearNetReadTimeoutPresent() {
          netReadTimeoutPresentCase_ = 0;
          netReadTimeoutPresent_ = null;
          onChanged();
          return this;
        }
  
        private int netWriteTimeoutPresentCase_ = 0;
        private java.lang.Object netWriteTimeoutPresent_;
        public NetWriteTimeoutPresentCase
            getNetWriteTimeoutPresentCase() {
          return NetWriteTimeoutPresentCase.forNumber(
              netWriteTimeoutPresentCase_);
        }
  
        public Builder clearNetWriteTimeoutPresent() {
          netWriteTimeoutPresentCase_ = 0;
          netWriteTimeoutPresent_ = null;
          onChanged();
          return this;
        }
  
  
        private java.lang.Object username_ = "";
        /**
         * <code>string username = 1;</code>
         */
        public java.lang.String getUsername() {
          java.lang.Object ref = username_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            username_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string username = 1;</code>
         */
        public com.google.protobuf.ByteString
            getUsernameBytes() {
          java.lang.Object ref = username_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            username_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string username = 1;</code>
         */
        public Builder setUsername(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          username_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string username = 1;</code>
         */
        public Builder clearUsername() {
          
          username_ = getDefaultInstance().getUsername();
          onChanged();
          return this;
        }
        /**
         * <code>string username = 1;</code>
         */
        public Builder setUsernameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          username_ = value;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.ByteString password_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <pre>
         * hashed password with seeds from Handshake message
         * </pre>
         *
         * <code>bytes password = 2;</code>
         */
        public com.google.protobuf.ByteString getPassword() {
          return password_;
        }
        /**
         * <pre>
         * hashed password with seeds from Handshake message
         * </pre>
         *
         * <code>bytes password = 2;</code>
         */
        public Builder setPassword(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          password_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * hashed password with seeds from Handshake message
         * </pre>
         *
         * <code>bytes password = 2;</code>
         */
        public Builder clearPassword() {
          
          password_ = getDefaultInstance().getPassword();
          onChanged();
          return this;
        }
  
        /**
         * <pre>
         * in seconds
         * </pre>
         *
         * <code>int32 net_read_timeout = 3;</code>
         */
        public int getNetReadTimeout() {
          if (netReadTimeoutPresentCase_ == 3) {
            return (java.lang.Integer) netReadTimeoutPresent_;
          }
          return 0;
        }
        /**
         * <pre>
         * in seconds
         * </pre>
         *
         * <code>int32 net_read_timeout = 3;</code>
         */
        public Builder setNetReadTimeout(int value) {
          netReadTimeoutPresentCase_ = 3;
          netReadTimeoutPresent_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * in seconds
         * </pre>
         *
         * <code>int32 net_read_timeout = 3;</code>
         */
        public Builder clearNetReadTimeout() {
          if (netReadTimeoutPresentCase_ == 3) {
            netReadTimeoutPresentCase_ = 0;
            netReadTimeoutPresent_ = null;
            onChanged();
          }
          return this;
        }
  
        /**
         * <pre>
         * in seconds
         * </pre>
         *
         * <code>int32 net_write_timeout = 4;</code>
         */
        public int getNetWriteTimeout() {
          if (netWriteTimeoutPresentCase_ == 4) {
            return (java.lang.Integer) netWriteTimeoutPresent_;
          }
          return 0;
        }
        /**
         * <pre>
         * in seconds
         * </pre>
         *
         * <code>int32 net_write_timeout = 4;</code>
         */
        public Builder setNetWriteTimeout(int value) {
          netWriteTimeoutPresentCase_ = 4;
          netWriteTimeoutPresent_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * in seconds
         * </pre>
         *
         * <code>int32 net_write_timeout = 4;</code>
         */
        public Builder clearNetWriteTimeout() {
          if (netWriteTimeoutPresentCase_ == 4) {
            netWriteTimeoutPresentCase_ = 0;
            netWriteTimeoutPresent_ = null;
            onChanged();
          }
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.canal.protocol.ClientAuth)
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.canal.protocol.ClientAuth)
      private static final com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth();
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<ClientAuth>
          PARSER = new com.google.protobuf.AbstractParser<ClientAuth>() {
        @java.lang.Override
        public ClientAuth parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ClientAuth(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<ClientAuth> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<ClientAuth> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alibaba.otter.canal.protocol.AdminPacket.ClientAuth getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface ServerAdminOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.canal.protocol.ServerAdmin)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <pre>
       * check/start/stop/restart/list
       * </pre>
       *
       * <code>string action = 1;</code>
       */
      java.lang.String getAction();
      /**
       * <pre>
       * check/start/stop/restart/list
       * </pre>
       *
       * <code>string action = 1;</code>
       */
      com.google.protobuf.ByteString
          getActionBytes();
    }
    /**
     * Protobuf type {@code com.alibaba.otter.canal.protocol.ServerAdmin}
     */
    public  static final class ServerAdmin extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.canal.protocol.ServerAdmin)
        ServerAdminOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ServerAdmin.newBuilder() to construct.
      private ServerAdmin(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ServerAdmin() {
        action_ = "";
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private ServerAdmin(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
  
                action_ = s;
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_ServerAdmin_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_ServerAdmin_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin.class, com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin.Builder.class);
      }
  
      public static final int ACTION_FIELD_NUMBER = 1;
      private volatile java.lang.Object action_;
      /**
       * <pre>
       * check/start/stop/restart/list
       * </pre>
       *
       * <code>string action = 1;</code>
       */
      public java.lang.String getAction() {
        java.lang.Object ref = action_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          action_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * check/start/stop/restart/list
       * </pre>
       *
       * <code>string action = 1;</code>
       */
      public com.google.protobuf.ByteString
          getActionBytes() {
        java.lang.Object ref = action_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          action_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getActionBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, action_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (!getActionBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, action_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin)) {
          return super.equals(obj);
        }
        com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin other = (com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin) obj;
  
        boolean result = true;
        result = result && getAction()
            .equals(other.getAction());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + ACTION_FIELD_NUMBER;
        hash = (53 * hash) + getAction().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.canal.protocol.ServerAdmin}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.canal.protocol.ServerAdmin)
          com.alibaba.otter.canal.protocol.AdminPacket.ServerAdminOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_ServerAdmin_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_ServerAdmin_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin.class, com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin.Builder.class);
        }
  
        // Construct using com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          action_ = "";
  
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_ServerAdmin_descriptor;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin getDefaultInstanceForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin build() {
          com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin buildPartial() {
          com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin result = new com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin(this);
          result.action_ = action_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin) {
            return mergeFrom((com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin other) {
          if (other == com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin.getDefaultInstance()) return this;
          if (!other.getAction().isEmpty()) {
            action_ = other.action_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private java.lang.Object action_ = "";
        /**
         * <pre>
         * check/start/stop/restart/list
         * </pre>
         *
         * <code>string action = 1;</code>
         */
        public java.lang.String getAction() {
          java.lang.Object ref = action_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            action_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * check/start/stop/restart/list
         * </pre>
         *
         * <code>string action = 1;</code>
         */
        public com.google.protobuf.ByteString
            getActionBytes() {
          java.lang.Object ref = action_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            action_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * check/start/stop/restart/list
         * </pre>
         *
         * <code>string action = 1;</code>
         */
        public Builder setAction(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          action_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * check/start/stop/restart/list
         * </pre>
         *
         * <code>string action = 1;</code>
         */
        public Builder clearAction() {
          
          action_ = getDefaultInstance().getAction();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * check/start/stop/restart/list
         * </pre>
         *
         * <code>string action = 1;</code>
         */
        public Builder setActionBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          action_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.canal.protocol.ServerAdmin)
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.canal.protocol.ServerAdmin)
      private static final com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin();
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<ServerAdmin>
          PARSER = new com.google.protobuf.AbstractParser<ServerAdmin>() {
        @java.lang.Override
        public ServerAdmin parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ServerAdmin(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<ServerAdmin> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<ServerAdmin> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alibaba.otter.canal.protocol.AdminPacket.ServerAdmin getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface InstanceAdminOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.canal.protocol.InstanceAdmin)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>string destination = 1;</code>
       */
      java.lang.String getDestination();
      /**
       * <code>string destination = 1;</code>
       */
      com.google.protobuf.ByteString
          getDestinationBytes();
  
      /**
       * <pre>
       * check/start/stop/reload
       * </pre>
       *
       * <code>string action = 2;</code>
       */
      java.lang.String getAction();
      /**
       * <pre>
       * check/start/stop/reload
       * </pre>
       *
       * <code>string action = 2;</code>
       */
      com.google.protobuf.ByteString
          getActionBytes();
    }
    /**
     * Protobuf type {@code com.alibaba.otter.canal.protocol.InstanceAdmin}
     */
    public  static final class InstanceAdmin extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.canal.protocol.InstanceAdmin)
        InstanceAdminOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use InstanceAdmin.newBuilder() to construct.
      private InstanceAdmin(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private InstanceAdmin() {
        destination_ = "";
        action_ = "";
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private InstanceAdmin(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
  
                destination_ = s;
                break;
              }
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
  
                action_ = s;
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_InstanceAdmin_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_InstanceAdmin_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin.class, com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin.Builder.class);
      }
  
      public static final int DESTINATION_FIELD_NUMBER = 1;
      private volatile java.lang.Object destination_;
      /**
       * <code>string destination = 1;</code>
       */
      public java.lang.String getDestination() {
        java.lang.Object ref = destination_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          destination_ = s;
          return s;
        }
      }
      /**
       * <code>string destination = 1;</code>
       */
      public com.google.protobuf.ByteString
          getDestinationBytes() {
        java.lang.Object ref = destination_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          destination_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int ACTION_FIELD_NUMBER = 2;
      private volatile java.lang.Object action_;
      /**
       * <pre>
       * check/start/stop/reload
       * </pre>
       *
       * <code>string action = 2;</code>
       */
      public java.lang.String getAction() {
        java.lang.Object ref = action_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          action_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * check/start/stop/reload
       * </pre>
       *
       * <code>string action = 2;</code>
       */
      public com.google.protobuf.ByteString
          getActionBytes() {
        java.lang.Object ref = action_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          action_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getDestinationBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, destination_);
        }
        if (!getActionBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, action_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (!getDestinationBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, destination_);
        }
        if (!getActionBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, action_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin)) {
          return super.equals(obj);
        }
        com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin other = (com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin) obj;
  
        boolean result = true;
        result = result && getDestination()
            .equals(other.getDestination());
        result = result && getAction()
            .equals(other.getAction());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + DESTINATION_FIELD_NUMBER;
        hash = (53 * hash) + getDestination().hashCode();
        hash = (37 * hash) + ACTION_FIELD_NUMBER;
        hash = (53 * hash) + getAction().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.canal.protocol.InstanceAdmin}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.canal.protocol.InstanceAdmin)
          com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdminOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_InstanceAdmin_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_InstanceAdmin_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin.class, com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin.Builder.class);
        }
  
        // Construct using com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          destination_ = "";
  
          action_ = "";
  
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_InstanceAdmin_descriptor;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin getDefaultInstanceForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin build() {
          com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin buildPartial() {
          com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin result = new com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin(this);
          result.destination_ = destination_;
          result.action_ = action_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin) {
            return mergeFrom((com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin other) {
          if (other == com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin.getDefaultInstance()) return this;
          if (!other.getDestination().isEmpty()) {
            destination_ = other.destination_;
            onChanged();
          }
          if (!other.getAction().isEmpty()) {
            action_ = other.action_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private java.lang.Object destination_ = "";
        /**
         * <code>string destination = 1;</code>
         */
        public java.lang.String getDestination() {
          java.lang.Object ref = destination_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            destination_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string destination = 1;</code>
         */
        public com.google.protobuf.ByteString
            getDestinationBytes() {
          java.lang.Object ref = destination_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            destination_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string destination = 1;</code>
         */
        public Builder setDestination(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          destination_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string destination = 1;</code>
         */
        public Builder clearDestination() {
          
          destination_ = getDefaultInstance().getDestination();
          onChanged();
          return this;
        }
        /**
         * <code>string destination = 1;</code>
         */
        public Builder setDestinationBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          destination_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object action_ = "";
        /**
         * <pre>
         * check/start/stop/reload
         * </pre>
         *
         * <code>string action = 2;</code>
         */
        public java.lang.String getAction() {
          java.lang.Object ref = action_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            action_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * check/start/stop/reload
         * </pre>
         *
         * <code>string action = 2;</code>
         */
        public com.google.protobuf.ByteString
            getActionBytes() {
          java.lang.Object ref = action_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            action_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * check/start/stop/reload
         * </pre>
         *
         * <code>string action = 2;</code>
         */
        public Builder setAction(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          action_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * check/start/stop/reload
         * </pre>
         *
         * <code>string action = 2;</code>
         */
        public Builder clearAction() {
          
          action_ = getDefaultInstance().getAction();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * check/start/stop/reload
         * </pre>
         *
         * <code>string action = 2;</code>
         */
        public Builder setActionBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          action_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.canal.protocol.InstanceAdmin)
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.canal.protocol.InstanceAdmin)
      private static final com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin();
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<InstanceAdmin>
          PARSER = new com.google.protobuf.AbstractParser<InstanceAdmin>() {
        @java.lang.Override
        public InstanceAdmin parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new InstanceAdmin(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<InstanceAdmin> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<InstanceAdmin> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alibaba.otter.canal.protocol.AdminPacket.InstanceAdmin getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface LogAdminOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.canal.protocol.LogAdmin)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <pre>
       * canal/instance
       * </pre>
       *
       * <code>string type = 1;</code>
       */
      java.lang.String getType();
      /**
       * <pre>
       * canal/instance
       * </pre>
       *
       * <code>string type = 1;</code>
       */
      com.google.protobuf.ByteString
          getTypeBytes();
  
      /**
       * <code>string action = 2;</code>
       */
      java.lang.String getAction();
      /**
       * <code>string action = 2;</code>
       */
      com.google.protobuf.ByteString
          getActionBytes();
  
      /**
       * <code>string destination = 3;</code>
       */
      java.lang.String getDestination();
      /**
       * <code>string destination = 3;</code>
       */
      com.google.protobuf.ByteString
          getDestinationBytes();
  
      /**
       * <code>string file = 4;</code>
       */
      java.lang.String getFile();
      /**
       * <code>string file = 4;</code>
       */
      com.google.protobuf.ByteString
          getFileBytes();
  
      /**
       * <pre>
       * 默认tail 100行，最大不超过4MB
       * </pre>
       *
       * <code>int32 count = 5;</code>
       */
      int getCount();
  
      public com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin.DestinationPresentCase getDestinationPresentCase();
  
      public com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin.FilePresentCase getFilePresentCase();
  
      public com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin.CountPresentCase getCountPresentCase();
    }
    /**
     * Protobuf type {@code com.alibaba.otter.canal.protocol.LogAdmin}
     */
    public  static final class LogAdmin extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.canal.protocol.LogAdmin)
        LogAdminOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use LogAdmin.newBuilder() to construct.
      private LogAdmin(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private LogAdmin() {
        type_ = "";
        action_ = "";
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private LogAdmin(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
  
                type_ = s;
                break;
              }
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
  
                action_ = s;
                break;
              }
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();
                destinationPresentCase_ = 3;
                destinationPresent_ = s;
                break;
              }
              case 34: {
                java.lang.String s = input.readStringRequireUtf8();
                filePresentCase_ = 4;
                filePresent_ = s;
                break;
              }
              case 40: {
                countPresentCase_ = 5;
                countPresent_ = input.readInt32();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_LogAdmin_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_LogAdmin_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin.class, com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin.Builder.class);
      }
  
      private int destinationPresentCase_ = 0;
      private java.lang.Object destinationPresent_;
      public enum DestinationPresentCase
          implements com.google.protobuf.Internal.EnumLite {
        DESTINATION(3),
        DESTINATIONPRESENT_NOT_SET(0);
        private final int value;
        private DestinationPresentCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static DestinationPresentCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static DestinationPresentCase forNumber(int value) {
          switch (value) {
            case 3: return DESTINATION;
            case 0: return DESTINATIONPRESENT_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public DestinationPresentCase
      getDestinationPresentCase() {
        return DestinationPresentCase.forNumber(
            destinationPresentCase_);
      }
  
      private int filePresentCase_ = 0;
      private java.lang.Object filePresent_;
      public enum FilePresentCase
          implements com.google.protobuf.Internal.EnumLite {
        FILE(4),
        FILEPRESENT_NOT_SET(0);
        private final int value;
        private FilePresentCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static FilePresentCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static FilePresentCase forNumber(int value) {
          switch (value) {
            case 4: return FILE;
            case 0: return FILEPRESENT_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public FilePresentCase
      getFilePresentCase() {
        return FilePresentCase.forNumber(
            filePresentCase_);
      }
  
      private int countPresentCase_ = 0;
      private java.lang.Object countPresent_;
      public enum CountPresentCase
          implements com.google.protobuf.Internal.EnumLite {
        COUNT(5),
        COUNTPRESENT_NOT_SET(0);
        private final int value;
        private CountPresentCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static CountPresentCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static CountPresentCase forNumber(int value) {
          switch (value) {
            case 5: return COUNT;
            case 0: return COUNTPRESENT_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public CountPresentCase
      getCountPresentCase() {
        return CountPresentCase.forNumber(
            countPresentCase_);
      }
  
      public static final int TYPE_FIELD_NUMBER = 1;
      private volatile java.lang.Object type_;
      /**
       * <pre>
       * canal/instance
       * </pre>
       *
       * <code>string type = 1;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          type_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * canal/instance
       * </pre>
       *
       * <code>string type = 1;</code>
       */
      public com.google.protobuf.ByteString
          getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int ACTION_FIELD_NUMBER = 2;
      private volatile java.lang.Object action_;
      /**
       * <code>string action = 2;</code>
       */
      public java.lang.String getAction() {
        java.lang.Object ref = action_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          action_ = s;
          return s;
        }
      }
      /**
       * <code>string action = 2;</code>
       */
      public com.google.protobuf.ByteString
          getActionBytes() {
        java.lang.Object ref = action_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          action_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int DESTINATION_FIELD_NUMBER = 3;
      /**
       * <code>string destination = 3;</code>
       */
      public java.lang.String getDestination() {
        java.lang.Object ref = "";
        if (destinationPresentCase_ == 3) {
          ref = destinationPresent_;
        }
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (destinationPresentCase_ == 3) {
            destinationPresent_ = s;
          }
          return s;
        }
      }
      /**
       * <code>string destination = 3;</code>
       */
      public com.google.protobuf.ByteString
          getDestinationBytes() {
        java.lang.Object ref = "";
        if (destinationPresentCase_ == 3) {
          ref = destinationPresent_;
        }
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (destinationPresentCase_ == 3) {
            destinationPresent_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int FILE_FIELD_NUMBER = 4;
      /**
       * <code>string file = 4;</code>
       */
      public java.lang.String getFile() {
        java.lang.Object ref = "";
        if (filePresentCase_ == 4) {
          ref = filePresent_;
        }
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (filePresentCase_ == 4) {
            filePresent_ = s;
          }
          return s;
        }
      }
      /**
       * <code>string file = 4;</code>
       */
      public com.google.protobuf.ByteString
          getFileBytes() {
        java.lang.Object ref = "";
        if (filePresentCase_ == 4) {
          ref = filePresent_;
        }
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (filePresentCase_ == 4) {
            filePresent_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int COUNT_FIELD_NUMBER = 5;
      /**
       * <pre>
       * 默认tail 100行，最大不超过4MB
       * </pre>
       *
       * <code>int32 count = 5;</code>
       */
      public int getCount() {
        if (countPresentCase_ == 5) {
          return (java.lang.Integer) countPresent_;
        }
        return 0;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getTypeBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_);
        }
        if (!getActionBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, action_);
        }
        if (destinationPresentCase_ == 3) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, destinationPresent_);
        }
        if (filePresentCase_ == 4) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, filePresent_);
        }
        if (countPresentCase_ == 5) {
          output.writeInt32(
              5, (int)((java.lang.Integer) countPresent_));
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (!getTypeBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_);
        }
        if (!getActionBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, action_);
        }
        if (destinationPresentCase_ == 3) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, destinationPresent_);
        }
        if (filePresentCase_ == 4) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, filePresent_);
        }
        if (countPresentCase_ == 5) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(
                5, (int)((java.lang.Integer) countPresent_));
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin)) {
          return super.equals(obj);
        }
        com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin other = (com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin) obj;
  
        boolean result = true;
        result = result && getType()
            .equals(other.getType());
        result = result && getAction()
            .equals(other.getAction());
        result = result && getDestinationPresentCase().equals(
            other.getDestinationPresentCase());
        if (!result) return false;
        switch (destinationPresentCase_) {
          case 3:
            result = result && getDestination()
                .equals(other.getDestination());
            break;
          case 0:
          default:
        }
        result = result && getFilePresentCase().equals(
            other.getFilePresentCase());
        if (!result) return false;
        switch (filePresentCase_) {
          case 4:
            result = result && getFile()
                .equals(other.getFile());
            break;
          case 0:
          default:
        }
        result = result && getCountPresentCase().equals(
            other.getCountPresentCase());
        if (!result) return false;
        switch (countPresentCase_) {
          case 5:
            result = result && (getCount()
                == other.getCount());
            break;
          case 0:
          default:
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
        hash = (37 * hash) + ACTION_FIELD_NUMBER;
        hash = (53 * hash) + getAction().hashCode();
        switch (destinationPresentCase_) {
          case 3:
            hash = (37 * hash) + DESTINATION_FIELD_NUMBER;
            hash = (53 * hash) + getDestination().hashCode();
            break;
          case 0:
          default:
        }
        switch (filePresentCase_) {
          case 4:
            hash = (37 * hash) + FILE_FIELD_NUMBER;
            hash = (53 * hash) + getFile().hashCode();
            break;
          case 0:
          default:
        }
        switch (countPresentCase_) {
          case 5:
            hash = (37 * hash) + COUNT_FIELD_NUMBER;
            hash = (53 * hash) + getCount();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.canal.protocol.LogAdmin}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.canal.protocol.LogAdmin)
          com.alibaba.otter.canal.protocol.AdminPacket.LogAdminOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_LogAdmin_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_LogAdmin_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin.class, com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin.Builder.class);
        }
  
        // Construct using com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          type_ = "";
  
          action_ = "";
  
          destinationPresentCase_ = 0;
          destinationPresent_ = null;
          filePresentCase_ = 0;
          filePresent_ = null;
          countPresentCase_ = 0;
          countPresent_ = null;
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.internal_static_com_alibaba_otter_canal_protocol_LogAdmin_descriptor;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin getDefaultInstanceForType() {
          return com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin build() {
          com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin buildPartial() {
          com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin result = new com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin(this);
          result.type_ = type_;
          result.action_ = action_;
          if (destinationPresentCase_ == 3) {
            result.destinationPresent_ = destinationPresent_;
          }
          if (filePresentCase_ == 4) {
            result.filePresent_ = filePresent_;
          }
          if (countPresentCase_ == 5) {
            result.countPresent_ = countPresent_;
          }
          result.destinationPresentCase_ = destinationPresentCase_;
          result.filePresentCase_ = filePresentCase_;
          result.countPresentCase_ = countPresentCase_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin) {
            return mergeFrom((com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin other) {
          if (other == com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin.getDefaultInstance()) return this;
          if (!other.getType().isEmpty()) {
            type_ = other.type_;
            onChanged();
          }
          if (!other.getAction().isEmpty()) {
            action_ = other.action_;
            onChanged();
          }
          switch (other.getDestinationPresentCase()) {
            case DESTINATION: {
              destinationPresentCase_ = 3;
              destinationPresent_ = other.destinationPresent_;
              onChanged();
              break;
            }
            case DESTINATIONPRESENT_NOT_SET: {
              break;
            }
          }
          switch (other.getFilePresentCase()) {
            case FILE: {
              filePresentCase_ = 4;
              filePresent_ = other.filePresent_;
              onChanged();
              break;
            }
            case FILEPRESENT_NOT_SET: {
              break;
            }
          }
          switch (other.getCountPresentCase()) {
            case COUNT: {
              setCount(other.getCount());
              break;
            }
            case COUNTPRESENT_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int destinationPresentCase_ = 0;
        private java.lang.Object destinationPresent_;
        public DestinationPresentCase
            getDestinationPresentCase() {
          return DestinationPresentCase.forNumber(
              destinationPresentCase_);
        }
  
        public Builder clearDestinationPresent() {
          destinationPresentCase_ = 0;
          destinationPresent_ = null;
          onChanged();
          return this;
        }
  
        private int filePresentCase_ = 0;
        private java.lang.Object filePresent_;
        public FilePresentCase
            getFilePresentCase() {
          return FilePresentCase.forNumber(
              filePresentCase_);
        }
  
        public Builder clearFilePresent() {
          filePresentCase_ = 0;
          filePresent_ = null;
          onChanged();
          return this;
        }
  
        private int countPresentCase_ = 0;
        private java.lang.Object countPresent_;
        public CountPresentCase
            getCountPresentCase() {
          return CountPresentCase.forNumber(
              countPresentCase_);
        }
  
        public Builder clearCountPresent() {
          countPresentCase_ = 0;
          countPresent_ = null;
          onChanged();
          return this;
        }
  
  
        private java.lang.Object type_ = "";
        /**
         * <pre>
         * canal/instance
         * </pre>
         *
         * <code>string type = 1;</code>
         */
        public java.lang.String getType() {
          java.lang.Object ref = type_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            type_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * canal/instance
         * </pre>
         *
         * <code>string type = 1;</code>
         */
        public com.google.protobuf.ByteString
            getTypeBytes() {
          java.lang.Object ref = type_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            type_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * canal/instance
         * </pre>
         *
         * <code>string type = 1;</code>
         */
        public Builder setType(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          type_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * canal/instance
         * </pre>
         *
         * <code>string type = 1;</code>
         */
        public Builder clearType() {
          
          type_ = getDefaultInstance().getType();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * canal/instance
         * </pre>
         *
         * <code>string type = 1;</code>
         */
        public Builder setTypeBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          type_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object action_ = "";
        /**
         * <code>string action = 2;</code>
         */
        public java.lang.String getAction() {
          java.lang.Object ref = action_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            action_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string action = 2;</code>
         */
        public com.google.protobuf.ByteString
            getActionBytes() {
          java.lang.Object ref = action_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            action_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string action = 2;</code>
         */
        public Builder setAction(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          action_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string action = 2;</code>
         */
        public Builder clearAction() {
          
          action_ = getDefaultInstance().getAction();
          onChanged();
          return this;
        }
        /**
         * <code>string action = 2;</code>
         */
        public Builder setActionBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          action_ = value;
          onChanged();
          return this;
        }
  
        /**
         * <code>string destination = 3;</code>
         */
        public java.lang.String getDestination() {
          java.lang.Object ref = "";
          if (destinationPresentCase_ == 3) {
            ref = destinationPresent_;
          }
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (destinationPresentCase_ == 3) {
              destinationPresent_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string destination = 3;</code>
         */
        public com.google.protobuf.ByteString
            getDestinationBytes() {
          java.lang.Object ref = "";
          if (destinationPresentCase_ == 3) {
            ref = destinationPresent_;
          }
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            if (destinationPresentCase_ == 3) {
              destinationPresent_ = b;
            }
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string destination = 3;</code>
         */
        public Builder setDestination(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    destinationPresentCase_ = 3;
          destinationPresent_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string destination = 3;</code>
         */
        public Builder clearDestination() {
          if (destinationPresentCase_ == 3) {
            destinationPresentCase_ = 0;
            destinationPresent_ = null;
            onChanged();
          }
          return this;
        }
        /**
         * <code>string destination = 3;</code>
         */
        public Builder setDestinationBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          destinationPresentCase_ = 3;
          destinationPresent_ = value;
          onChanged();
          return this;
        }
  
        /**
         * <code>string file = 4;</code>
         */
        public java.lang.String getFile() {
          java.lang.Object ref = "";
          if (filePresentCase_ == 4) {
            ref = filePresent_;
          }
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (filePresentCase_ == 4) {
              filePresent_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string file = 4;</code>
         */
        public com.google.protobuf.ByteString
            getFileBytes() {
          java.lang.Object ref = "";
          if (filePresentCase_ == 4) {
            ref = filePresent_;
          }
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            if (filePresentCase_ == 4) {
              filePresent_ = b;
            }
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string file = 4;</code>
         */
        public Builder setFile(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    filePresentCase_ = 4;
          filePresent_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string file = 4;</code>
         */
        public Builder clearFile() {
          if (filePresentCase_ == 4) {
            filePresentCase_ = 0;
            filePresent_ = null;
            onChanged();
          }
          return this;
        }
        /**
         * <code>string file = 4;</code>
         */
        public Builder setFileBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          filePresentCase_ = 4;
          filePresent_ = value;
          onChanged();
          return this;
        }
  
        /**
         * <pre>
         * 默认tail 100行，最大不超过4MB
         * </pre>
         *
         * <code>int32 count = 5;</code>
         */
        public int getCount() {
          if (countPresentCase_ == 5) {
            return (java.lang.Integer) countPresent_;
          }
          return 0;
        }
        /**
         * <pre>
         * 默认tail 100行，最大不超过4MB
         * </pre>
         *
         * <code>int32 count = 5;</code>
         */
        public Builder setCount(int value) {
          countPresentCase_ = 5;
          countPresent_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 默认tail 100行，最大不超过4MB
         * </pre>
         *
         * <code>int32 count = 5;</code>
         */
        public Builder clearCount() {
          if (countPresentCase_ == 5) {
            countPresentCase_ = 0;
            countPresent_ = null;
            onChanged();
          }
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.canal.protocol.LogAdmin)
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.canal.protocol.LogAdmin)
      private static final com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin();
      }
  
      public static com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<LogAdmin>
          PARSER = new com.google.protobuf.AbstractParser<LogAdmin>() {
        @java.lang.Override
        public LogAdmin parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new LogAdmin(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<LogAdmin> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<LogAdmin> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alibaba.otter.canal.protocol.AdminPacket.LogAdmin getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_canal_protocol_Packet_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_com_alibaba_otter_canal_protocol_Packet_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_canal_protocol_Ack_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_com_alibaba_otter_canal_protocol_Ack_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_canal_protocol_Handshake_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_com_alibaba_otter_canal_protocol_Handshake_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_canal_protocol_ClientAuth_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_com_alibaba_otter_canal_protocol_ClientAuth_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_canal_protocol_ServerAdmin_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_com_alibaba_otter_canal_protocol_ServerAdmin_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_canal_protocol_InstanceAdmin_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_com_alibaba_otter_canal_protocol_InstanceAdmin_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_canal_protocol_LogAdmin_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_com_alibaba_otter_canal_protocol_LogAdmin_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\023AdminProtocol.proto\022 com.alibaba.otter" +
        ".canal.protocol\"\250\001\n\006Packet\022\026\n\014magic_numb" +
        "er\030\001 \001(\005H\000\022\021\n\007version\030\002 \001(\005H\001\022:\n\004type\030\003 " +
        "\001(\0162,.com.alibaba.otter.canal.protocol.P" +
        "acketType\022\014\n\004body\030\004 \001(\014B\026\n\024magic_number_" +
        "presentB\021\n\017version_present\"<\n\003Ack\022\016\n\004cod" +
        "e\030\001 \001(\005H\000\022\017\n\007message\030\002 \001(\tB\024\n\022error_code" +
        "_present\"^\n\tHandshake\022 \n\026communication_e" +
        "ncoding\030\001 \001(\tH\000\022\r\n\005seeds\030\002 \001(\014B \n\036commun" +
        "ication_encoding_present\"\242\001\n\nClientAuth\022" +
        "\020\n\010username\030\001 \001(\t\022\020\n\010password\030\002 \001(\014\022\032\n\020n" +
        "et_read_timeout\030\003 \001(\005H\000\022\033\n\021net_write_tim" +
        "eout\030\004 \001(\005H\001B\032\n\030net_read_timeout_present" +
        "B\033\n\031net_write_timeout_present\"\035\n\013ServerA" +
        "dmin\022\016\n\006action\030\001 \001(\t\"4\n\rInstanceAdmin\022\023\n" +
        "\013destination\030\001 \001(\t\022\016\n\006action\030\002 \001(\t\"\230\001\n\010L" +
        "ogAdmin\022\014\n\004type\030\001 \001(\t\022\016\n\006action\030\002 \001(\t\022\025\n" +
        "\013destination\030\003 \001(\tH\000\022\016\n\004file\030\004 \001(\tH\001\022\017\n\005" +
        "count\030\005 \001(\005H\002B\025\n\023destination_presentB\016\n\014" +
        "file_presentB\017\n\rcount_present*\202\001\n\nPacket" +
        "Type\022\037\n\033PACKAGETYPECOMPATIBLEPROTO2\020\000\022\r\n" +
        "\tHANDSHAKE\020\001\022\030\n\024CLIENTAUTHENTICATION\020\002\022\007" +
        "\n\003ACK\020\003\022\n\n\006SERVER\020\004\022\014\n\010INSTANCE\020\005\022\007\n\003LOG" +
        "\020\006B1\n com.alibaba.otter.canal.protocolB\013" +
        "AdminPacketH\001b\006proto3"
      };
      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;
              return null;
            }
          };
      com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.google.protobuf.Descriptors.FileDescriptor[] {
          }, assigner);
      internal_static_com_alibaba_otter_canal_protocol_Packet_descriptor =
        getDescriptor().getMessageTypes().get(0);
      internal_static_com_alibaba_otter_canal_protocol_Packet_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_com_alibaba_otter_canal_protocol_Packet_descriptor,
          new java.lang.String[] { "MagicNumber", "Version", "Type", "Body", "MagicNumberPresent", "VersionPresent", });
      internal_static_com_alibaba_otter_canal_protocol_Ack_descriptor =
        getDescriptor().getMessageTypes().get(1);
      internal_static_com_alibaba_otter_canal_protocol_Ack_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_com_alibaba_otter_canal_protocol_Ack_descriptor,
          new java.lang.String[] { "Code", "Message", "ErrorCodePresent", });
      internal_static_com_alibaba_otter_canal_protocol_Handshake_descriptor =
        getDescriptor().getMessageTypes().get(2);
      internal_static_com_alibaba_otter_canal_protocol_Handshake_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_com_alibaba_otter_canal_protocol_Handshake_descriptor,
          new java.lang.String[] { "CommunicationEncoding", "Seeds", "CommunicationEncodingPresent", });
      internal_static_com_alibaba_otter_canal_protocol_ClientAuth_descriptor =
        getDescriptor().getMessageTypes().get(3);
      internal_static_com_alibaba_otter_canal_protocol_ClientAuth_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_com_alibaba_otter_canal_protocol_ClientAuth_descriptor,
          new java.lang.String[] { "Username", "Password", "NetReadTimeout", "NetWriteTimeout", "NetReadTimeoutPresent", "NetWriteTimeoutPresent", });
      internal_static_com_alibaba_otter_canal_protocol_ServerAdmin_descriptor =
        getDescriptor().getMessageTypes().get(4);
      internal_static_com_alibaba_otter_canal_protocol_ServerAdmin_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_com_alibaba_otter_canal_protocol_ServerAdmin_descriptor,
          new java.lang.String[] { "Action", });
      internal_static_com_alibaba_otter_canal_protocol_InstanceAdmin_descriptor =
        getDescriptor().getMessageTypes().get(5);
      internal_static_com_alibaba_otter_canal_protocol_InstanceAdmin_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_com_alibaba_otter_canal_protocol_InstanceAdmin_descriptor,
          new java.lang.String[] { "Destination", "Action", });
      internal_static_com_alibaba_otter_canal_protocol_LogAdmin_descriptor =
        getDescriptor().getMessageTypes().get(6);
      internal_static_com_alibaba_otter_canal_protocol_LogAdmin_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_com_alibaba_otter_canal_protocol_LogAdmin_descriptor,
          new java.lang.String[] { "Type", "Action", "Destination", "File", "Count", "DestinationPresent", "FilePresent", "CountPresent", });
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  