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

package akka.remote;

public final class WireFormats {
  private WireFormats() {}
  public static void registerAllExtensions(
      akka.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code CommandType}
   *
   * <pre>
   **
   * Defines the type of the AkkaControlMessage command type
   * </pre>
   */
  public enum CommandType
      implements akka.protobuf.ProtocolMessageEnum {
    /**
     * <code>ASSOCIATE = 1;</code>
     */
    ASSOCIATE(0, 1),
    /**
     * <code>DISASSOCIATE = 2;</code>
     */
    DISASSOCIATE(1, 2),
    /**
     * <code>HEARTBEAT = 3;</code>
     */
    HEARTBEAT(2, 3),
    /**
     * <code>DISASSOCIATE_SHUTTING_DOWN = 4;</code>
     *
     * <pre>
     * Remote system is going down and will not accepts new connections
     * </pre>
     */
    DISASSOCIATE_SHUTTING_DOWN(3, 4),
    /**
     * <code>DISASSOCIATE_QUARANTINED = 5;</code>
     *
     * <pre>
     * Remote system refused the association since the current system is quarantined
     * </pre>
     */
    DISASSOCIATE_QUARANTINED(4, 5),
    ;

    /**
     * <code>ASSOCIATE = 1;</code>
     */
    public static final int ASSOCIATE_VALUE = 1;
    /**
     * <code>DISASSOCIATE = 2;</code>
     */
    public static final int DISASSOCIATE_VALUE = 2;
    /**
     * <code>HEARTBEAT = 3;</code>
     */
    public static final int HEARTBEAT_VALUE = 3;
    /**
     * <code>DISASSOCIATE_SHUTTING_DOWN = 4;</code>
     *
     * <pre>
     * Remote system is going down and will not accepts new connections
     * </pre>
     */
    public static final int DISASSOCIATE_SHUTTING_DOWN_VALUE = 4;
    /**
     * <code>DISASSOCIATE_QUARANTINED = 5;</code>
     *
     * <pre>
     * Remote system refused the association since the current system is quarantined
     * </pre>
     */
    public static final int DISASSOCIATE_QUARANTINED_VALUE = 5;


    public final int getNumber() { return value; }

    public static CommandType valueOf(int value) {
      switch (value) {
        case 1: return ASSOCIATE;
        case 2: return DISASSOCIATE;
        case 3: return HEARTBEAT;
        case 4: return DISASSOCIATE_SHUTTING_DOWN;
        case 5: return DISASSOCIATE_QUARANTINED;
        default: return null;
      }
    }

    public static akka.protobuf.Internal.EnumLiteMap<CommandType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static akka.protobuf.Internal.EnumLiteMap<CommandType>
        internalValueMap =
          new akka.protobuf.Internal.EnumLiteMap<CommandType>() {
            public CommandType findValueByNumber(int number) {
              return CommandType.valueOf(number);
            }
          };

    public final akka.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final akka.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final akka.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return akka.remote.WireFormats.getDescriptor().getEnumTypes().get(0);
    }

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

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

    private final int index;
    private final int value;

    private CommandType(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:CommandType)
  }

  public interface AckAndEnvelopeContainerOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // optional .AcknowledgementInfo ack = 1;
    /**
     * <code>optional .AcknowledgementInfo ack = 1;</code>
     */
    boolean hasAck();
    /**
     * <code>optional .AcknowledgementInfo ack = 1;</code>
     */
    akka.remote.WireFormats.AcknowledgementInfo getAck();
    /**
     * <code>optional .AcknowledgementInfo ack = 1;</code>
     */
    akka.remote.WireFormats.AcknowledgementInfoOrBuilder getAckOrBuilder();

    // optional .RemoteEnvelope envelope = 2;
    /**
     * <code>optional .RemoteEnvelope envelope = 2;</code>
     */
    boolean hasEnvelope();
    /**
     * <code>optional .RemoteEnvelope envelope = 2;</code>
     */
    akka.remote.WireFormats.RemoteEnvelope getEnvelope();
    /**
     * <code>optional .RemoteEnvelope envelope = 2;</code>
     */
    akka.remote.WireFormats.RemoteEnvelopeOrBuilder getEnvelopeOrBuilder();
  }
  /**
   * Protobuf type {@code AckAndEnvelopeContainer}
   */
  public static final class AckAndEnvelopeContainer extends
      akka.protobuf.GeneratedMessage
      implements AckAndEnvelopeContainerOrBuilder {
    // Use AckAndEnvelopeContainer.newBuilder() to construct.
    private AckAndEnvelopeContainer(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AckAndEnvelopeContainer(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final AckAndEnvelopeContainer defaultInstance;
    public static AckAndEnvelopeContainer getDefaultInstance() {
      return defaultInstance;
    }

    public AckAndEnvelopeContainer getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private AckAndEnvelopeContainer(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.remote.WireFormats.AcknowledgementInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = ack_.toBuilder();
              }
              ack_ = input.readMessage(akka.remote.WireFormats.AcknowledgementInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(ack_);
                ack_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.remote.WireFormats.RemoteEnvelope.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = envelope_.toBuilder();
              }
              envelope_ = input.readMessage(akka.remote.WireFormats.RemoteEnvelope.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(envelope_);
                envelope_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_AckAndEnvelopeContainer_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_AckAndEnvelopeContainer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.AckAndEnvelopeContainer.class, akka.remote.WireFormats.AckAndEnvelopeContainer.Builder.class);
    }

    public static akka.protobuf.Parser<AckAndEnvelopeContainer> PARSER =
        new akka.protobuf.AbstractParser<AckAndEnvelopeContainer>() {
      public AckAndEnvelopeContainer parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new AckAndEnvelopeContainer(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<AckAndEnvelopeContainer> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional .AcknowledgementInfo ack = 1;
    public static final int ACK_FIELD_NUMBER = 1;
    private akka.remote.WireFormats.AcknowledgementInfo ack_;
    /**
     * <code>optional .AcknowledgementInfo ack = 1;</code>
     */
    public boolean hasAck() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional .AcknowledgementInfo ack = 1;</code>
     */
    public akka.remote.WireFormats.AcknowledgementInfo getAck() {
      return ack_;
    }
    /**
     * <code>optional .AcknowledgementInfo ack = 1;</code>
     */
    public akka.remote.WireFormats.AcknowledgementInfoOrBuilder getAckOrBuilder() {
      return ack_;
    }

    // optional .RemoteEnvelope envelope = 2;
    public static final int ENVELOPE_FIELD_NUMBER = 2;
    private akka.remote.WireFormats.RemoteEnvelope envelope_;
    /**
     * <code>optional .RemoteEnvelope envelope = 2;</code>
     */
    public boolean hasEnvelope() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .RemoteEnvelope envelope = 2;</code>
     */
    public akka.remote.WireFormats.RemoteEnvelope getEnvelope() {
      return envelope_;
    }
    /**
     * <code>optional .RemoteEnvelope envelope = 2;</code>
     */
    public akka.remote.WireFormats.RemoteEnvelopeOrBuilder getEnvelopeOrBuilder() {
      return envelope_;
    }

    private void initFields() {
      ack_ = akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance();
      envelope_ = akka.remote.WireFormats.RemoteEnvelope.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (hasAck()) {
        if (!getAck().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEnvelope()) {
        if (!getEnvelope().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, ack_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, envelope_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, ack_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, envelope_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.AckAndEnvelopeContainer parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AckAndEnvelopeContainer parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AckAndEnvelopeContainer parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AckAndEnvelopeContainer parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AckAndEnvelopeContainer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AckAndEnvelopeContainer parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AckAndEnvelopeContainer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.AckAndEnvelopeContainer parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AckAndEnvelopeContainer parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AckAndEnvelopeContainer parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.AckAndEnvelopeContainer prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AckAndEnvelopeContainer}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.AckAndEnvelopeContainerOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_AckAndEnvelopeContainer_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_AckAndEnvelopeContainer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.AckAndEnvelopeContainer.class, akka.remote.WireFormats.AckAndEnvelopeContainer.Builder.class);
      }

      // Construct using akka.remote.WireFormats.AckAndEnvelopeContainer.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getAckFieldBuilder();
          getEnvelopeFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (ackBuilder_ == null) {
          ack_ = akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance();
        } else {
          ackBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (envelopeBuilder_ == null) {
          envelope_ = akka.remote.WireFormats.RemoteEnvelope.getDefaultInstance();
        } else {
          envelopeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_AckAndEnvelopeContainer_descriptor;
      }

      public akka.remote.WireFormats.AckAndEnvelopeContainer getDefaultInstanceForType() {
        return akka.remote.WireFormats.AckAndEnvelopeContainer.getDefaultInstance();
      }

      public akka.remote.WireFormats.AckAndEnvelopeContainer build() {
        akka.remote.WireFormats.AckAndEnvelopeContainer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.AckAndEnvelopeContainer buildPartial() {
        akka.remote.WireFormats.AckAndEnvelopeContainer result = new akka.remote.WireFormats.AckAndEnvelopeContainer(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (ackBuilder_ == null) {
          result.ack_ = ack_;
        } else {
          result.ack_ = ackBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (envelopeBuilder_ == null) {
          result.envelope_ = envelope_;
        } else {
          result.envelope_ = envelopeBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.AckAndEnvelopeContainer) {
          return mergeFrom((akka.remote.WireFormats.AckAndEnvelopeContainer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.AckAndEnvelopeContainer other) {
        if (other == akka.remote.WireFormats.AckAndEnvelopeContainer.getDefaultInstance()) return this;
        if (other.hasAck()) {
          mergeAck(other.getAck());
        }
        if (other.hasEnvelope()) {
          mergeEnvelope(other.getEnvelope());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (hasAck()) {
          if (!getAck().isInitialized()) {
            
            return false;
          }
        }
        if (hasEnvelope()) {
          if (!getEnvelope().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.AckAndEnvelopeContainer parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.AckAndEnvelopeContainer) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional .AcknowledgementInfo ack = 1;
      private akka.remote.WireFormats.AcknowledgementInfo ack_ = akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.AcknowledgementInfo, akka.remote.WireFormats.AcknowledgementInfo.Builder, akka.remote.WireFormats.AcknowledgementInfoOrBuilder> ackBuilder_;
      /**
       * <code>optional .AcknowledgementInfo ack = 1;</code>
       */
      public boolean hasAck() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .AcknowledgementInfo ack = 1;</code>
       */
      public akka.remote.WireFormats.AcknowledgementInfo getAck() {
        if (ackBuilder_ == null) {
          return ack_;
        } else {
          return ackBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AcknowledgementInfo ack = 1;</code>
       */
      public Builder setAck(akka.remote.WireFormats.AcknowledgementInfo value) {
        if (ackBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ack_ = value;
          onChanged();
        } else {
          ackBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .AcknowledgementInfo ack = 1;</code>
       */
      public Builder setAck(
          akka.remote.WireFormats.AcknowledgementInfo.Builder builderForValue) {
        if (ackBuilder_ == null) {
          ack_ = builderForValue.build();
          onChanged();
        } else {
          ackBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .AcknowledgementInfo ack = 1;</code>
       */
      public Builder mergeAck(akka.remote.WireFormats.AcknowledgementInfo value) {
        if (ackBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              ack_ != akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance()) {
            ack_ =
              akka.remote.WireFormats.AcknowledgementInfo.newBuilder(ack_).mergeFrom(value).buildPartial();
          } else {
            ack_ = value;
          }
          onChanged();
        } else {
          ackBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .AcknowledgementInfo ack = 1;</code>
       */
      public Builder clearAck() {
        if (ackBuilder_ == null) {
          ack_ = akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance();
          onChanged();
        } else {
          ackBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .AcknowledgementInfo ack = 1;</code>
       */
      public akka.remote.WireFormats.AcknowledgementInfo.Builder getAckBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getAckFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AcknowledgementInfo ack = 1;</code>
       */
      public akka.remote.WireFormats.AcknowledgementInfoOrBuilder getAckOrBuilder() {
        if (ackBuilder_ != null) {
          return ackBuilder_.getMessageOrBuilder();
        } else {
          return ack_;
        }
      }
      /**
       * <code>optional .AcknowledgementInfo ack = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.AcknowledgementInfo, akka.remote.WireFormats.AcknowledgementInfo.Builder, akka.remote.WireFormats.AcknowledgementInfoOrBuilder> 
          getAckFieldBuilder() {
        if (ackBuilder_ == null) {
          ackBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.AcknowledgementInfo, akka.remote.WireFormats.AcknowledgementInfo.Builder, akka.remote.WireFormats.AcknowledgementInfoOrBuilder>(
                  ack_,
                  getParentForChildren(),
                  isClean());
          ack_ = null;
        }
        return ackBuilder_;
      }

      // optional .RemoteEnvelope envelope = 2;
      private akka.remote.WireFormats.RemoteEnvelope envelope_ = akka.remote.WireFormats.RemoteEnvelope.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.RemoteEnvelope, akka.remote.WireFormats.RemoteEnvelope.Builder, akka.remote.WireFormats.RemoteEnvelopeOrBuilder> envelopeBuilder_;
      /**
       * <code>optional .RemoteEnvelope envelope = 2;</code>
       */
      public boolean hasEnvelope() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .RemoteEnvelope envelope = 2;</code>
       */
      public akka.remote.WireFormats.RemoteEnvelope getEnvelope() {
        if (envelopeBuilder_ == null) {
          return envelope_;
        } else {
          return envelopeBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .RemoteEnvelope envelope = 2;</code>
       */
      public Builder setEnvelope(akka.remote.WireFormats.RemoteEnvelope value) {
        if (envelopeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          envelope_ = value;
          onChanged();
        } else {
          envelopeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .RemoteEnvelope envelope = 2;</code>
       */
      public Builder setEnvelope(
          akka.remote.WireFormats.RemoteEnvelope.Builder builderForValue) {
        if (envelopeBuilder_ == null) {
          envelope_ = builderForValue.build();
          onChanged();
        } else {
          envelopeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .RemoteEnvelope envelope = 2;</code>
       */
      public Builder mergeEnvelope(akka.remote.WireFormats.RemoteEnvelope value) {
        if (envelopeBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              envelope_ != akka.remote.WireFormats.RemoteEnvelope.getDefaultInstance()) {
            envelope_ =
              akka.remote.WireFormats.RemoteEnvelope.newBuilder(envelope_).mergeFrom(value).buildPartial();
          } else {
            envelope_ = value;
          }
          onChanged();
        } else {
          envelopeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .RemoteEnvelope envelope = 2;</code>
       */
      public Builder clearEnvelope() {
        if (envelopeBuilder_ == null) {
          envelope_ = akka.remote.WireFormats.RemoteEnvelope.getDefaultInstance();
          onChanged();
        } else {
          envelopeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .RemoteEnvelope envelope = 2;</code>
       */
      public akka.remote.WireFormats.RemoteEnvelope.Builder getEnvelopeBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getEnvelopeFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .RemoteEnvelope envelope = 2;</code>
       */
      public akka.remote.WireFormats.RemoteEnvelopeOrBuilder getEnvelopeOrBuilder() {
        if (envelopeBuilder_ != null) {
          return envelopeBuilder_.getMessageOrBuilder();
        } else {
          return envelope_;
        }
      }
      /**
       * <code>optional .RemoteEnvelope envelope = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.RemoteEnvelope, akka.remote.WireFormats.RemoteEnvelope.Builder, akka.remote.WireFormats.RemoteEnvelopeOrBuilder> 
          getEnvelopeFieldBuilder() {
        if (envelopeBuilder_ == null) {
          envelopeBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.RemoteEnvelope, akka.remote.WireFormats.RemoteEnvelope.Builder, akka.remote.WireFormats.RemoteEnvelopeOrBuilder>(
                  envelope_,
                  getParentForChildren(),
                  isClean());
          envelope_ = null;
        }
        return envelopeBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:AckAndEnvelopeContainer)
    }

    static {
      defaultInstance = new AckAndEnvelopeContainer(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:AckAndEnvelopeContainer)
  }

  public interface RemoteEnvelopeOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .ActorRefData recipient = 1;
    /**
     * <code>required .ActorRefData recipient = 1;</code>
     */
    boolean hasRecipient();
    /**
     * <code>required .ActorRefData recipient = 1;</code>
     */
    akka.remote.WireFormats.ActorRefData getRecipient();
    /**
     * <code>required .ActorRefData recipient = 1;</code>
     */
    akka.remote.WireFormats.ActorRefDataOrBuilder getRecipientOrBuilder();

    // required .SerializedMessage message = 2;
    /**
     * <code>required .SerializedMessage message = 2;</code>
     */
    boolean hasMessage();
    /**
     * <code>required .SerializedMessage message = 2;</code>
     */
    akka.remote.WireFormats.SerializedMessage getMessage();
    /**
     * <code>required .SerializedMessage message = 2;</code>
     */
    akka.remote.WireFormats.SerializedMessageOrBuilder getMessageOrBuilder();

    // optional .ActorRefData sender = 4;
    /**
     * <code>optional .ActorRefData sender = 4;</code>
     */
    boolean hasSender();
    /**
     * <code>optional .ActorRefData sender = 4;</code>
     */
    akka.remote.WireFormats.ActorRefData getSender();
    /**
     * <code>optional .ActorRefData sender = 4;</code>
     */
    akka.remote.WireFormats.ActorRefDataOrBuilder getSenderOrBuilder();

    // optional fixed64 seq = 5;
    /**
     * <code>optional fixed64 seq = 5;</code>
     */
    boolean hasSeq();
    /**
     * <code>optional fixed64 seq = 5;</code>
     */
    long getSeq();
  }
  /**
   * Protobuf type {@code RemoteEnvelope}
   *
   * <pre>
   **
   * Defines a remote message.
   * </pre>
   */
  public static final class RemoteEnvelope extends
      akka.protobuf.GeneratedMessage
      implements RemoteEnvelopeOrBuilder {
    // Use RemoteEnvelope.newBuilder() to construct.
    private RemoteEnvelope(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private RemoteEnvelope(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final RemoteEnvelope defaultInstance;
    public static RemoteEnvelope getDefaultInstance() {
      return defaultInstance;
    }

    public RemoteEnvelope getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private RemoteEnvelope(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.remote.WireFormats.ActorRefData.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = recipient_.toBuilder();
              }
              recipient_ = input.readMessage(akka.remote.WireFormats.ActorRefData.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(recipient_);
                recipient_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.remote.WireFormats.SerializedMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = message_.toBuilder();
              }
              message_ = input.readMessage(akka.remote.WireFormats.SerializedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(message_);
                message_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 34: {
              akka.remote.WireFormats.ActorRefData.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = sender_.toBuilder();
              }
              sender_ = input.readMessage(akka.remote.WireFormats.ActorRefData.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(sender_);
                sender_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 41: {
              bitField0_ |= 0x00000008;
              seq_ = input.readFixed64();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_RemoteEnvelope_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_RemoteEnvelope_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.RemoteEnvelope.class, akka.remote.WireFormats.RemoteEnvelope.Builder.class);
    }

    public static akka.protobuf.Parser<RemoteEnvelope> PARSER =
        new akka.protobuf.AbstractParser<RemoteEnvelope>() {
      public RemoteEnvelope parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new RemoteEnvelope(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<RemoteEnvelope> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .ActorRefData recipient = 1;
    public static final int RECIPIENT_FIELD_NUMBER = 1;
    private akka.remote.WireFormats.ActorRefData recipient_;
    /**
     * <code>required .ActorRefData recipient = 1;</code>
     */
    public boolean hasRecipient() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .ActorRefData recipient = 1;</code>
     */
    public akka.remote.WireFormats.ActorRefData getRecipient() {
      return recipient_;
    }
    /**
     * <code>required .ActorRefData recipient = 1;</code>
     */
    public akka.remote.WireFormats.ActorRefDataOrBuilder getRecipientOrBuilder() {
      return recipient_;
    }

    // required .SerializedMessage message = 2;
    public static final int MESSAGE_FIELD_NUMBER = 2;
    private akka.remote.WireFormats.SerializedMessage message_;
    /**
     * <code>required .SerializedMessage message = 2;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .SerializedMessage message = 2;</code>
     */
    public akka.remote.WireFormats.SerializedMessage getMessage() {
      return message_;
    }
    /**
     * <code>required .SerializedMessage message = 2;</code>
     */
    public akka.remote.WireFormats.SerializedMessageOrBuilder getMessageOrBuilder() {
      return message_;
    }

    // optional .ActorRefData sender = 4;
    public static final int SENDER_FIELD_NUMBER = 4;
    private akka.remote.WireFormats.ActorRefData sender_;
    /**
     * <code>optional .ActorRefData sender = 4;</code>
     */
    public boolean hasSender() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional .ActorRefData sender = 4;</code>
     */
    public akka.remote.WireFormats.ActorRefData getSender() {
      return sender_;
    }
    /**
     * <code>optional .ActorRefData sender = 4;</code>
     */
    public akka.remote.WireFormats.ActorRefDataOrBuilder getSenderOrBuilder() {
      return sender_;
    }

    // optional fixed64 seq = 5;
    public static final int SEQ_FIELD_NUMBER = 5;
    private long seq_;
    /**
     * <code>optional fixed64 seq = 5;</code>
     */
    public boolean hasSeq() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional fixed64 seq = 5;</code>
     */
    public long getSeq() {
      return seq_;
    }

    private void initFields() {
      recipient_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
      message_ = akka.remote.WireFormats.SerializedMessage.getDefaultInstance();
      sender_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
      seq_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasRecipient()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMessage()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getRecipient().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getMessage().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasSender()) {
        if (!getSender().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, recipient_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, message_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(4, sender_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFixed64(5, seq_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, recipient_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, message_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(4, sender_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += akka.protobuf.CodedOutputStream
          .computeFixed64Size(5, seq_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.RemoteEnvelope parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.RemoteEnvelope parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.RemoteEnvelope parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.RemoteEnvelope parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.RemoteEnvelope parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.RemoteEnvelope parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.RemoteEnvelope parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.RemoteEnvelope parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.RemoteEnvelope parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.RemoteEnvelope parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.RemoteEnvelope prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code RemoteEnvelope}
     *
     * <pre>
     **
     * Defines a remote message.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.RemoteEnvelopeOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_RemoteEnvelope_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_RemoteEnvelope_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.RemoteEnvelope.class, akka.remote.WireFormats.RemoteEnvelope.Builder.class);
      }

      // Construct using akka.remote.WireFormats.RemoteEnvelope.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getRecipientFieldBuilder();
          getMessageFieldBuilder();
          getSenderFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (recipientBuilder_ == null) {
          recipient_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
        } else {
          recipientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (messageBuilder_ == null) {
          message_ = akka.remote.WireFormats.SerializedMessage.getDefaultInstance();
        } else {
          messageBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (senderBuilder_ == null) {
          sender_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
        } else {
          senderBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        seq_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_RemoteEnvelope_descriptor;
      }

      public akka.remote.WireFormats.RemoteEnvelope getDefaultInstanceForType() {
        return akka.remote.WireFormats.RemoteEnvelope.getDefaultInstance();
      }

      public akka.remote.WireFormats.RemoteEnvelope build() {
        akka.remote.WireFormats.RemoteEnvelope result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.RemoteEnvelope buildPartial() {
        akka.remote.WireFormats.RemoteEnvelope result = new akka.remote.WireFormats.RemoteEnvelope(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (recipientBuilder_ == null) {
          result.recipient_ = recipient_;
        } else {
          result.recipient_ = recipientBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (messageBuilder_ == null) {
          result.message_ = message_;
        } else {
          result.message_ = messageBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (senderBuilder_ == null) {
          result.sender_ = sender_;
        } else {
          result.sender_ = senderBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.seq_ = seq_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.RemoteEnvelope) {
          return mergeFrom((akka.remote.WireFormats.RemoteEnvelope)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.RemoteEnvelope other) {
        if (other == akka.remote.WireFormats.RemoteEnvelope.getDefaultInstance()) return this;
        if (other.hasRecipient()) {
          mergeRecipient(other.getRecipient());
        }
        if (other.hasMessage()) {
          mergeMessage(other.getMessage());
        }
        if (other.hasSender()) {
          mergeSender(other.getSender());
        }
        if (other.hasSeq()) {
          setSeq(other.getSeq());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRecipient()) {
          
          return false;
        }
        if (!hasMessage()) {
          
          return false;
        }
        if (!getRecipient().isInitialized()) {
          
          return false;
        }
        if (!getMessage().isInitialized()) {
          
          return false;
        }
        if (hasSender()) {
          if (!getSender().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.RemoteEnvelope parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.RemoteEnvelope) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .ActorRefData recipient = 1;
      private akka.remote.WireFormats.ActorRefData recipient_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder> recipientBuilder_;
      /**
       * <code>required .ActorRefData recipient = 1;</code>
       */
      public boolean hasRecipient() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .ActorRefData recipient = 1;</code>
       */
      public akka.remote.WireFormats.ActorRefData getRecipient() {
        if (recipientBuilder_ == null) {
          return recipient_;
        } else {
          return recipientBuilder_.getMessage();
        }
      }
      /**
       * <code>required .ActorRefData recipient = 1;</code>
       */
      public Builder setRecipient(akka.remote.WireFormats.ActorRefData value) {
        if (recipientBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          recipient_ = value;
          onChanged();
        } else {
          recipientBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .ActorRefData recipient = 1;</code>
       */
      public Builder setRecipient(
          akka.remote.WireFormats.ActorRefData.Builder builderForValue) {
        if (recipientBuilder_ == null) {
          recipient_ = builderForValue.build();
          onChanged();
        } else {
          recipientBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .ActorRefData recipient = 1;</code>
       */
      public Builder mergeRecipient(akka.remote.WireFormats.ActorRefData value) {
        if (recipientBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              recipient_ != akka.remote.WireFormats.ActorRefData.getDefaultInstance()) {
            recipient_ =
              akka.remote.WireFormats.ActorRefData.newBuilder(recipient_).mergeFrom(value).buildPartial();
          } else {
            recipient_ = value;
          }
          onChanged();
        } else {
          recipientBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .ActorRefData recipient = 1;</code>
       */
      public Builder clearRecipient() {
        if (recipientBuilder_ == null) {
          recipient_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
          onChanged();
        } else {
          recipientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .ActorRefData recipient = 1;</code>
       */
      public akka.remote.WireFormats.ActorRefData.Builder getRecipientBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getRecipientFieldBuilder().getBuilder();
      }
      /**
       * <code>required .ActorRefData recipient = 1;</code>
       */
      public akka.remote.WireFormats.ActorRefDataOrBuilder getRecipientOrBuilder() {
        if (recipientBuilder_ != null) {
          return recipientBuilder_.getMessageOrBuilder();
        } else {
          return recipient_;
        }
      }
      /**
       * <code>required .ActorRefData recipient = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder> 
          getRecipientFieldBuilder() {
        if (recipientBuilder_ == null) {
          recipientBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder>(
                  recipient_,
                  getParentForChildren(),
                  isClean());
          recipient_ = null;
        }
        return recipientBuilder_;
      }

      // required .SerializedMessage message = 2;
      private akka.remote.WireFormats.SerializedMessage message_ = akka.remote.WireFormats.SerializedMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.SerializedMessage, akka.remote.WireFormats.SerializedMessage.Builder, akka.remote.WireFormats.SerializedMessageOrBuilder> messageBuilder_;
      /**
       * <code>required .SerializedMessage message = 2;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .SerializedMessage message = 2;</code>
       */
      public akka.remote.WireFormats.SerializedMessage getMessage() {
        if (messageBuilder_ == null) {
          return message_;
        } else {
          return messageBuilder_.getMessage();
        }
      }
      /**
       * <code>required .SerializedMessage message = 2;</code>
       */
      public Builder setMessage(akka.remote.WireFormats.SerializedMessage value) {
        if (messageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          message_ = value;
          onChanged();
        } else {
          messageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .SerializedMessage message = 2;</code>
       */
      public Builder setMessage(
          akka.remote.WireFormats.SerializedMessage.Builder builderForValue) {
        if (messageBuilder_ == null) {
          message_ = builderForValue.build();
          onChanged();
        } else {
          messageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .SerializedMessage message = 2;</code>
       */
      public Builder mergeMessage(akka.remote.WireFormats.SerializedMessage value) {
        if (messageBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              message_ != akka.remote.WireFormats.SerializedMessage.getDefaultInstance()) {
            message_ =
              akka.remote.WireFormats.SerializedMessage.newBuilder(message_).mergeFrom(value).buildPartial();
          } else {
            message_ = value;
          }
          onChanged();
        } else {
          messageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .SerializedMessage message = 2;</code>
       */
      public Builder clearMessage() {
        if (messageBuilder_ == null) {
          message_ = akka.remote.WireFormats.SerializedMessage.getDefaultInstance();
          onChanged();
        } else {
          messageBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .SerializedMessage message = 2;</code>
       */
      public akka.remote.WireFormats.SerializedMessage.Builder getMessageBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>required .SerializedMessage message = 2;</code>
       */
      public akka.remote.WireFormats.SerializedMessageOrBuilder getMessageOrBuilder() {
        if (messageBuilder_ != null) {
          return messageBuilder_.getMessageOrBuilder();
        } else {
          return message_;
        }
      }
      /**
       * <code>required .SerializedMessage message = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.SerializedMessage, akka.remote.WireFormats.SerializedMessage.Builder, akka.remote.WireFormats.SerializedMessageOrBuilder> 
          getMessageFieldBuilder() {
        if (messageBuilder_ == null) {
          messageBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.SerializedMessage, akka.remote.WireFormats.SerializedMessage.Builder, akka.remote.WireFormats.SerializedMessageOrBuilder>(
                  message_,
                  getParentForChildren(),
                  isClean());
          message_ = null;
        }
        return messageBuilder_;
      }

      // optional .ActorRefData sender = 4;
      private akka.remote.WireFormats.ActorRefData sender_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder> senderBuilder_;
      /**
       * <code>optional .ActorRefData sender = 4;</code>
       */
      public boolean hasSender() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .ActorRefData sender = 4;</code>
       */
      public akka.remote.WireFormats.ActorRefData getSender() {
        if (senderBuilder_ == null) {
          return sender_;
        } else {
          return senderBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ActorRefData sender = 4;</code>
       */
      public Builder setSender(akka.remote.WireFormats.ActorRefData value) {
        if (senderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sender_ = value;
          onChanged();
        } else {
          senderBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .ActorRefData sender = 4;</code>
       */
      public Builder setSender(
          akka.remote.WireFormats.ActorRefData.Builder builderForValue) {
        if (senderBuilder_ == null) {
          sender_ = builderForValue.build();
          onChanged();
        } else {
          senderBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .ActorRefData sender = 4;</code>
       */
      public Builder mergeSender(akka.remote.WireFormats.ActorRefData value) {
        if (senderBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              sender_ != akka.remote.WireFormats.ActorRefData.getDefaultInstance()) {
            sender_ =
              akka.remote.WireFormats.ActorRefData.newBuilder(sender_).mergeFrom(value).buildPartial();
          } else {
            sender_ = value;
          }
          onChanged();
        } else {
          senderBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .ActorRefData sender = 4;</code>
       */
      public Builder clearSender() {
        if (senderBuilder_ == null) {
          sender_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
          onChanged();
        } else {
          senderBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .ActorRefData sender = 4;</code>
       */
      public akka.remote.WireFormats.ActorRefData.Builder getSenderBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSenderFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ActorRefData sender = 4;</code>
       */
      public akka.remote.WireFormats.ActorRefDataOrBuilder getSenderOrBuilder() {
        if (senderBuilder_ != null) {
          return senderBuilder_.getMessageOrBuilder();
        } else {
          return sender_;
        }
      }
      /**
       * <code>optional .ActorRefData sender = 4;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder> 
          getSenderFieldBuilder() {
        if (senderBuilder_ == null) {
          senderBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder>(
                  sender_,
                  getParentForChildren(),
                  isClean());
          sender_ = null;
        }
        return senderBuilder_;
      }

      // optional fixed64 seq = 5;
      private long seq_ ;
      /**
       * <code>optional fixed64 seq = 5;</code>
       */
      public boolean hasSeq() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional fixed64 seq = 5;</code>
       */
      public long getSeq() {
        return seq_;
      }
      /**
       * <code>optional fixed64 seq = 5;</code>
       */
      public Builder setSeq(long value) {
        bitField0_ |= 0x00000008;
        seq_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional fixed64 seq = 5;</code>
       */
      public Builder clearSeq() {
        bitField0_ = (bitField0_ & ~0x00000008);
        seq_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:RemoteEnvelope)
    }

    static {
      defaultInstance = new RemoteEnvelope(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:RemoteEnvelope)
  }

  public interface AcknowledgementInfoOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required fixed64 cumulativeAck = 1;
    /**
     * <code>required fixed64 cumulativeAck = 1;</code>
     */
    boolean hasCumulativeAck();
    /**
     * <code>required fixed64 cumulativeAck = 1;</code>
     */
    long getCumulativeAck();

    // repeated fixed64 nacks = 2;
    /**
     * <code>repeated fixed64 nacks = 2;</code>
     */
    java.util.List<java.lang.Long> getNacksList();
    /**
     * <code>repeated fixed64 nacks = 2;</code>
     */
    int getNacksCount();
    /**
     * <code>repeated fixed64 nacks = 2;</code>
     */
    long getNacks(int index);
  }
  /**
   * Protobuf type {@code AcknowledgementInfo}
   */
  public static final class AcknowledgementInfo extends
      akka.protobuf.GeneratedMessage
      implements AcknowledgementInfoOrBuilder {
    // Use AcknowledgementInfo.newBuilder() to construct.
    private AcknowledgementInfo(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AcknowledgementInfo(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final AcknowledgementInfo defaultInstance;
    public static AcknowledgementInfo getDefaultInstance() {
      return defaultInstance;
    }

    public AcknowledgementInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private AcknowledgementInfo(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 9: {
              bitField0_ |= 0x00000001;
              cumulativeAck_ = input.readFixed64();
              break;
            }
            case 17: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                nacks_ = new java.util.ArrayList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000002;
              }
              nacks_.add(input.readFixed64());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                nacks_ = new java.util.ArrayList<java.lang.Long>();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                nacks_.add(input.readFixed64());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          nacks_ = java.util.Collections.unmodifiableList(nacks_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_AcknowledgementInfo_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_AcknowledgementInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.AcknowledgementInfo.class, akka.remote.WireFormats.AcknowledgementInfo.Builder.class);
    }

    public static akka.protobuf.Parser<AcknowledgementInfo> PARSER =
        new akka.protobuf.AbstractParser<AcknowledgementInfo>() {
      public AcknowledgementInfo parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new AcknowledgementInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<AcknowledgementInfo> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required fixed64 cumulativeAck = 1;
    public static final int CUMULATIVEACK_FIELD_NUMBER = 1;
    private long cumulativeAck_;
    /**
     * <code>required fixed64 cumulativeAck = 1;</code>
     */
    public boolean hasCumulativeAck() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required fixed64 cumulativeAck = 1;</code>
     */
    public long getCumulativeAck() {
      return cumulativeAck_;
    }

    // repeated fixed64 nacks = 2;
    public static final int NACKS_FIELD_NUMBER = 2;
    private java.util.List<java.lang.Long> nacks_;
    /**
     * <code>repeated fixed64 nacks = 2;</code>
     */
    public java.util.List<java.lang.Long>
        getNacksList() {
      return nacks_;
    }
    /**
     * <code>repeated fixed64 nacks = 2;</code>
     */
    public int getNacksCount() {
      return nacks_.size();
    }
    /**
     * <code>repeated fixed64 nacks = 2;</code>
     */
    public long getNacks(int index) {
      return nacks_.get(index);
    }

    private void initFields() {
      cumulativeAck_ = 0L;
      nacks_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasCumulativeAck()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeFixed64(1, cumulativeAck_);
      }
      for (int i = 0; i < nacks_.size(); i++) {
        output.writeFixed64(2, nacks_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeFixed64Size(1, cumulativeAck_);
      }
      {
        int dataSize = 0;
        dataSize = 8 * getNacksList().size();
        size += dataSize;
        size += 1 * getNacksList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.AcknowledgementInfo parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AcknowledgementInfo parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AcknowledgementInfo parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AcknowledgementInfo parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AcknowledgementInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AcknowledgementInfo parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AcknowledgementInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.AcknowledgementInfo parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AcknowledgementInfo parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AcknowledgementInfo parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.AcknowledgementInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AcknowledgementInfo}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.AcknowledgementInfoOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_AcknowledgementInfo_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_AcknowledgementInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.AcknowledgementInfo.class, akka.remote.WireFormats.AcknowledgementInfo.Builder.class);
      }

      // Construct using akka.remote.WireFormats.AcknowledgementInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        cumulativeAck_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        nacks_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_AcknowledgementInfo_descriptor;
      }

      public akka.remote.WireFormats.AcknowledgementInfo getDefaultInstanceForType() {
        return akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance();
      }

      public akka.remote.WireFormats.AcknowledgementInfo build() {
        akka.remote.WireFormats.AcknowledgementInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.AcknowledgementInfo buildPartial() {
        akka.remote.WireFormats.AcknowledgementInfo result = new akka.remote.WireFormats.AcknowledgementInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.cumulativeAck_ = cumulativeAck_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          nacks_ = java.util.Collections.unmodifiableList(nacks_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.nacks_ = nacks_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.AcknowledgementInfo) {
          return mergeFrom((akka.remote.WireFormats.AcknowledgementInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.AcknowledgementInfo other) {
        if (other == akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance()) return this;
        if (other.hasCumulativeAck()) {
          setCumulativeAck(other.getCumulativeAck());
        }
        if (!other.nacks_.isEmpty()) {
          if (nacks_.isEmpty()) {
            nacks_ = other.nacks_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureNacksIsMutable();
            nacks_.addAll(other.nacks_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasCumulativeAck()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.AcknowledgementInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.AcknowledgementInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required fixed64 cumulativeAck = 1;
      private long cumulativeAck_ ;
      /**
       * <code>required fixed64 cumulativeAck = 1;</code>
       */
      public boolean hasCumulativeAck() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required fixed64 cumulativeAck = 1;</code>
       */
      public long getCumulativeAck() {
        return cumulativeAck_;
      }
      /**
       * <code>required fixed64 cumulativeAck = 1;</code>
       */
      public Builder setCumulativeAck(long value) {
        bitField0_ |= 0x00000001;
        cumulativeAck_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed64 cumulativeAck = 1;</code>
       */
      public Builder clearCumulativeAck() {
        bitField0_ = (bitField0_ & ~0x00000001);
        cumulativeAck_ = 0L;
        onChanged();
        return this;
      }

      // repeated fixed64 nacks = 2;
      private java.util.List<java.lang.Long> nacks_ = java.util.Collections.emptyList();
      private void ensureNacksIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          nacks_ = new java.util.ArrayList<java.lang.Long>(nacks_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated fixed64 nacks = 2;</code>
       */
      public java.util.List<java.lang.Long>
          getNacksList() {
        return java.util.Collections.unmodifiableList(nacks_);
      }
      /**
       * <code>repeated fixed64 nacks = 2;</code>
       */
      public int getNacksCount() {
        return nacks_.size();
      }
      /**
       * <code>repeated fixed64 nacks = 2;</code>
       */
      public long getNacks(int index) {
        return nacks_.get(index);
      }
      /**
       * <code>repeated fixed64 nacks = 2;</code>
       */
      public Builder setNacks(
          int index, long value) {
        ensureNacksIsMutable();
        nacks_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated fixed64 nacks = 2;</code>
       */
      public Builder addNacks(long value) {
        ensureNacksIsMutable();
        nacks_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated fixed64 nacks = 2;</code>
       */
      public Builder addAllNacks(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureNacksIsMutable();
        super.addAll(values, nacks_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated fixed64 nacks = 2;</code>
       */
      public Builder clearNacks() {
        nacks_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AcknowledgementInfo)
    }

    static {
      defaultInstance = new AcknowledgementInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:AcknowledgementInfo)
  }

  public interface ActorRefDataOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string path = 1;
    /**
     * <code>required string path = 1;</code>
     */
    boolean hasPath();
    /**
     * <code>required string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     * <code>required string path = 1;</code>
     */
    akka.protobuf.ByteString
        getPathBytes();
  }
  /**
   * Protobuf type {@code ActorRefData}
   *
   * <pre>
   **
   * Defines a remote ActorRef that "remembers" and uses its original Actor instance
   * on the original node.
   * </pre>
   */
  public static final class ActorRefData extends
      akka.protobuf.GeneratedMessage
      implements ActorRefDataOrBuilder {
    // Use ActorRefData.newBuilder() to construct.
    private ActorRefData(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ActorRefData(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final ActorRefData defaultInstance;
    public static ActorRefData getDefaultInstance() {
      return defaultInstance;
    }

    public ActorRefData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ActorRefData(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              path_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_ActorRefData_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_ActorRefData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.ActorRefData.class, akka.remote.WireFormats.ActorRefData.Builder.class);
    }

    public static akka.protobuf.Parser<ActorRefData> PARSER =
        new akka.protobuf.AbstractParser<ActorRefData>() {
      public ActorRefData parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new ActorRefData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<ActorRefData> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string path = 1;
    public static final int PATH_FIELD_NUMBER = 1;
    private java.lang.Object path_;
    /**
     * <code>required string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string path = 1;</code>
     */
    public akka.protobuf.ByteString
        getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      path_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasPath()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getPathBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getPathBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.ActorRefData parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.ActorRefData parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.ActorRefData parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.ActorRefData parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.ActorRefData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.ActorRefData parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.ActorRefData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.ActorRefData parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.ActorRefData parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.ActorRefData parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.ActorRefData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ActorRefData}
     *
     * <pre>
     **
     * Defines a remote ActorRef that "remembers" and uses its original Actor instance
     * on the original node.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.ActorRefDataOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_ActorRefData_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_ActorRefData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.ActorRefData.class, akka.remote.WireFormats.ActorRefData.Builder.class);
      }

      // Construct using akka.remote.WireFormats.ActorRefData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_ActorRefData_descriptor;
      }

      public akka.remote.WireFormats.ActorRefData getDefaultInstanceForType() {
        return akka.remote.WireFormats.ActorRefData.getDefaultInstance();
      }

      public akka.remote.WireFormats.ActorRefData build() {
        akka.remote.WireFormats.ActorRefData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.ActorRefData buildPartial() {
        akka.remote.WireFormats.ActorRefData result = new akka.remote.WireFormats.ActorRefData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.ActorRefData) {
          return mergeFrom((akka.remote.WireFormats.ActorRefData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.ActorRefData other) {
        if (other == akka.remote.WireFormats.ActorRefData.getDefaultInstance()) return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPath()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.ActorRefData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.ActorRefData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string path = 1;
      private java.lang.Object path_ = "";
      /**
       * <code>required string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          path_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string path = 1;</code>
       */
      public akka.protobuf.ByteString
          getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder setPath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder setPathBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ActorRefData)
    }

    static {
      defaultInstance = new ActorRefData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:ActorRefData)
  }

  public interface SerializedMessageOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required bytes message = 1;
    /**
     * <code>required bytes message = 1;</code>
     */
    boolean hasMessage();
    /**
     * <code>required bytes message = 1;</code>
     */
    akka.protobuf.ByteString getMessage();

    // required int32 serializerId = 2;
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    boolean hasSerializerId();
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    int getSerializerId();

    // optional bytes messageManifest = 3;
    /**
     * <code>optional bytes messageManifest = 3;</code>
     */
    boolean hasMessageManifest();
    /**
     * <code>optional bytes messageManifest = 3;</code>
     */
    akka.protobuf.ByteString getMessageManifest();
  }
  /**
   * Protobuf type {@code SerializedMessage}
   *
   * <pre>
   **
   * Defines a message.
   * </pre>
   */
  public static final class SerializedMessage extends
      akka.protobuf.GeneratedMessage
      implements SerializedMessageOrBuilder {
    // Use SerializedMessage.newBuilder() to construct.
    private SerializedMessage(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SerializedMessage(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final SerializedMessage defaultInstance;
    public static SerializedMessage getDefaultInstance() {
      return defaultInstance;
    }

    public SerializedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SerializedMessage(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              message_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              serializerId_ = input.readInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              messageManifest_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_SerializedMessage_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_SerializedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.SerializedMessage.class, akka.remote.WireFormats.SerializedMessage.Builder.class);
    }

    public static akka.protobuf.Parser<SerializedMessage> PARSER =
        new akka.protobuf.AbstractParser<SerializedMessage>() {
      public SerializedMessage parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new SerializedMessage(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<SerializedMessage> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required bytes message = 1;
    public static final int MESSAGE_FIELD_NUMBER = 1;
    private akka.protobuf.ByteString message_;
    /**
     * <code>required bytes message = 1;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bytes message = 1;</code>
     */
    public akka.protobuf.ByteString getMessage() {
      return message_;
    }

    // required int32 serializerId = 2;
    public static final int SERIALIZERID_FIELD_NUMBER = 2;
    private int serializerId_;
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    public boolean hasSerializerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    public int getSerializerId() {
      return serializerId_;
    }

    // optional bytes messageManifest = 3;
    public static final int MESSAGEMANIFEST_FIELD_NUMBER = 3;
    private akka.protobuf.ByteString messageManifest_;
    /**
     * <code>optional bytes messageManifest = 3;</code>
     */
    public boolean hasMessageManifest() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes messageManifest = 3;</code>
     */
    public akka.protobuf.ByteString getMessageManifest() {
      return messageManifest_;
    }

    private void initFields() {
      message_ = akka.protobuf.ByteString.EMPTY;
      serializerId_ = 0;
      messageManifest_ = akka.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasMessage()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSerializerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, message_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, serializerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, messageManifest_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, message_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeInt32Size(2, serializerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(3, messageManifest_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.SerializedMessage parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.SerializedMessage parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.SerializedMessage parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.SerializedMessage parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.SerializedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.SerializedMessage parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.SerializedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.SerializedMessage parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.SerializedMessage parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.SerializedMessage parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.SerializedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SerializedMessage}
     *
     * <pre>
     **
     * Defines a message.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.SerializedMessageOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_SerializedMessage_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_SerializedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.SerializedMessage.class, akka.remote.WireFormats.SerializedMessage.Builder.class);
      }

      // Construct using akka.remote.WireFormats.SerializedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        message_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        serializerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        messageManifest_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_SerializedMessage_descriptor;
      }

      public akka.remote.WireFormats.SerializedMessage getDefaultInstanceForType() {
        return akka.remote.WireFormats.SerializedMessage.getDefaultInstance();
      }

      public akka.remote.WireFormats.SerializedMessage build() {
        akka.remote.WireFormats.SerializedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.SerializedMessage buildPartial() {
        akka.remote.WireFormats.SerializedMessage result = new akka.remote.WireFormats.SerializedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.serializerId_ = serializerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.messageManifest_ = messageManifest_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.SerializedMessage) {
          return mergeFrom((akka.remote.WireFormats.SerializedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.SerializedMessage other) {
        if (other == akka.remote.WireFormats.SerializedMessage.getDefaultInstance()) return this;
        if (other.hasMessage()) {
          setMessage(other.getMessage());
        }
        if (other.hasSerializerId()) {
          setSerializerId(other.getSerializerId());
        }
        if (other.hasMessageManifest()) {
          setMessageManifest(other.getMessageManifest());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMessage()) {
          
          return false;
        }
        if (!hasSerializerId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.SerializedMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.SerializedMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required bytes message = 1;
      private akka.protobuf.ByteString message_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes message = 1;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required bytes message = 1;</code>
       */
      public akka.protobuf.ByteString getMessage() {
        return message_;
      }
      /**
       * <code>required bytes message = 1;</code>
       */
      public Builder setMessage(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes message = 1;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }

      // required int32 serializerId = 2;
      private int serializerId_ ;
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public boolean hasSerializerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public int getSerializerId() {
        return serializerId_;
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public Builder setSerializerId(int value) {
        bitField0_ |= 0x00000002;
        serializerId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public Builder clearSerializerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        serializerId_ = 0;
        onChanged();
        return this;
      }

      // optional bytes messageManifest = 3;
      private akka.protobuf.ByteString messageManifest_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes messageManifest = 3;</code>
       */
      public boolean hasMessageManifest() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes messageManifest = 3;</code>
       */
      public akka.protobuf.ByteString getMessageManifest() {
        return messageManifest_;
      }
      /**
       * <code>optional bytes messageManifest = 3;</code>
       */
      public Builder setMessageManifest(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        messageManifest_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes messageManifest = 3;</code>
       */
      public Builder clearMessageManifest() {
        bitField0_ = (bitField0_ & ~0x00000004);
        messageManifest_ = getDefaultInstance().getMessageManifest();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:SerializedMessage)
    }

    static {
      defaultInstance = new SerializedMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:SerializedMessage)
  }

  public interface DaemonMsgCreateDataOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .PropsData props = 1;
    /**
     * <code>required .PropsData props = 1;</code>
     */
    boolean hasProps();
    /**
     * <code>required .PropsData props = 1;</code>
     */
    akka.remote.WireFormats.PropsData getProps();
    /**
     * <code>required .PropsData props = 1;</code>
     */
    akka.remote.WireFormats.PropsDataOrBuilder getPropsOrBuilder();

    // required .DeployData deploy = 2;
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    boolean hasDeploy();
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    akka.remote.WireFormats.DeployData getDeploy();
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    akka.remote.WireFormats.DeployDataOrBuilder getDeployOrBuilder();

    // required string path = 3;
    /**
     * <code>required string path = 3;</code>
     */
    boolean hasPath();
    /**
     * <code>required string path = 3;</code>
     */
    java.lang.String getPath();
    /**
     * <code>required string path = 3;</code>
     */
    akka.protobuf.ByteString
        getPathBytes();

    // required .ActorRefData supervisor = 4;
    /**
     * <code>required .ActorRefData supervisor = 4;</code>
     */
    boolean hasSupervisor();
    /**
     * <code>required .ActorRefData supervisor = 4;</code>
     */
    akka.remote.WireFormats.ActorRefData getSupervisor();
    /**
     * <code>required .ActorRefData supervisor = 4;</code>
     */
    akka.remote.WireFormats.ActorRefDataOrBuilder getSupervisorOrBuilder();
  }
  /**
   * Protobuf type {@code DaemonMsgCreateData}
   *
   * <pre>
   **
   * Defines akka.remote.DaemonMsgCreate
   * </pre>
   */
  public static final class DaemonMsgCreateData extends
      akka.protobuf.GeneratedMessage
      implements DaemonMsgCreateDataOrBuilder {
    // Use DaemonMsgCreateData.newBuilder() to construct.
    private DaemonMsgCreateData(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DaemonMsgCreateData(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final DaemonMsgCreateData defaultInstance;
    public static DaemonMsgCreateData getDefaultInstance() {
      return defaultInstance;
    }

    public DaemonMsgCreateData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private DaemonMsgCreateData(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.remote.WireFormats.PropsData.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = props_.toBuilder();
              }
              props_ = input.readMessage(akka.remote.WireFormats.PropsData.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(props_);
                props_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.remote.WireFormats.DeployData.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = deploy_.toBuilder();
              }
              deploy_ = input.readMessage(akka.remote.WireFormats.DeployData.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(deploy_);
                deploy_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              path_ = input.readBytes();
              break;
            }
            case 34: {
              akka.remote.WireFormats.ActorRefData.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = supervisor_.toBuilder();
              }
              supervisor_ = input.readMessage(akka.remote.WireFormats.ActorRefData.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(supervisor_);
                supervisor_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_DaemonMsgCreateData_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_DaemonMsgCreateData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.DaemonMsgCreateData.class, akka.remote.WireFormats.DaemonMsgCreateData.Builder.class);
    }

    public static akka.protobuf.Parser<DaemonMsgCreateData> PARSER =
        new akka.protobuf.AbstractParser<DaemonMsgCreateData>() {
      public DaemonMsgCreateData parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new DaemonMsgCreateData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<DaemonMsgCreateData> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .PropsData props = 1;
    public static final int PROPS_FIELD_NUMBER = 1;
    private akka.remote.WireFormats.PropsData props_;
    /**
     * <code>required .PropsData props = 1;</code>
     */
    public boolean hasProps() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .PropsData props = 1;</code>
     */
    public akka.remote.WireFormats.PropsData getProps() {
      return props_;
    }
    /**
     * <code>required .PropsData props = 1;</code>
     */
    public akka.remote.WireFormats.PropsDataOrBuilder getPropsOrBuilder() {
      return props_;
    }

    // required .DeployData deploy = 2;
    public static final int DEPLOY_FIELD_NUMBER = 2;
    private akka.remote.WireFormats.DeployData deploy_;
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    public boolean hasDeploy() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    public akka.remote.WireFormats.DeployData getDeploy() {
      return deploy_;
    }
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    public akka.remote.WireFormats.DeployDataOrBuilder getDeployOrBuilder() {
      return deploy_;
    }

    // required string path = 3;
    public static final int PATH_FIELD_NUMBER = 3;
    private java.lang.Object path_;
    /**
     * <code>required string path = 3;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required string path = 3;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string path = 3;</code>
     */
    public akka.protobuf.ByteString
        getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required .ActorRefData supervisor = 4;
    public static final int SUPERVISOR_FIELD_NUMBER = 4;
    private akka.remote.WireFormats.ActorRefData supervisor_;
    /**
     * <code>required .ActorRefData supervisor = 4;</code>
     */
    public boolean hasSupervisor() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .ActorRefData supervisor = 4;</code>
     */
    public akka.remote.WireFormats.ActorRefData getSupervisor() {
      return supervisor_;
    }
    /**
     * <code>required .ActorRefData supervisor = 4;</code>
     */
    public akka.remote.WireFormats.ActorRefDataOrBuilder getSupervisorOrBuilder() {
      return supervisor_;
    }

    private void initFields() {
      props_ = akka.remote.WireFormats.PropsData.getDefaultInstance();
      deploy_ = akka.remote.WireFormats.DeployData.getDefaultInstance();
      path_ = "";
      supervisor_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasProps()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDeploy()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPath()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSupervisor()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getProps().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getDeploy().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getSupervisor().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, props_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, deploy_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getPathBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, supervisor_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, props_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, deploy_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(3, getPathBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(4, supervisor_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.DaemonMsgCreateData parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.DaemonMsgCreateData parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.DaemonMsgCreateData parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.DaemonMsgCreateData parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.DaemonMsgCreateData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.DaemonMsgCreateData parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.DaemonMsgCreateData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.DaemonMsgCreateData parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.DaemonMsgCreateData parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.DaemonMsgCreateData parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.DaemonMsgCreateData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code DaemonMsgCreateData}
     *
     * <pre>
     **
     * Defines akka.remote.DaemonMsgCreate
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.DaemonMsgCreateDataOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_DaemonMsgCreateData_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_DaemonMsgCreateData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.DaemonMsgCreateData.class, akka.remote.WireFormats.DaemonMsgCreateData.Builder.class);
      }

      // Construct using akka.remote.WireFormats.DaemonMsgCreateData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPropsFieldBuilder();
          getDeployFieldBuilder();
          getSupervisorFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (propsBuilder_ == null) {
          props_ = akka.remote.WireFormats.PropsData.getDefaultInstance();
        } else {
          propsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (deployBuilder_ == null) {
          deploy_ = akka.remote.WireFormats.DeployData.getDefaultInstance();
        } else {
          deployBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (supervisorBuilder_ == null) {
          supervisor_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
        } else {
          supervisorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_DaemonMsgCreateData_descriptor;
      }

      public akka.remote.WireFormats.DaemonMsgCreateData getDefaultInstanceForType() {
        return akka.remote.WireFormats.DaemonMsgCreateData.getDefaultInstance();
      }

      public akka.remote.WireFormats.DaemonMsgCreateData build() {
        akka.remote.WireFormats.DaemonMsgCreateData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.DaemonMsgCreateData buildPartial() {
        akka.remote.WireFormats.DaemonMsgCreateData result = new akka.remote.WireFormats.DaemonMsgCreateData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (propsBuilder_ == null) {
          result.props_ = props_;
        } else {
          result.props_ = propsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (deployBuilder_ == null) {
          result.deploy_ = deploy_;
        } else {
          result.deploy_ = deployBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (supervisorBuilder_ == null) {
          result.supervisor_ = supervisor_;
        } else {
          result.supervisor_ = supervisorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.DaemonMsgCreateData) {
          return mergeFrom((akka.remote.WireFormats.DaemonMsgCreateData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.DaemonMsgCreateData other) {
        if (other == akka.remote.WireFormats.DaemonMsgCreateData.getDefaultInstance()) return this;
        if (other.hasProps()) {
          mergeProps(other.getProps());
        }
        if (other.hasDeploy()) {
          mergeDeploy(other.getDeploy());
        }
        if (other.hasPath()) {
          bitField0_ |= 0x00000004;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasSupervisor()) {
          mergeSupervisor(other.getSupervisor());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasProps()) {
          
          return false;
        }
        if (!hasDeploy()) {
          
          return false;
        }
        if (!hasPath()) {
          
          return false;
        }
        if (!hasSupervisor()) {
          
          return false;
        }
        if (!getProps().isInitialized()) {
          
          return false;
        }
        if (!getDeploy().isInitialized()) {
          
          return false;
        }
        if (!getSupervisor().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.DaemonMsgCreateData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.DaemonMsgCreateData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .PropsData props = 1;
      private akka.remote.WireFormats.PropsData props_ = akka.remote.WireFormats.PropsData.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.PropsData, akka.remote.WireFormats.PropsData.Builder, akka.remote.WireFormats.PropsDataOrBuilder> propsBuilder_;
      /**
       * <code>required .PropsData props = 1;</code>
       */
      public boolean hasProps() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .PropsData props = 1;</code>
       */
      public akka.remote.WireFormats.PropsData getProps() {
        if (propsBuilder_ == null) {
          return props_;
        } else {
          return propsBuilder_.getMessage();
        }
      }
      /**
       * <code>required .PropsData props = 1;</code>
       */
      public Builder setProps(akka.remote.WireFormats.PropsData value) {
        if (propsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          props_ = value;
          onChanged();
        } else {
          propsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .PropsData props = 1;</code>
       */
      public Builder setProps(
          akka.remote.WireFormats.PropsData.Builder builderForValue) {
        if (propsBuilder_ == null) {
          props_ = builderForValue.build();
          onChanged();
        } else {
          propsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .PropsData props = 1;</code>
       */
      public Builder mergeProps(akka.remote.WireFormats.PropsData value) {
        if (propsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              props_ != akka.remote.WireFormats.PropsData.getDefaultInstance()) {
            props_ =
              akka.remote.WireFormats.PropsData.newBuilder(props_).mergeFrom(value).buildPartial();
          } else {
            props_ = value;
          }
          onChanged();
        } else {
          propsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .PropsData props = 1;</code>
       */
      public Builder clearProps() {
        if (propsBuilder_ == null) {
          props_ = akka.remote.WireFormats.PropsData.getDefaultInstance();
          onChanged();
        } else {
          propsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .PropsData props = 1;</code>
       */
      public akka.remote.WireFormats.PropsData.Builder getPropsBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPropsFieldBuilder().getBuilder();
      }
      /**
       * <code>required .PropsData props = 1;</code>
       */
      public akka.remote.WireFormats.PropsDataOrBuilder getPropsOrBuilder() {
        if (propsBuilder_ != null) {
          return propsBuilder_.getMessageOrBuilder();
        } else {
          return props_;
        }
      }
      /**
       * <code>required .PropsData props = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.PropsData, akka.remote.WireFormats.PropsData.Builder, akka.remote.WireFormats.PropsDataOrBuilder> 
          getPropsFieldBuilder() {
        if (propsBuilder_ == null) {
          propsBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.PropsData, akka.remote.WireFormats.PropsData.Builder, akka.remote.WireFormats.PropsDataOrBuilder>(
                  props_,
                  getParentForChildren(),
                  isClean());
          props_ = null;
        }
        return propsBuilder_;
      }

      // required .DeployData deploy = 2;
      private akka.remote.WireFormats.DeployData deploy_ = akka.remote.WireFormats.DeployData.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.DeployData, akka.remote.WireFormats.DeployData.Builder, akka.remote.WireFormats.DeployDataOrBuilder> deployBuilder_;
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public boolean hasDeploy() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public akka.remote.WireFormats.DeployData getDeploy() {
        if (deployBuilder_ == null) {
          return deploy_;
        } else {
          return deployBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public Builder setDeploy(akka.remote.WireFormats.DeployData value) {
        if (deployBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          deploy_ = value;
          onChanged();
        } else {
          deployBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public Builder setDeploy(
          akka.remote.WireFormats.DeployData.Builder builderForValue) {
        if (deployBuilder_ == null) {
          deploy_ = builderForValue.build();
          onChanged();
        } else {
          deployBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public Builder mergeDeploy(akka.remote.WireFormats.DeployData value) {
        if (deployBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              deploy_ != akka.remote.WireFormats.DeployData.getDefaultInstance()) {
            deploy_ =
              akka.remote.WireFormats.DeployData.newBuilder(deploy_).mergeFrom(value).buildPartial();
          } else {
            deploy_ = value;
          }
          onChanged();
        } else {
          deployBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public Builder clearDeploy() {
        if (deployBuilder_ == null) {
          deploy_ = akka.remote.WireFormats.DeployData.getDefaultInstance();
          onChanged();
        } else {
          deployBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public akka.remote.WireFormats.DeployData.Builder getDeployBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getDeployFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public akka.remote.WireFormats.DeployDataOrBuilder getDeployOrBuilder() {
        if (deployBuilder_ != null) {
          return deployBuilder_.getMessageOrBuilder();
        } else {
          return deploy_;
        }
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.DeployData, akka.remote.WireFormats.DeployData.Builder, akka.remote.WireFormats.DeployDataOrBuilder> 
          getDeployFieldBuilder() {
        if (deployBuilder_ == null) {
          deployBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.DeployData, akka.remote.WireFormats.DeployData.Builder, akka.remote.WireFormats.DeployDataOrBuilder>(
                  deploy_,
                  getParentForChildren(),
                  isClean());
          deploy_ = null;
        }
        return deployBuilder_;
      }

      // required string path = 3;
      private java.lang.Object path_ = "";
      /**
       * <code>required string path = 3;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required string path = 3;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          path_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string path = 3;</code>
       */
      public akka.protobuf.ByteString
          getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string path = 3;</code>
       */
      public Builder setPath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string path = 3;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000004);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       * <code>required string path = 3;</code>
       */
      public Builder setPathBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        path_ = value;
        onChanged();
        return this;
      }

      // required .ActorRefData supervisor = 4;
      private akka.remote.WireFormats.ActorRefData supervisor_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder> supervisorBuilder_;
      /**
       * <code>required .ActorRefData supervisor = 4;</code>
       */
      public boolean hasSupervisor() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required .ActorRefData supervisor = 4;</code>
       */
      public akka.remote.WireFormats.ActorRefData getSupervisor() {
        if (supervisorBuilder_ == null) {
          return supervisor_;
        } else {
          return supervisorBuilder_.getMessage();
        }
      }
      /**
       * <code>required .ActorRefData supervisor = 4;</code>
       */
      public Builder setSupervisor(akka.remote.WireFormats.ActorRefData value) {
        if (supervisorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          supervisor_ = value;
          onChanged();
        } else {
          supervisorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>required .ActorRefData supervisor = 4;</code>
       */
      public Builder setSupervisor(
          akka.remote.WireFormats.ActorRefData.Builder builderForValue) {
        if (supervisorBuilder_ == null) {
          supervisor_ = builderForValue.build();
          onChanged();
        } else {
          supervisorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>required .ActorRefData supervisor = 4;</code>
       */
      public Builder mergeSupervisor(akka.remote.WireFormats.ActorRefData value) {
        if (supervisorBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              supervisor_ != akka.remote.WireFormats.ActorRefData.getDefaultInstance()) {
            supervisor_ =
              akka.remote.WireFormats.ActorRefData.newBuilder(supervisor_).mergeFrom(value).buildPartial();
          } else {
            supervisor_ = value;
          }
          onChanged();
        } else {
          supervisorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>required .ActorRefData supervisor = 4;</code>
       */
      public Builder clearSupervisor() {
        if (supervisorBuilder_ == null) {
          supervisor_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
          onChanged();
        } else {
          supervisorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * <code>required .ActorRefData supervisor = 4;</code>
       */
      public akka.remote.WireFormats.ActorRefData.Builder getSupervisorBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getSupervisorFieldBuilder().getBuilder();
      }
      /**
       * <code>required .ActorRefData supervisor = 4;</code>
       */
      public akka.remote.WireFormats.ActorRefDataOrBuilder getSupervisorOrBuilder() {
        if (supervisorBuilder_ != null) {
          return supervisorBuilder_.getMessageOrBuilder();
        } else {
          return supervisor_;
        }
      }
      /**
       * <code>required .ActorRefData supervisor = 4;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder> 
          getSupervisorFieldBuilder() {
        if (supervisorBuilder_ == null) {
          supervisorBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder>(
                  supervisor_,
                  getParentForChildren(),
                  isClean());
          supervisor_ = null;
        }
        return supervisorBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:DaemonMsgCreateData)
    }

    static {
      defaultInstance = new DaemonMsgCreateData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:DaemonMsgCreateData)
  }

  public interface PropsDataOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .DeployData deploy = 2;
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    boolean hasDeploy();
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    akka.remote.WireFormats.DeployData getDeploy();
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    akka.remote.WireFormats.DeployDataOrBuilder getDeployOrBuilder();

    // required string clazz = 3;
    /**
     * <code>required string clazz = 3;</code>
     */
    boolean hasClazz();
    /**
     * <code>required string clazz = 3;</code>
     */
    java.lang.String getClazz();
    /**
     * <code>required string clazz = 3;</code>
     */
    akka.protobuf.ByteString
        getClazzBytes();

    // repeated bytes args = 4;
    /**
     * <code>repeated bytes args = 4;</code>
     */
    java.util.List<akka.protobuf.ByteString> getArgsList();
    /**
     * <code>repeated bytes args = 4;</code>
     */
    int getArgsCount();
    /**
     * <code>repeated bytes args = 4;</code>
     */
    akka.protobuf.ByteString getArgs(int index);

    // repeated string classes = 5;
    /**
     * <code>repeated string classes = 5;</code>
     */
    java.util.List<java.lang.String>
    getClassesList();
    /**
     * <code>repeated string classes = 5;</code>
     */
    int getClassesCount();
    /**
     * <code>repeated string classes = 5;</code>
     */
    java.lang.String getClasses(int index);
    /**
     * <code>repeated string classes = 5;</code>
     */
    akka.protobuf.ByteString
        getClassesBytes(int index);
  }
  /**
   * Protobuf type {@code PropsData}
   *
   * <pre>
   **
   * Serialization of akka.actor.Props
   * </pre>
   */
  public static final class PropsData extends
      akka.protobuf.GeneratedMessage
      implements PropsDataOrBuilder {
    // Use PropsData.newBuilder() to construct.
    private PropsData(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PropsData(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PropsData defaultInstance;
    public static PropsData getDefaultInstance() {
      return defaultInstance;
    }

    public PropsData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PropsData(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 18: {
              akka.remote.WireFormats.DeployData.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = deploy_.toBuilder();
              }
              deploy_ = input.readMessage(akka.remote.WireFormats.DeployData.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(deploy_);
                deploy_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 26: {
              bitField0_ |= 0x00000002;
              clazz_ = input.readBytes();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                args_ = new java.util.ArrayList<akka.protobuf.ByteString>();
                mutable_bitField0_ |= 0x00000004;
              }
              args_.add(input.readBytes());
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                classes_ = new akka.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              classes_.add(input.readBytes());
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          args_ = java.util.Collections.unmodifiableList(args_);
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          classes_ = new akka.protobuf.UnmodifiableLazyStringList(classes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_PropsData_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_PropsData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.PropsData.class, akka.remote.WireFormats.PropsData.Builder.class);
    }

    public static akka.protobuf.Parser<PropsData> PARSER =
        new akka.protobuf.AbstractParser<PropsData>() {
      public PropsData parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new PropsData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<PropsData> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .DeployData deploy = 2;
    public static final int DEPLOY_FIELD_NUMBER = 2;
    private akka.remote.WireFormats.DeployData deploy_;
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    public boolean hasDeploy() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    public akka.remote.WireFormats.DeployData getDeploy() {
      return deploy_;
    }
    /**
     * <code>required .DeployData deploy = 2;</code>
     */
    public akka.remote.WireFormats.DeployDataOrBuilder getDeployOrBuilder() {
      return deploy_;
    }

    // required string clazz = 3;
    public static final int CLAZZ_FIELD_NUMBER = 3;
    private java.lang.Object clazz_;
    /**
     * <code>required string clazz = 3;</code>
     */
    public boolean hasClazz() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string clazz = 3;</code>
     */
    public java.lang.String getClazz() {
      java.lang.Object ref = clazz_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clazz_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string clazz = 3;</code>
     */
    public akka.protobuf.ByteString
        getClazzBytes() {
      java.lang.Object ref = clazz_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clazz_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // repeated bytes args = 4;
    public static final int ARGS_FIELD_NUMBER = 4;
    private java.util.List<akka.protobuf.ByteString> args_;
    /**
     * <code>repeated bytes args = 4;</code>
     */
    public java.util.List<akka.protobuf.ByteString>
        getArgsList() {
      return args_;
    }
    /**
     * <code>repeated bytes args = 4;</code>
     */
    public int getArgsCount() {
      return args_.size();
    }
    /**
     * <code>repeated bytes args = 4;</code>
     */
    public akka.protobuf.ByteString getArgs(int index) {
      return args_.get(index);
    }

    // repeated string classes = 5;
    public static final int CLASSES_FIELD_NUMBER = 5;
    private akka.protobuf.LazyStringList classes_;
    /**
     * <code>repeated string classes = 5;</code>
     */
    public java.util.List<java.lang.String>
        getClassesList() {
      return classes_;
    }
    /**
     * <code>repeated string classes = 5;</code>
     */
    public int getClassesCount() {
      return classes_.size();
    }
    /**
     * <code>repeated string classes = 5;</code>
     */
    public java.lang.String getClasses(int index) {
      return classes_.get(index);
    }
    /**
     * <code>repeated string classes = 5;</code>
     */
    public akka.protobuf.ByteString
        getClassesBytes(int index) {
      return classes_.getByteString(index);
    }

    private void initFields() {
      deploy_ = akka.remote.WireFormats.DeployData.getDefaultInstance();
      clazz_ = "";
      args_ = java.util.Collections.emptyList();
      classes_ = akka.protobuf.LazyStringArrayList.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasDeploy()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasClazz()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getDeploy().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(2, deploy_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(3, getClazzBytes());
      }
      for (int i = 0; i < args_.size(); i++) {
        output.writeBytes(4, args_.get(i));
      }
      for (int i = 0; i < classes_.size(); i++) {
        output.writeBytes(5, classes_.getByteString(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, deploy_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(3, getClazzBytes());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < args_.size(); i++) {
          dataSize += akka.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(args_.get(i));
        }
        size += dataSize;
        size += 1 * getArgsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < classes_.size(); i++) {
          dataSize += akka.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(classes_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getClassesList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.PropsData parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.PropsData parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.PropsData parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.PropsData parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.PropsData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.PropsData parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.PropsData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.PropsData parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.PropsData parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.PropsData parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.PropsData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PropsData}
     *
     * <pre>
     **
     * Serialization of akka.actor.Props
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.PropsDataOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_PropsData_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_PropsData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.PropsData.class, akka.remote.WireFormats.PropsData.Builder.class);
      }

      // Construct using akka.remote.WireFormats.PropsData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDeployFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (deployBuilder_ == null) {
          deploy_ = akka.remote.WireFormats.DeployData.getDefaultInstance();
        } else {
          deployBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        clazz_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        args_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        classes_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_PropsData_descriptor;
      }

      public akka.remote.WireFormats.PropsData getDefaultInstanceForType() {
        return akka.remote.WireFormats.PropsData.getDefaultInstance();
      }

      public akka.remote.WireFormats.PropsData build() {
        akka.remote.WireFormats.PropsData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.PropsData buildPartial() {
        akka.remote.WireFormats.PropsData result = new akka.remote.WireFormats.PropsData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (deployBuilder_ == null) {
          result.deploy_ = deploy_;
        } else {
          result.deploy_ = deployBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.clazz_ = clazz_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          args_ = java.util.Collections.unmodifiableList(args_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.args_ = args_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          classes_ = new akka.protobuf.UnmodifiableLazyStringList(
              classes_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.classes_ = classes_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.PropsData) {
          return mergeFrom((akka.remote.WireFormats.PropsData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.PropsData other) {
        if (other == akka.remote.WireFormats.PropsData.getDefaultInstance()) return this;
        if (other.hasDeploy()) {
          mergeDeploy(other.getDeploy());
        }
        if (other.hasClazz()) {
          bitField0_ |= 0x00000002;
          clazz_ = other.clazz_;
          onChanged();
        }
        if (!other.args_.isEmpty()) {
          if (args_.isEmpty()) {
            args_ = other.args_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureArgsIsMutable();
            args_.addAll(other.args_);
          }
          onChanged();
        }
        if (!other.classes_.isEmpty()) {
          if (classes_.isEmpty()) {
            classes_ = other.classes_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureClassesIsMutable();
            classes_.addAll(other.classes_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasDeploy()) {
          
          return false;
        }
        if (!hasClazz()) {
          
          return false;
        }
        if (!getDeploy().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.PropsData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.PropsData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .DeployData deploy = 2;
      private akka.remote.WireFormats.DeployData deploy_ = akka.remote.WireFormats.DeployData.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.DeployData, akka.remote.WireFormats.DeployData.Builder, akka.remote.WireFormats.DeployDataOrBuilder> deployBuilder_;
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public boolean hasDeploy() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public akka.remote.WireFormats.DeployData getDeploy() {
        if (deployBuilder_ == null) {
          return deploy_;
        } else {
          return deployBuilder_.getMessage();
        }
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public Builder setDeploy(akka.remote.WireFormats.DeployData value) {
        if (deployBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          deploy_ = value;
          onChanged();
        } else {
          deployBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public Builder setDeploy(
          akka.remote.WireFormats.DeployData.Builder builderForValue) {
        if (deployBuilder_ == null) {
          deploy_ = builderForValue.build();
          onChanged();
        } else {
          deployBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public Builder mergeDeploy(akka.remote.WireFormats.DeployData value) {
        if (deployBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              deploy_ != akka.remote.WireFormats.DeployData.getDefaultInstance()) {
            deploy_ =
              akka.remote.WireFormats.DeployData.newBuilder(deploy_).mergeFrom(value).buildPartial();
          } else {
            deploy_ = value;
          }
          onChanged();
        } else {
          deployBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public Builder clearDeploy() {
        if (deployBuilder_ == null) {
          deploy_ = akka.remote.WireFormats.DeployData.getDefaultInstance();
          onChanged();
        } else {
          deployBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public akka.remote.WireFormats.DeployData.Builder getDeployBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getDeployFieldBuilder().getBuilder();
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      public akka.remote.WireFormats.DeployDataOrBuilder getDeployOrBuilder() {
        if (deployBuilder_ != null) {
          return deployBuilder_.getMessageOrBuilder();
        } else {
          return deploy_;
        }
      }
      /**
       * <code>required .DeployData deploy = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.DeployData, akka.remote.WireFormats.DeployData.Builder, akka.remote.WireFormats.DeployDataOrBuilder> 
          getDeployFieldBuilder() {
        if (deployBuilder_ == null) {
          deployBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.DeployData, akka.remote.WireFormats.DeployData.Builder, akka.remote.WireFormats.DeployDataOrBuilder>(
                  deploy_,
                  getParentForChildren(),
                  isClean());
          deploy_ = null;
        }
        return deployBuilder_;
      }

      // required string clazz = 3;
      private java.lang.Object clazz_ = "";
      /**
       * <code>required string clazz = 3;</code>
       */
      public boolean hasClazz() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string clazz = 3;</code>
       */
      public java.lang.String getClazz() {
        java.lang.Object ref = clazz_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          clazz_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string clazz = 3;</code>
       */
      public akka.protobuf.ByteString
          getClazzBytes() {
        java.lang.Object ref = clazz_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clazz_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string clazz = 3;</code>
       */
      public Builder setClazz(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clazz_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string clazz = 3;</code>
       */
      public Builder clearClazz() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clazz_ = getDefaultInstance().getClazz();
        onChanged();
        return this;
      }
      /**
       * <code>required string clazz = 3;</code>
       */
      public Builder setClazzBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clazz_ = value;
        onChanged();
        return this;
      }

      // repeated bytes args = 4;
      private java.util.List<akka.protobuf.ByteString> args_ = java.util.Collections.emptyList();
      private void ensureArgsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          args_ = new java.util.ArrayList<akka.protobuf.ByteString>(args_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated bytes args = 4;</code>
       */
      public java.util.List<akka.protobuf.ByteString>
          getArgsList() {
        return java.util.Collections.unmodifiableList(args_);
      }
      /**
       * <code>repeated bytes args = 4;</code>
       */
      public int getArgsCount() {
        return args_.size();
      }
      /**
       * <code>repeated bytes args = 4;</code>
       */
      public akka.protobuf.ByteString getArgs(int index) {
        return args_.get(index);
      }
      /**
       * <code>repeated bytes args = 4;</code>
       */
      public Builder setArgs(
          int index, akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureArgsIsMutable();
        args_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes args = 4;</code>
       */
      public Builder addArgs(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureArgsIsMutable();
        args_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes args = 4;</code>
       */
      public Builder addAllArgs(
          java.lang.Iterable<? extends akka.protobuf.ByteString> values) {
        ensureArgsIsMutable();
        super.addAll(values, args_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes args = 4;</code>
       */
      public Builder clearArgs() {
        args_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      // repeated string classes = 5;
      private akka.protobuf.LazyStringList classes_ = akka.protobuf.LazyStringArrayList.EMPTY;
      private void ensureClassesIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          classes_ = new akka.protobuf.LazyStringArrayList(classes_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated string classes = 5;</code>
       */
      public java.util.List<java.lang.String>
          getClassesList() {
        return java.util.Collections.unmodifiableList(classes_);
      }
      /**
       * <code>repeated string classes = 5;</code>
       */
      public int getClassesCount() {
        return classes_.size();
      }
      /**
       * <code>repeated string classes = 5;</code>
       */
      public java.lang.String getClasses(int index) {
        return classes_.get(index);
      }
      /**
       * <code>repeated string classes = 5;</code>
       */
      public akka.protobuf.ByteString
          getClassesBytes(int index) {
        return classes_.getByteString(index);
      }
      /**
       * <code>repeated string classes = 5;</code>
       */
      public Builder setClasses(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureClassesIsMutable();
        classes_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string classes = 5;</code>
       */
      public Builder addClasses(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureClassesIsMutable();
        classes_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string classes = 5;</code>
       */
      public Builder addAllClasses(
          java.lang.Iterable<java.lang.String> values) {
        ensureClassesIsMutable();
        super.addAll(values, classes_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string classes = 5;</code>
       */
      public Builder clearClasses() {
        classes_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string classes = 5;</code>
       */
      public Builder addClassesBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureClassesIsMutable();
        classes_.add(value);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PropsData)
    }

    static {
      defaultInstance = new PropsData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:PropsData)
  }

  public interface DeployDataOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string path = 1;
    /**
     * <code>required string path = 1;</code>
     */
    boolean hasPath();
    /**
     * <code>required string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     * <code>required string path = 1;</code>
     */
    akka.protobuf.ByteString
        getPathBytes();

    // optional bytes config = 2;
    /**
     * <code>optional bytes config = 2;</code>
     */
    boolean hasConfig();
    /**
     * <code>optional bytes config = 2;</code>
     */
    akka.protobuf.ByteString getConfig();

    // optional bytes routerConfig = 3;
    /**
     * <code>optional bytes routerConfig = 3;</code>
     */
    boolean hasRouterConfig();
    /**
     * <code>optional bytes routerConfig = 3;</code>
     */
    akka.protobuf.ByteString getRouterConfig();

    // optional bytes scope = 4;
    /**
     * <code>optional bytes scope = 4;</code>
     */
    boolean hasScope();
    /**
     * <code>optional bytes scope = 4;</code>
     */
    akka.protobuf.ByteString getScope();

    // optional string dispatcher = 5;
    /**
     * <code>optional string dispatcher = 5;</code>
     */
    boolean hasDispatcher();
    /**
     * <code>optional string dispatcher = 5;</code>
     */
    java.lang.String getDispatcher();
    /**
     * <code>optional string dispatcher = 5;</code>
     */
    akka.protobuf.ByteString
        getDispatcherBytes();
  }
  /**
   * Protobuf type {@code DeployData}
   *
   * <pre>
   **
   * Serialization of akka.actor.Deploy
   * </pre>
   */
  public static final class DeployData extends
      akka.protobuf.GeneratedMessage
      implements DeployDataOrBuilder {
    // Use DeployData.newBuilder() to construct.
    private DeployData(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DeployData(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final DeployData defaultInstance;
    public static DeployData getDefaultInstance() {
      return defaultInstance;
    }

    public DeployData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private DeployData(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              path_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              config_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              routerConfig_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              scope_ = input.readBytes();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000010;
              dispatcher_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_DeployData_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_DeployData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.DeployData.class, akka.remote.WireFormats.DeployData.Builder.class);
    }

    public static akka.protobuf.Parser<DeployData> PARSER =
        new akka.protobuf.AbstractParser<DeployData>() {
      public DeployData parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new DeployData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<DeployData> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string path = 1;
    public static final int PATH_FIELD_NUMBER = 1;
    private java.lang.Object path_;
    /**
     * <code>required string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string path = 1;</code>
     */
    public akka.protobuf.ByteString
        getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // optional bytes config = 2;
    public static final int CONFIG_FIELD_NUMBER = 2;
    private akka.protobuf.ByteString config_;
    /**
     * <code>optional bytes config = 2;</code>
     */
    public boolean hasConfig() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional bytes config = 2;</code>
     */
    public akka.protobuf.ByteString getConfig() {
      return config_;
    }

    // optional bytes routerConfig = 3;
    public static final int ROUTERCONFIG_FIELD_NUMBER = 3;
    private akka.protobuf.ByteString routerConfig_;
    /**
     * <code>optional bytes routerConfig = 3;</code>
     */
    public boolean hasRouterConfig() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes routerConfig = 3;</code>
     */
    public akka.protobuf.ByteString getRouterConfig() {
      return routerConfig_;
    }

    // optional bytes scope = 4;
    public static final int SCOPE_FIELD_NUMBER = 4;
    private akka.protobuf.ByteString scope_;
    /**
     * <code>optional bytes scope = 4;</code>
     */
    public boolean hasScope() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional bytes scope = 4;</code>
     */
    public akka.protobuf.ByteString getScope() {
      return scope_;
    }

    // optional string dispatcher = 5;
    public static final int DISPATCHER_FIELD_NUMBER = 5;
    private java.lang.Object dispatcher_;
    /**
     * <code>optional string dispatcher = 5;</code>
     */
    public boolean hasDispatcher() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional string dispatcher = 5;</code>
     */
    public java.lang.String getDispatcher() {
      java.lang.Object ref = dispatcher_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          dispatcher_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string dispatcher = 5;</code>
     */
    public akka.protobuf.ByteString
        getDispatcherBytes() {
      java.lang.Object ref = dispatcher_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        dispatcher_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      path_ = "";
      config_ = akka.protobuf.ByteString.EMPTY;
      routerConfig_ = akka.protobuf.ByteString.EMPTY;
      scope_ = akka.protobuf.ByteString.EMPTY;
      dispatcher_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasPath()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getPathBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, config_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, routerConfig_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, scope_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getDispatcherBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getPathBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(2, config_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(3, routerConfig_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(4, scope_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(5, getDispatcherBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.DeployData parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.DeployData parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.DeployData parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.DeployData parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.DeployData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.DeployData parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.DeployData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.DeployData parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.DeployData parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.DeployData parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.DeployData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code DeployData}
     *
     * <pre>
     **
     * Serialization of akka.actor.Deploy
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.DeployDataOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_DeployData_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_DeployData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.DeployData.class, akka.remote.WireFormats.DeployData.Builder.class);
      }

      // Construct using akka.remote.WireFormats.DeployData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        config_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        routerConfig_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        scope_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        dispatcher_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_DeployData_descriptor;
      }

      public akka.remote.WireFormats.DeployData getDefaultInstanceForType() {
        return akka.remote.WireFormats.DeployData.getDefaultInstance();
      }

      public akka.remote.WireFormats.DeployData build() {
        akka.remote.WireFormats.DeployData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.DeployData buildPartial() {
        akka.remote.WireFormats.DeployData result = new akka.remote.WireFormats.DeployData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.config_ = config_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.routerConfig_ = routerConfig_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.scope_ = scope_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.dispatcher_ = dispatcher_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.DeployData) {
          return mergeFrom((akka.remote.WireFormats.DeployData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.DeployData other) {
        if (other == akka.remote.WireFormats.DeployData.getDefaultInstance()) return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasConfig()) {
          setConfig(other.getConfig());
        }
        if (other.hasRouterConfig()) {
          setRouterConfig(other.getRouterConfig());
        }
        if (other.hasScope()) {
          setScope(other.getScope());
        }
        if (other.hasDispatcher()) {
          bitField0_ |= 0x00000010;
          dispatcher_ = other.dispatcher_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPath()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.DeployData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.DeployData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string path = 1;
      private java.lang.Object path_ = "";
      /**
       * <code>required string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          path_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string path = 1;</code>
       */
      public akka.protobuf.ByteString
          getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder setPath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder setPathBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      // optional bytes config = 2;
      private akka.protobuf.ByteString config_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes config = 2;</code>
       */
      public boolean hasConfig() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bytes config = 2;</code>
       */
      public akka.protobuf.ByteString getConfig() {
        return config_;
      }
      /**
       * <code>optional bytes config = 2;</code>
       */
      public Builder setConfig(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        config_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes config = 2;</code>
       */
      public Builder clearConfig() {
        bitField0_ = (bitField0_ & ~0x00000002);
        config_ = getDefaultInstance().getConfig();
        onChanged();
        return this;
      }

      // optional bytes routerConfig = 3;
      private akka.protobuf.ByteString routerConfig_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes routerConfig = 3;</code>
       */
      public boolean hasRouterConfig() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes routerConfig = 3;</code>
       */
      public akka.protobuf.ByteString getRouterConfig() {
        return routerConfig_;
      }
      /**
       * <code>optional bytes routerConfig = 3;</code>
       */
      public Builder setRouterConfig(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        routerConfig_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes routerConfig = 3;</code>
       */
      public Builder clearRouterConfig() {
        bitField0_ = (bitField0_ & ~0x00000004);
        routerConfig_ = getDefaultInstance().getRouterConfig();
        onChanged();
        return this;
      }

      // optional bytes scope = 4;
      private akka.protobuf.ByteString scope_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes scope = 4;</code>
       */
      public boolean hasScope() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional bytes scope = 4;</code>
       */
      public akka.protobuf.ByteString getScope() {
        return scope_;
      }
      /**
       * <code>optional bytes scope = 4;</code>
       */
      public Builder setScope(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        scope_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes scope = 4;</code>
       */
      public Builder clearScope() {
        bitField0_ = (bitField0_ & ~0x00000008);
        scope_ = getDefaultInstance().getScope();
        onChanged();
        return this;
      }

      // optional string dispatcher = 5;
      private java.lang.Object dispatcher_ = "";
      /**
       * <code>optional string dispatcher = 5;</code>
       */
      public boolean hasDispatcher() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional string dispatcher = 5;</code>
       */
      public java.lang.String getDispatcher() {
        java.lang.Object ref = dispatcher_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          dispatcher_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string dispatcher = 5;</code>
       */
      public akka.protobuf.ByteString
          getDispatcherBytes() {
        java.lang.Object ref = dispatcher_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dispatcher_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string dispatcher = 5;</code>
       */
      public Builder setDispatcher(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        dispatcher_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string dispatcher = 5;</code>
       */
      public Builder clearDispatcher() {
        bitField0_ = (bitField0_ & ~0x00000010);
        dispatcher_ = getDefaultInstance().getDispatcher();
        onChanged();
        return this;
      }
      /**
       * <code>optional string dispatcher = 5;</code>
       */
      public Builder setDispatcherBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        dispatcher_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DeployData)
    }

    static {
      defaultInstance = new DeployData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:DeployData)
  }

  public interface AkkaProtocolMessageOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // optional bytes payload = 1;
    /**
     * <code>optional bytes payload = 1;</code>
     */
    boolean hasPayload();
    /**
     * <code>optional bytes payload = 1;</code>
     */
    akka.protobuf.ByteString getPayload();

    // optional .AkkaControlMessage instruction = 2;
    /**
     * <code>optional .AkkaControlMessage instruction = 2;</code>
     */
    boolean hasInstruction();
    /**
     * <code>optional .AkkaControlMessage instruction = 2;</code>
     */
    akka.remote.WireFormats.AkkaControlMessage getInstruction();
    /**
     * <code>optional .AkkaControlMessage instruction = 2;</code>
     */
    akka.remote.WireFormats.AkkaControlMessageOrBuilder getInstructionOrBuilder();
  }
  /**
   * Protobuf type {@code AkkaProtocolMessage}
   *
   * <pre>
   **
   * Message format of Akka Protocol.
   * Message contains either a payload or an instruction.
   * </pre>
   */
  public static final class AkkaProtocolMessage extends
      akka.protobuf.GeneratedMessage
      implements AkkaProtocolMessageOrBuilder {
    // Use AkkaProtocolMessage.newBuilder() to construct.
    private AkkaProtocolMessage(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AkkaProtocolMessage(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final AkkaProtocolMessage defaultInstance;
    public static AkkaProtocolMessage getDefaultInstance() {
      return defaultInstance;
    }

    public AkkaProtocolMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private AkkaProtocolMessage(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              payload_ = input.readBytes();
              break;
            }
            case 18: {
              akka.remote.WireFormats.AkkaControlMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = instruction_.toBuilder();
              }
              instruction_ = input.readMessage(akka.remote.WireFormats.AkkaControlMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(instruction_);
                instruction_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_AkkaProtocolMessage_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_AkkaProtocolMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.AkkaProtocolMessage.class, akka.remote.WireFormats.AkkaProtocolMessage.Builder.class);
    }

    public static akka.protobuf.Parser<AkkaProtocolMessage> PARSER =
        new akka.protobuf.AbstractParser<AkkaProtocolMessage>() {
      public AkkaProtocolMessage parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new AkkaProtocolMessage(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<AkkaProtocolMessage> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional bytes payload = 1;
    public static final int PAYLOAD_FIELD_NUMBER = 1;
    private akka.protobuf.ByteString payload_;
    /**
     * <code>optional bytes payload = 1;</code>
     */
    public boolean hasPayload() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional bytes payload = 1;</code>
     */
    public akka.protobuf.ByteString getPayload() {
      return payload_;
    }

    // optional .AkkaControlMessage instruction = 2;
    public static final int INSTRUCTION_FIELD_NUMBER = 2;
    private akka.remote.WireFormats.AkkaControlMessage instruction_;
    /**
     * <code>optional .AkkaControlMessage instruction = 2;</code>
     */
    public boolean hasInstruction() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .AkkaControlMessage instruction = 2;</code>
     */
    public akka.remote.WireFormats.AkkaControlMessage getInstruction() {
      return instruction_;
    }
    /**
     * <code>optional .AkkaControlMessage instruction = 2;</code>
     */
    public akka.remote.WireFormats.AkkaControlMessageOrBuilder getInstructionOrBuilder() {
      return instruction_;
    }

    private void initFields() {
      payload_ = akka.protobuf.ByteString.EMPTY;
      instruction_ = akka.remote.WireFormats.AkkaControlMessage.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (hasInstruction()) {
        if (!getInstruction().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, payload_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, instruction_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, payload_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, instruction_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.AkkaProtocolMessage parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AkkaProtocolMessage parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaProtocolMessage parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AkkaProtocolMessage parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaProtocolMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AkkaProtocolMessage parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaProtocolMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.AkkaProtocolMessage parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaProtocolMessage parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AkkaProtocolMessage parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.AkkaProtocolMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AkkaProtocolMessage}
     *
     * <pre>
     **
     * Message format of Akka Protocol.
     * Message contains either a payload or an instruction.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.AkkaProtocolMessageOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_AkkaProtocolMessage_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_AkkaProtocolMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.AkkaProtocolMessage.class, akka.remote.WireFormats.AkkaProtocolMessage.Builder.class);
      }

      // Construct using akka.remote.WireFormats.AkkaProtocolMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getInstructionFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        payload_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (instructionBuilder_ == null) {
          instruction_ = akka.remote.WireFormats.AkkaControlMessage.getDefaultInstance();
        } else {
          instructionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_AkkaProtocolMessage_descriptor;
      }

      public akka.remote.WireFormats.AkkaProtocolMessage getDefaultInstanceForType() {
        return akka.remote.WireFormats.AkkaProtocolMessage.getDefaultInstance();
      }

      public akka.remote.WireFormats.AkkaProtocolMessage build() {
        akka.remote.WireFormats.AkkaProtocolMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.AkkaProtocolMessage buildPartial() {
        akka.remote.WireFormats.AkkaProtocolMessage result = new akka.remote.WireFormats.AkkaProtocolMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.payload_ = payload_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (instructionBuilder_ == null) {
          result.instruction_ = instruction_;
        } else {
          result.instruction_ = instructionBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.AkkaProtocolMessage) {
          return mergeFrom((akka.remote.WireFormats.AkkaProtocolMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.AkkaProtocolMessage other) {
        if (other == akka.remote.WireFormats.AkkaProtocolMessage.getDefaultInstance()) return this;
        if (other.hasPayload()) {
          setPayload(other.getPayload());
        }
        if (other.hasInstruction()) {
          mergeInstruction(other.getInstruction());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (hasInstruction()) {
          if (!getInstruction().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.AkkaProtocolMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.AkkaProtocolMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional bytes payload = 1;
      private akka.protobuf.ByteString payload_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes payload = 1;</code>
       */
      public boolean hasPayload() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional bytes payload = 1;</code>
       */
      public akka.protobuf.ByteString getPayload() {
        return payload_;
      }
      /**
       * <code>optional bytes payload = 1;</code>
       */
      public Builder setPayload(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        payload_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes payload = 1;</code>
       */
      public Builder clearPayload() {
        bitField0_ = (bitField0_ & ~0x00000001);
        payload_ = getDefaultInstance().getPayload();
        onChanged();
        return this;
      }

      // optional .AkkaControlMessage instruction = 2;
      private akka.remote.WireFormats.AkkaControlMessage instruction_ = akka.remote.WireFormats.AkkaControlMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.AkkaControlMessage, akka.remote.WireFormats.AkkaControlMessage.Builder, akka.remote.WireFormats.AkkaControlMessageOrBuilder> instructionBuilder_;
      /**
       * <code>optional .AkkaControlMessage instruction = 2;</code>
       */
      public boolean hasInstruction() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .AkkaControlMessage instruction = 2;</code>
       */
      public akka.remote.WireFormats.AkkaControlMessage getInstruction() {
        if (instructionBuilder_ == null) {
          return instruction_;
        } else {
          return instructionBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AkkaControlMessage instruction = 2;</code>
       */
      public Builder setInstruction(akka.remote.WireFormats.AkkaControlMessage value) {
        if (instructionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          instruction_ = value;
          onChanged();
        } else {
          instructionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .AkkaControlMessage instruction = 2;</code>
       */
      public Builder setInstruction(
          akka.remote.WireFormats.AkkaControlMessage.Builder builderForValue) {
        if (instructionBuilder_ == null) {
          instruction_ = builderForValue.build();
          onChanged();
        } else {
          instructionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .AkkaControlMessage instruction = 2;</code>
       */
      public Builder mergeInstruction(akka.remote.WireFormats.AkkaControlMessage value) {
        if (instructionBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              instruction_ != akka.remote.WireFormats.AkkaControlMessage.getDefaultInstance()) {
            instruction_ =
              akka.remote.WireFormats.AkkaControlMessage.newBuilder(instruction_).mergeFrom(value).buildPartial();
          } else {
            instruction_ = value;
          }
          onChanged();
        } else {
          instructionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .AkkaControlMessage instruction = 2;</code>
       */
      public Builder clearInstruction() {
        if (instructionBuilder_ == null) {
          instruction_ = akka.remote.WireFormats.AkkaControlMessage.getDefaultInstance();
          onChanged();
        } else {
          instructionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .AkkaControlMessage instruction = 2;</code>
       */
      public akka.remote.WireFormats.AkkaControlMessage.Builder getInstructionBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getInstructionFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AkkaControlMessage instruction = 2;</code>
       */
      public akka.remote.WireFormats.AkkaControlMessageOrBuilder getInstructionOrBuilder() {
        if (instructionBuilder_ != null) {
          return instructionBuilder_.getMessageOrBuilder();
        } else {
          return instruction_;
        }
      }
      /**
       * <code>optional .AkkaControlMessage instruction = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.AkkaControlMessage, akka.remote.WireFormats.AkkaControlMessage.Builder, akka.remote.WireFormats.AkkaControlMessageOrBuilder> 
          getInstructionFieldBuilder() {
        if (instructionBuilder_ == null) {
          instructionBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.AkkaControlMessage, akka.remote.WireFormats.AkkaControlMessage.Builder, akka.remote.WireFormats.AkkaControlMessageOrBuilder>(
                  instruction_,
                  getParentForChildren(),
                  isClean());
          instruction_ = null;
        }
        return instructionBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:AkkaProtocolMessage)
    }

    static {
      defaultInstance = new AkkaProtocolMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:AkkaProtocolMessage)
  }

  public interface AkkaControlMessageOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .CommandType commandType = 1;
    /**
     * <code>required .CommandType commandType = 1;</code>
     */
    boolean hasCommandType();
    /**
     * <code>required .CommandType commandType = 1;</code>
     */
    akka.remote.WireFormats.CommandType getCommandType();

    // optional .AkkaHandshakeInfo handshakeInfo = 2;
    /**
     * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
     */
    boolean hasHandshakeInfo();
    /**
     * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
     */
    akka.remote.WireFormats.AkkaHandshakeInfo getHandshakeInfo();
    /**
     * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
     */
    akka.remote.WireFormats.AkkaHandshakeInfoOrBuilder getHandshakeInfoOrBuilder();
  }
  /**
   * Protobuf type {@code AkkaControlMessage}
   *
   * <pre>
   **
   * Defines some control messages for the remoting
   * </pre>
   */
  public static final class AkkaControlMessage extends
      akka.protobuf.GeneratedMessage
      implements AkkaControlMessageOrBuilder {
    // Use AkkaControlMessage.newBuilder() to construct.
    private AkkaControlMessage(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AkkaControlMessage(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final AkkaControlMessage defaultInstance;
    public static AkkaControlMessage getDefaultInstance() {
      return defaultInstance;
    }

    public AkkaControlMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private AkkaControlMessage(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              akka.remote.WireFormats.CommandType value = akka.remote.WireFormats.CommandType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                commandType_ = value;
              }
              break;
            }
            case 18: {
              akka.remote.WireFormats.AkkaHandshakeInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = handshakeInfo_.toBuilder();
              }
              handshakeInfo_ = input.readMessage(akka.remote.WireFormats.AkkaHandshakeInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(handshakeInfo_);
                handshakeInfo_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_AkkaControlMessage_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_AkkaControlMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.AkkaControlMessage.class, akka.remote.WireFormats.AkkaControlMessage.Builder.class);
    }

    public static akka.protobuf.Parser<AkkaControlMessage> PARSER =
        new akka.protobuf.AbstractParser<AkkaControlMessage>() {
      public AkkaControlMessage parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new AkkaControlMessage(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<AkkaControlMessage> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .CommandType commandType = 1;
    public static final int COMMANDTYPE_FIELD_NUMBER = 1;
    private akka.remote.WireFormats.CommandType commandType_;
    /**
     * <code>required .CommandType commandType = 1;</code>
     */
    public boolean hasCommandType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .CommandType commandType = 1;</code>
     */
    public akka.remote.WireFormats.CommandType getCommandType() {
      return commandType_;
    }

    // optional .AkkaHandshakeInfo handshakeInfo = 2;
    public static final int HANDSHAKEINFO_FIELD_NUMBER = 2;
    private akka.remote.WireFormats.AkkaHandshakeInfo handshakeInfo_;
    /**
     * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
     */
    public boolean hasHandshakeInfo() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
     */
    public akka.remote.WireFormats.AkkaHandshakeInfo getHandshakeInfo() {
      return handshakeInfo_;
    }
    /**
     * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
     */
    public akka.remote.WireFormats.AkkaHandshakeInfoOrBuilder getHandshakeInfoOrBuilder() {
      return handshakeInfo_;
    }

    private void initFields() {
      commandType_ = akka.remote.WireFormats.CommandType.ASSOCIATE;
      handshakeInfo_ = akka.remote.WireFormats.AkkaHandshakeInfo.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasCommandType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasHandshakeInfo()) {
        if (!getHandshakeInfo().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, commandType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, handshakeInfo_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeEnumSize(1, commandType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, handshakeInfo_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.AkkaControlMessage parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AkkaControlMessage parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaControlMessage parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AkkaControlMessage parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaControlMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AkkaControlMessage parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaControlMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.AkkaControlMessage parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaControlMessage parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AkkaControlMessage parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.AkkaControlMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AkkaControlMessage}
     *
     * <pre>
     **
     * Defines some control messages for the remoting
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.AkkaControlMessageOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_AkkaControlMessage_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_AkkaControlMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.AkkaControlMessage.class, akka.remote.WireFormats.AkkaControlMessage.Builder.class);
      }

      // Construct using akka.remote.WireFormats.AkkaControlMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getHandshakeInfoFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        commandType_ = akka.remote.WireFormats.CommandType.ASSOCIATE;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (handshakeInfoBuilder_ == null) {
          handshakeInfo_ = akka.remote.WireFormats.AkkaHandshakeInfo.getDefaultInstance();
        } else {
          handshakeInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_AkkaControlMessage_descriptor;
      }

      public akka.remote.WireFormats.AkkaControlMessage getDefaultInstanceForType() {
        return akka.remote.WireFormats.AkkaControlMessage.getDefaultInstance();
      }

      public akka.remote.WireFormats.AkkaControlMessage build() {
        akka.remote.WireFormats.AkkaControlMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.AkkaControlMessage buildPartial() {
        akka.remote.WireFormats.AkkaControlMessage result = new akka.remote.WireFormats.AkkaControlMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.commandType_ = commandType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (handshakeInfoBuilder_ == null) {
          result.handshakeInfo_ = handshakeInfo_;
        } else {
          result.handshakeInfo_ = handshakeInfoBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.AkkaControlMessage) {
          return mergeFrom((akka.remote.WireFormats.AkkaControlMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.AkkaControlMessage other) {
        if (other == akka.remote.WireFormats.AkkaControlMessage.getDefaultInstance()) return this;
        if (other.hasCommandType()) {
          setCommandType(other.getCommandType());
        }
        if (other.hasHandshakeInfo()) {
          mergeHandshakeInfo(other.getHandshakeInfo());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasCommandType()) {
          
          return false;
        }
        if (hasHandshakeInfo()) {
          if (!getHandshakeInfo().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.AkkaControlMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.AkkaControlMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .CommandType commandType = 1;
      private akka.remote.WireFormats.CommandType commandType_ = akka.remote.WireFormats.CommandType.ASSOCIATE;
      /**
       * <code>required .CommandType commandType = 1;</code>
       */
      public boolean hasCommandType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .CommandType commandType = 1;</code>
       */
      public akka.remote.WireFormats.CommandType getCommandType() {
        return commandType_;
      }
      /**
       * <code>required .CommandType commandType = 1;</code>
       */
      public Builder setCommandType(akka.remote.WireFormats.CommandType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        commandType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .CommandType commandType = 1;</code>
       */
      public Builder clearCommandType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        commandType_ = akka.remote.WireFormats.CommandType.ASSOCIATE;
        onChanged();
        return this;
      }

      // optional .AkkaHandshakeInfo handshakeInfo = 2;
      private akka.remote.WireFormats.AkkaHandshakeInfo handshakeInfo_ = akka.remote.WireFormats.AkkaHandshakeInfo.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.AkkaHandshakeInfo, akka.remote.WireFormats.AkkaHandshakeInfo.Builder, akka.remote.WireFormats.AkkaHandshakeInfoOrBuilder> handshakeInfoBuilder_;
      /**
       * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
       */
      public boolean hasHandshakeInfo() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
       */
      public akka.remote.WireFormats.AkkaHandshakeInfo getHandshakeInfo() {
        if (handshakeInfoBuilder_ == null) {
          return handshakeInfo_;
        } else {
          return handshakeInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
       */
      public Builder setHandshakeInfo(akka.remote.WireFormats.AkkaHandshakeInfo value) {
        if (handshakeInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          handshakeInfo_ = value;
          onChanged();
        } else {
          handshakeInfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
       */
      public Builder setHandshakeInfo(
          akka.remote.WireFormats.AkkaHandshakeInfo.Builder builderForValue) {
        if (handshakeInfoBuilder_ == null) {
          handshakeInfo_ = builderForValue.build();
          onChanged();
        } else {
          handshakeInfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
       */
      public Builder mergeHandshakeInfo(akka.remote.WireFormats.AkkaHandshakeInfo value) {
        if (handshakeInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              handshakeInfo_ != akka.remote.WireFormats.AkkaHandshakeInfo.getDefaultInstance()) {
            handshakeInfo_ =
              akka.remote.WireFormats.AkkaHandshakeInfo.newBuilder(handshakeInfo_).mergeFrom(value).buildPartial();
          } else {
            handshakeInfo_ = value;
          }
          onChanged();
        } else {
          handshakeInfoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
       */
      public Builder clearHandshakeInfo() {
        if (handshakeInfoBuilder_ == null) {
          handshakeInfo_ = akka.remote.WireFormats.AkkaHandshakeInfo.getDefaultInstance();
          onChanged();
        } else {
          handshakeInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
       */
      public akka.remote.WireFormats.AkkaHandshakeInfo.Builder getHandshakeInfoBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getHandshakeInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
       */
      public akka.remote.WireFormats.AkkaHandshakeInfoOrBuilder getHandshakeInfoOrBuilder() {
        if (handshakeInfoBuilder_ != null) {
          return handshakeInfoBuilder_.getMessageOrBuilder();
        } else {
          return handshakeInfo_;
        }
      }
      /**
       * <code>optional .AkkaHandshakeInfo handshakeInfo = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.AkkaHandshakeInfo, akka.remote.WireFormats.AkkaHandshakeInfo.Builder, akka.remote.WireFormats.AkkaHandshakeInfoOrBuilder> 
          getHandshakeInfoFieldBuilder() {
        if (handshakeInfoBuilder_ == null) {
          handshakeInfoBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.AkkaHandshakeInfo, akka.remote.WireFormats.AkkaHandshakeInfo.Builder, akka.remote.WireFormats.AkkaHandshakeInfoOrBuilder>(
                  handshakeInfo_,
                  getParentForChildren(),
                  isClean());
          handshakeInfo_ = null;
        }
        return handshakeInfoBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:AkkaControlMessage)
    }

    static {
      defaultInstance = new AkkaControlMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:AkkaControlMessage)
  }

  public interface AkkaHandshakeInfoOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .AddressData origin = 1;
    /**
     * <code>required .AddressData origin = 1;</code>
     */
    boolean hasOrigin();
    /**
     * <code>required .AddressData origin = 1;</code>
     */
    akka.remote.WireFormats.AddressData getOrigin();
    /**
     * <code>required .AddressData origin = 1;</code>
     */
    akka.remote.WireFormats.AddressDataOrBuilder getOriginOrBuilder();

    // required fixed64 uid = 2;
    /**
     * <code>required fixed64 uid = 2;</code>
     */
    boolean hasUid();
    /**
     * <code>required fixed64 uid = 2;</code>
     */
    long getUid();

    // optional string cookie = 3;
    /**
     * <code>optional string cookie = 3;</code>
     */
    boolean hasCookie();
    /**
     * <code>optional string cookie = 3;</code>
     */
    java.lang.String getCookie();
    /**
     * <code>optional string cookie = 3;</code>
     */
    akka.protobuf.ByteString
        getCookieBytes();
  }
  /**
   * Protobuf type {@code AkkaHandshakeInfo}
   */
  public static final class AkkaHandshakeInfo extends
      akka.protobuf.GeneratedMessage
      implements AkkaHandshakeInfoOrBuilder {
    // Use AkkaHandshakeInfo.newBuilder() to construct.
    private AkkaHandshakeInfo(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AkkaHandshakeInfo(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final AkkaHandshakeInfo defaultInstance;
    public static AkkaHandshakeInfo getDefaultInstance() {
      return defaultInstance;
    }

    public AkkaHandshakeInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private AkkaHandshakeInfo(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.remote.WireFormats.AddressData.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = origin_.toBuilder();
              }
              origin_ = input.readMessage(akka.remote.WireFormats.AddressData.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(origin_);
                origin_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 17: {
              bitField0_ |= 0x00000002;
              uid_ = input.readFixed64();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              cookie_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_AkkaHandshakeInfo_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_AkkaHandshakeInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.AkkaHandshakeInfo.class, akka.remote.WireFormats.AkkaHandshakeInfo.Builder.class);
    }

    public static akka.protobuf.Parser<AkkaHandshakeInfo> PARSER =
        new akka.protobuf.AbstractParser<AkkaHandshakeInfo>() {
      public AkkaHandshakeInfo parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new AkkaHandshakeInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<AkkaHandshakeInfo> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .AddressData origin = 1;
    public static final int ORIGIN_FIELD_NUMBER = 1;
    private akka.remote.WireFormats.AddressData origin_;
    /**
     * <code>required .AddressData origin = 1;</code>
     */
    public boolean hasOrigin() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .AddressData origin = 1;</code>
     */
    public akka.remote.WireFormats.AddressData getOrigin() {
      return origin_;
    }
    /**
     * <code>required .AddressData origin = 1;</code>
     */
    public akka.remote.WireFormats.AddressDataOrBuilder getOriginOrBuilder() {
      return origin_;
    }

    // required fixed64 uid = 2;
    public static final int UID_FIELD_NUMBER = 2;
    private long uid_;
    /**
     * <code>required fixed64 uid = 2;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required fixed64 uid = 2;</code>
     */
    public long getUid() {
      return uid_;
    }

    // optional string cookie = 3;
    public static final int COOKIE_FIELD_NUMBER = 3;
    private java.lang.Object cookie_;
    /**
     * <code>optional string cookie = 3;</code>
     */
    public boolean hasCookie() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string cookie = 3;</code>
     */
    public java.lang.String getCookie() {
      java.lang.Object ref = cookie_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          cookie_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string cookie = 3;</code>
     */
    public akka.protobuf.ByteString
        getCookieBytes() {
      java.lang.Object ref = cookie_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cookie_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      origin_ = akka.remote.WireFormats.AddressData.getDefaultInstance();
      uid_ = 0L;
      cookie_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasOrigin()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasUid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getOrigin().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, origin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFixed64(2, uid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getCookieBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, origin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeFixed64Size(2, uid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(3, getCookieBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.AkkaHandshakeInfo parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AkkaHandshakeInfo parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaHandshakeInfo parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AkkaHandshakeInfo parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaHandshakeInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AkkaHandshakeInfo parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaHandshakeInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.AkkaHandshakeInfo parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AkkaHandshakeInfo parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AkkaHandshakeInfo parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.AkkaHandshakeInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AkkaHandshakeInfo}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.AkkaHandshakeInfoOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_AkkaHandshakeInfo_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_AkkaHandshakeInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.AkkaHandshakeInfo.class, akka.remote.WireFormats.AkkaHandshakeInfo.Builder.class);
      }

      // Construct using akka.remote.WireFormats.AkkaHandshakeInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getOriginFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (originBuilder_ == null) {
          origin_ = akka.remote.WireFormats.AddressData.getDefaultInstance();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        cookie_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_AkkaHandshakeInfo_descriptor;
      }

      public akka.remote.WireFormats.AkkaHandshakeInfo getDefaultInstanceForType() {
        return akka.remote.WireFormats.AkkaHandshakeInfo.getDefaultInstance();
      }

      public akka.remote.WireFormats.AkkaHandshakeInfo build() {
        akka.remote.WireFormats.AkkaHandshakeInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.AkkaHandshakeInfo buildPartial() {
        akka.remote.WireFormats.AkkaHandshakeInfo result = new akka.remote.WireFormats.AkkaHandshakeInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (originBuilder_ == null) {
          result.origin_ = origin_;
        } else {
          result.origin_ = originBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.cookie_ = cookie_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.AkkaHandshakeInfo) {
          return mergeFrom((akka.remote.WireFormats.AkkaHandshakeInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.AkkaHandshakeInfo other) {
        if (other == akka.remote.WireFormats.AkkaHandshakeInfo.getDefaultInstance()) return this;
        if (other.hasOrigin()) {
          mergeOrigin(other.getOrigin());
        }
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        if (other.hasCookie()) {
          bitField0_ |= 0x00000004;
          cookie_ = other.cookie_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasOrigin()) {
          
          return false;
        }
        if (!hasUid()) {
          
          return false;
        }
        if (!getOrigin().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.AkkaHandshakeInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.AkkaHandshakeInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .AddressData origin = 1;
      private akka.remote.WireFormats.AddressData origin_ = akka.remote.WireFormats.AddressData.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.AddressData, akka.remote.WireFormats.AddressData.Builder, akka.remote.WireFormats.AddressDataOrBuilder> originBuilder_;
      /**
       * <code>required .AddressData origin = 1;</code>
       */
      public boolean hasOrigin() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .AddressData origin = 1;</code>
       */
      public akka.remote.WireFormats.AddressData getOrigin() {
        if (originBuilder_ == null) {
          return origin_;
        } else {
          return originBuilder_.getMessage();
        }
      }
      /**
       * <code>required .AddressData origin = 1;</code>
       */
      public Builder setOrigin(akka.remote.WireFormats.AddressData value) {
        if (originBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          origin_ = value;
          onChanged();
        } else {
          originBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .AddressData origin = 1;</code>
       */
      public Builder setOrigin(
          akka.remote.WireFormats.AddressData.Builder builderForValue) {
        if (originBuilder_ == null) {
          origin_ = builderForValue.build();
          onChanged();
        } else {
          originBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .AddressData origin = 1;</code>
       */
      public Builder mergeOrigin(akka.remote.WireFormats.AddressData value) {
        if (originBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              origin_ != akka.remote.WireFormats.AddressData.getDefaultInstance()) {
            origin_ =
              akka.remote.WireFormats.AddressData.newBuilder(origin_).mergeFrom(value).buildPartial();
          } else {
            origin_ = value;
          }
          onChanged();
        } else {
          originBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .AddressData origin = 1;</code>
       */
      public Builder clearOrigin() {
        if (originBuilder_ == null) {
          origin_ = akka.remote.WireFormats.AddressData.getDefaultInstance();
          onChanged();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .AddressData origin = 1;</code>
       */
      public akka.remote.WireFormats.AddressData.Builder getOriginBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getOriginFieldBuilder().getBuilder();
      }
      /**
       * <code>required .AddressData origin = 1;</code>
       */
      public akka.remote.WireFormats.AddressDataOrBuilder getOriginOrBuilder() {
        if (originBuilder_ != null) {
          return originBuilder_.getMessageOrBuilder();
        } else {
          return origin_;
        }
      }
      /**
       * <code>required .AddressData origin = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.WireFormats.AddressData, akka.remote.WireFormats.AddressData.Builder, akka.remote.WireFormats.AddressDataOrBuilder> 
          getOriginFieldBuilder() {
        if (originBuilder_ == null) {
          originBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.WireFormats.AddressData, akka.remote.WireFormats.AddressData.Builder, akka.remote.WireFormats.AddressDataOrBuilder>(
                  origin_,
                  getParentForChildren(),
                  isClean());
          origin_ = null;
        }
        return originBuilder_;
      }

      // required fixed64 uid = 2;
      private long uid_ ;
      /**
       * <code>required fixed64 uid = 2;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required fixed64 uid = 2;</code>
       */
      public long getUid() {
        return uid_;
      }
      /**
       * <code>required fixed64 uid = 2;</code>
       */
      public Builder setUid(long value) {
        bitField0_ |= 0x00000002;
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required fixed64 uid = 2;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        uid_ = 0L;
        onChanged();
        return this;
      }

      // optional string cookie = 3;
      private java.lang.Object cookie_ = "";
      /**
       * <code>optional string cookie = 3;</code>
       */
      public boolean hasCookie() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string cookie = 3;</code>
       */
      public java.lang.String getCookie() {
        java.lang.Object ref = cookie_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          cookie_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string cookie = 3;</code>
       */
      public akka.protobuf.ByteString
          getCookieBytes() {
        java.lang.Object ref = cookie_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          cookie_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string cookie = 3;</code>
       */
      public Builder setCookie(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        cookie_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string cookie = 3;</code>
       */
      public Builder clearCookie() {
        bitField0_ = (bitField0_ & ~0x00000004);
        cookie_ = getDefaultInstance().getCookie();
        onChanged();
        return this;
      }
      /**
       * <code>optional string cookie = 3;</code>
       */
      public Builder setCookieBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        cookie_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AkkaHandshakeInfo)
    }

    static {
      defaultInstance = new AkkaHandshakeInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:AkkaHandshakeInfo)
  }

  public interface AddressDataOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string system = 1;
    /**
     * <code>required string system = 1;</code>
     */
    boolean hasSystem();
    /**
     * <code>required string system = 1;</code>
     */
    java.lang.String getSystem();
    /**
     * <code>required string system = 1;</code>
     */
    akka.protobuf.ByteString
        getSystemBytes();

    // required string hostname = 2;
    /**
     * <code>required string hostname = 2;</code>
     */
    boolean hasHostname();
    /**
     * <code>required string hostname = 2;</code>
     */
    java.lang.String getHostname();
    /**
     * <code>required string hostname = 2;</code>
     */
    akka.protobuf.ByteString
        getHostnameBytes();

    // required uint32 port = 3;
    /**
     * <code>required uint32 port = 3;</code>
     */
    boolean hasPort();
    /**
     * <code>required uint32 port = 3;</code>
     */
    int getPort();

    // optional string protocol = 4;
    /**
     * <code>optional string protocol = 4;</code>
     */
    boolean hasProtocol();
    /**
     * <code>optional string protocol = 4;</code>
     */
    java.lang.String getProtocol();
    /**
     * <code>optional string protocol = 4;</code>
     */
    akka.protobuf.ByteString
        getProtocolBytes();
  }
  /**
   * Protobuf type {@code AddressData}
   *
   * <pre>
   **
   * Defines a remote address.
   * </pre>
   */
  public static final class AddressData extends
      akka.protobuf.GeneratedMessage
      implements AddressDataOrBuilder {
    // Use AddressData.newBuilder() to construct.
    private AddressData(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AddressData(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final AddressData defaultInstance;
    public static AddressData getDefaultInstance() {
      return defaultInstance;
    }

    public AddressData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private AddressData(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              system_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              hostname_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              port_ = input.readUInt32();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              protocol_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.WireFormats.internal_static_AddressData_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.WireFormats.internal_static_AddressData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.WireFormats.AddressData.class, akka.remote.WireFormats.AddressData.Builder.class);
    }

    public static akka.protobuf.Parser<AddressData> PARSER =
        new akka.protobuf.AbstractParser<AddressData>() {
      public AddressData parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new AddressData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<AddressData> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string system = 1;
    public static final int SYSTEM_FIELD_NUMBER = 1;
    private java.lang.Object system_;
    /**
     * <code>required string system = 1;</code>
     */
    public boolean hasSystem() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string system = 1;</code>
     */
    public java.lang.String getSystem() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          system_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string system = 1;</code>
     */
    public akka.protobuf.ByteString
        getSystemBytes() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        system_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required string hostname = 2;
    public static final int HOSTNAME_FIELD_NUMBER = 2;
    private java.lang.Object hostname_;
    /**
     * <code>required string hostname = 2;</code>
     */
    public boolean hasHostname() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string hostname = 2;</code>
     */
    public java.lang.String getHostname() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostname_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string hostname = 2;</code>
     */
    public akka.protobuf.ByteString
        getHostnameBytes() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hostname_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required uint32 port = 3;
    public static final int PORT_FIELD_NUMBER = 3;
    private int port_;
    /**
     * <code>required uint32 port = 3;</code>
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 port = 3;</code>
     */
    public int getPort() {
      return port_;
    }

    // optional string protocol = 4;
    public static final int PROTOCOL_FIELD_NUMBER = 4;
    private java.lang.Object protocol_;
    /**
     * <code>optional string protocol = 4;</code>
     */
    public boolean hasProtocol() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional string protocol = 4;</code>
     */
    public java.lang.String getProtocol() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          protocol_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string protocol = 4;</code>
     */
    public akka.protobuf.ByteString
        getProtocolBytes() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        protocol_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      system_ = "";
      hostname_ = "";
      port_ = 0;
      protocol_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasSystem()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHostname()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPort()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getSystemBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getHostnameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, port_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getProtocolBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getSystemBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(2, getHostnameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt32Size(3, port_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(4, getProtocolBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.WireFormats.AddressData parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AddressData parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AddressData parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.WireFormats.AddressData parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.WireFormats.AddressData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AddressData parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AddressData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.WireFormats.AddressData parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.WireFormats.AddressData parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.WireFormats.AddressData parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.WireFormats.AddressData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AddressData}
     *
     * <pre>
     **
     * Defines a remote address.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.WireFormats.AddressDataOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.WireFormats.internal_static_AddressData_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.WireFormats.internal_static_AddressData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.WireFormats.AddressData.class, akka.remote.WireFormats.AddressData.Builder.class);
      }

      // Construct using akka.remote.WireFormats.AddressData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        system_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        protocol_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.WireFormats.internal_static_AddressData_descriptor;
      }

      public akka.remote.WireFormats.AddressData getDefaultInstanceForType() {
        return akka.remote.WireFormats.AddressData.getDefaultInstance();
      }

      public akka.remote.WireFormats.AddressData build() {
        akka.remote.WireFormats.AddressData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.WireFormats.AddressData buildPartial() {
        akka.remote.WireFormats.AddressData result = new akka.remote.WireFormats.AddressData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.system_ = system_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.hostname_ = hostname_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.port_ = port_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.protocol_ = protocol_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.WireFormats.AddressData) {
          return mergeFrom((akka.remote.WireFormats.AddressData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.WireFormats.AddressData other) {
        if (other == akka.remote.WireFormats.AddressData.getDefaultInstance()) return this;
        if (other.hasSystem()) {
          bitField0_ |= 0x00000001;
          system_ = other.system_;
          onChanged();
        }
        if (other.hasHostname()) {
          bitField0_ |= 0x00000002;
          hostname_ = other.hostname_;
          onChanged();
        }
        if (other.hasPort()) {
          setPort(other.getPort());
        }
        if (other.hasProtocol()) {
          bitField0_ |= 0x00000008;
          protocol_ = other.protocol_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasSystem()) {
          
          return false;
        }
        if (!hasHostname()) {
          
          return false;
        }
        if (!hasPort()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.WireFormats.AddressData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.WireFormats.AddressData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string system = 1;
      private java.lang.Object system_ = "";
      /**
       * <code>required string system = 1;</code>
       */
      public boolean hasSystem() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string system = 1;</code>
       */
      public java.lang.String getSystem() {
        java.lang.Object ref = system_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          system_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string system = 1;</code>
       */
      public akka.protobuf.ByteString
          getSystemBytes() {
        java.lang.Object ref = system_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          system_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string system = 1;</code>
       */
      public Builder setSystem(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        system_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string system = 1;</code>
       */
      public Builder clearSystem() {
        bitField0_ = (bitField0_ & ~0x00000001);
        system_ = getDefaultInstance().getSystem();
        onChanged();
        return this;
      }
      /**
       * <code>required string system = 1;</code>
       */
      public Builder setSystemBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        system_ = value;
        onChanged();
        return this;
      }

      // required string hostname = 2;
      private java.lang.Object hostname_ = "";
      /**
       * <code>required string hostname = 2;</code>
       */
      public boolean hasHostname() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string hostname = 2;</code>
       */
      public java.lang.String getHostname() {
        java.lang.Object ref = hostname_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          hostname_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string hostname = 2;</code>
       */
      public akka.protobuf.ByteString
          getHostnameBytes() {
        java.lang.Object ref = hostname_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hostname_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string hostname = 2;</code>
       */
      public Builder setHostname(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        hostname_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string hostname = 2;</code>
       */
      public Builder clearHostname() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hostname_ = getDefaultInstance().getHostname();
        onChanged();
        return this;
      }
      /**
       * <code>required string hostname = 2;</code>
       */
      public Builder setHostnameBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        hostname_ = value;
        onChanged();
        return this;
      }

      // required uint32 port = 3;
      private int port_ ;
      /**
       * <code>required uint32 port = 3;</code>
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 port = 3;</code>
       */
      public int getPort() {
        return port_;
      }
      /**
       * <code>required uint32 port = 3;</code>
       */
      public Builder setPort(int value) {
        bitField0_ |= 0x00000004;
        port_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 port = 3;</code>
       */
      public Builder clearPort() {
        bitField0_ = (bitField0_ & ~0x00000004);
        port_ = 0;
        onChanged();
        return this;
      }

      // optional string protocol = 4;
      private java.lang.Object protocol_ = "";
      /**
       * <code>optional string protocol = 4;</code>
       */
      public boolean hasProtocol() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional string protocol = 4;</code>
       */
      public java.lang.String getProtocol() {
        java.lang.Object ref = protocol_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          protocol_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string protocol = 4;</code>
       */
      public akka.protobuf.ByteString
          getProtocolBytes() {
        java.lang.Object ref = protocol_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          protocol_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string protocol = 4;</code>
       */
      public Builder setProtocol(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        protocol_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string protocol = 4;</code>
       */
      public Builder clearProtocol() {
        bitField0_ = (bitField0_ & ~0x00000008);
        protocol_ = getDefaultInstance().getProtocol();
        onChanged();
        return this;
      }
      /**
       * <code>optional string protocol = 4;</code>
       */
      public Builder setProtocolBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        protocol_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AddressData)
    }

    static {
      defaultInstance = new AddressData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:AddressData)
  }

  private static akka.protobuf.Descriptors.Descriptor
    internal_static_AckAndEnvelopeContainer_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_AckAndEnvelopeContainer_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_RemoteEnvelope_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_RemoteEnvelope_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_AcknowledgementInfo_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_AcknowledgementInfo_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_ActorRefData_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ActorRefData_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_SerializedMessage_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SerializedMessage_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_DaemonMsgCreateData_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_DaemonMsgCreateData_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_PropsData_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PropsData_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_DeployData_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_DeployData_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_AkkaProtocolMessage_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_AkkaProtocolMessage_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_AkkaControlMessage_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_AkkaControlMessage_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_AkkaHandshakeInfo_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_AkkaHandshakeInfo_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_AddressData_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_AddressData_fieldAccessorTable;

  public static akka.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static akka.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\021WireFormats.proto\"_\n\027AckAndEnvelopeCon" +
      "tainer\022!\n\003ack\030\001 \001(\0132\024.AcknowledgementInf" +
      "o\022!\n\010envelope\030\002 \001(\0132\017.RemoteEnvelope\"\203\001\n" +
      "\016RemoteEnvelope\022 \n\trecipient\030\001 \002(\0132\r.Act" +
      "orRefData\022#\n\007message\030\002 \002(\0132\022.SerializedM" +
      "essage\022\035\n\006sender\030\004 \001(\0132\r.ActorRefData\022\013\n" +
      "\003seq\030\005 \001(\006\";\n\023AcknowledgementInfo\022\025\n\rcum" +
      "ulativeAck\030\001 \002(\006\022\r\n\005nacks\030\002 \003(\006\"\034\n\014Actor" +
      "RefData\022\014\n\004path\030\001 \002(\t\"S\n\021SerializedMessa" +
      "ge\022\017\n\007message\030\001 \002(\014\022\024\n\014serializerId\030\002 \002(",
      "\005\022\027\n\017messageManifest\030\003 \001(\014\"~\n\023DaemonMsgC" +
      "reateData\022\031\n\005props\030\001 \002(\0132\n.PropsData\022\033\n\006" +
      "deploy\030\002 \002(\0132\013.DeployData\022\014\n\004path\030\003 \002(\t\022" +
      "!\n\nsupervisor\030\004 \002(\0132\r.ActorRefData\"V\n\tPr" +
      "opsData\022\033\n\006deploy\030\002 \002(\0132\013.DeployData\022\r\n\005" +
      "clazz\030\003 \002(\t\022\014\n\004args\030\004 \003(\014\022\017\n\007classes\030\005 \003" +
      "(\t\"c\n\nDeployData\022\014\n\004path\030\001 \002(\t\022\016\n\006config" +
      "\030\002 \001(\014\022\024\n\014routerConfig\030\003 \001(\014\022\r\n\005scope\030\004 " +
      "\001(\014\022\022\n\ndispatcher\030\005 \001(\t\"P\n\023AkkaProtocolM" +
      "essage\022\017\n\007payload\030\001 \001(\014\022(\n\013instruction\030\002",
      " \001(\0132\023.AkkaControlMessage\"b\n\022AkkaControl" +
      "Message\022!\n\013commandType\030\001 \002(\0162\014.CommandTy" +
      "pe\022)\n\rhandshakeInfo\030\002 \001(\0132\022.AkkaHandshak" +
      "eInfo\"N\n\021AkkaHandshakeInfo\022\034\n\006origin\030\001 \002" +
      "(\0132\014.AddressData\022\013\n\003uid\030\002 \002(\006\022\016\n\006cookie\030" +
      "\003 \001(\t\"O\n\013AddressData\022\016\n\006system\030\001 \002(\t\022\020\n\010" +
      "hostname\030\002 \002(\t\022\014\n\004port\030\003 \002(\r\022\020\n\010protocol" +
      "\030\004 \001(\t*{\n\013CommandType\022\r\n\tASSOCIATE\020\001\022\020\n\014" +
      "DISASSOCIATE\020\002\022\r\n\tHEARTBEAT\020\003\022\036\n\032DISASSO" +
      "CIATE_SHUTTING_DOWN\020\004\022\034\n\030DISASSOCIATE_QU",
      "ARANTINED\020\005B\017\n\013akka.remoteH\001"
    };
    akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public akka.protobuf.ExtensionRegistry assignDescriptors(
            akka.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_AckAndEnvelopeContainer_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_AckAndEnvelopeContainer_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_AckAndEnvelopeContainer_descriptor,
              new java.lang.String[] { "Ack", "Envelope", });
          internal_static_RemoteEnvelope_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_RemoteEnvelope_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_RemoteEnvelope_descriptor,
              new java.lang.String[] { "Recipient", "Message", "Sender", "Seq", });
          internal_static_AcknowledgementInfo_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_AcknowledgementInfo_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_AcknowledgementInfo_descriptor,
              new java.lang.String[] { "CumulativeAck", "Nacks", });
          internal_static_ActorRefData_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_ActorRefData_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ActorRefData_descriptor,
              new java.lang.String[] { "Path", });
          internal_static_SerializedMessage_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_SerializedMessage_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SerializedMessage_descriptor,
              new java.lang.String[] { "Message", "SerializerId", "MessageManifest", });
          internal_static_DaemonMsgCreateData_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_DaemonMsgCreateData_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_DaemonMsgCreateData_descriptor,
              new java.lang.String[] { "Props", "Deploy", "Path", "Supervisor", });
          internal_static_PropsData_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_PropsData_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PropsData_descriptor,
              new java.lang.String[] { "Deploy", "Clazz", "Args", "Classes", });
          internal_static_DeployData_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_DeployData_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_DeployData_descriptor,
              new java.lang.String[] { "Path", "Config", "RouterConfig", "Scope", "Dispatcher", });
          internal_static_AkkaProtocolMessage_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_AkkaProtocolMessage_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_AkkaProtocolMessage_descriptor,
              new java.lang.String[] { "Payload", "Instruction", });
          internal_static_AkkaControlMessage_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_AkkaControlMessage_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_AkkaControlMessage_descriptor,
              new java.lang.String[] { "CommandType", "HandshakeInfo", });
          internal_static_AkkaHandshakeInfo_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_AkkaHandshakeInfo_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_AkkaHandshakeInfo_descriptor,
              new java.lang.String[] { "Origin", "Uid", "Cookie", });
          internal_static_AddressData_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_AddressData_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_AddressData_descriptor,
              new java.lang.String[] { "System", "Hostname", "Port", "Protocol", });
          return null;
        }
      };
    akka.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new akka.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
