/*
 * Copyright (C) 2020-2021 Lightbend Inc. <https://www.lightbend.com>
 */

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

package akka.cluster.typed.internal.protobuf;

public final class ReliableDelivery {
  private ReliableDelivery() {}
  public static void registerAllExtensions(
      akka.protobufv3.internal.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      akka.protobufv3.internal.ExtensionRegistry registry) {
    registerAllExtensions(
        (akka.protobufv3.internal.ExtensionRegistryLite) registry);
  }
  public interface SequencedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.typed.delivery.SequencedMessage)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string producerId = 1;</code>
     * @return Whether the producerId field is set.
     */
    boolean hasProducerId();
    /**
     * <code>required string producerId = 1;</code>
     * @return The producerId.
     */
    java.lang.String getProducerId();
    /**
     * <code>required string producerId = 1;</code>
     * @return The bytes for producerId.
     */
    akka.protobufv3.internal.ByteString
        getProducerIdBytes();

    /**
     * <code>required int64 seqNr = 2;</code>
     * @return Whether the seqNr field is set.
     */
    boolean hasSeqNr();
    /**
     * <code>required int64 seqNr = 2;</code>
     * @return The seqNr.
     */
    long getSeqNr();

    /**
     * <code>required bool first = 3;</code>
     * @return Whether the first field is set.
     */
    boolean hasFirst();
    /**
     * <code>required bool first = 3;</code>
     * @return The first.
     */
    boolean getFirst();

    /**
     * <code>required bool ack = 4;</code>
     * @return Whether the ack field is set.
     */
    boolean hasAck();
    /**
     * <code>required bool ack = 4;</code>
     * @return The ack.
     */
    boolean getAck();

    /**
     * <code>required string producerControllerRef = 5;</code>
     * @return Whether the producerControllerRef field is set.
     */
    boolean hasProducerControllerRef();
    /**
     * <code>required string producerControllerRef = 5;</code>
     * @return The producerControllerRef.
     */
    java.lang.String getProducerControllerRef();
    /**
     * <code>required string producerControllerRef = 5;</code>
     * @return The bytes for producerControllerRef.
     */
    akka.protobufv3.internal.ByteString
        getProducerControllerRefBytes();

    /**
     * <code>required .Payload message = 6;</code>
     * @return Whether the message field is set.
     */
    boolean hasMessage();
    /**
     * <code>required .Payload message = 6;</code>
     * @return The message.
     */
    akka.remote.ContainerFormats.Payload getMessage();
    /**
     * <code>required .Payload message = 6;</code>
     */
    akka.remote.ContainerFormats.PayloadOrBuilder getMessageOrBuilder();

    /**
     * <code>optional bool firstChunk = 7;</code>
     * @return Whether the firstChunk field is set.
     */
    boolean hasFirstChunk();
    /**
     * <code>optional bool firstChunk = 7;</code>
     * @return The firstChunk.
     */
    boolean getFirstChunk();

    /**
     * <code>optional bool lastChunk = 8;</code>
     * @return Whether the lastChunk field is set.
     */
    boolean hasLastChunk();
    /**
     * <code>optional bool lastChunk = 8;</code>
     * @return The lastChunk.
     */
    boolean getLastChunk();
  }
  /**
   * <pre>
   * ConsumerController
   * </pre>
   *
   * Protobuf type {@code akka.cluster.typed.delivery.SequencedMessage}
   */
  public  static final class SequencedMessage extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.typed.delivery.SequencedMessage)
      SequencedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SequencedMessage.newBuilder() to construct.
    private SequencedMessage(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SequencedMessage() {
      producerId_ = "";
      producerControllerRef_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new SequencedMessage();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SequencedMessage(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              producerId_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              seqNr_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              first_ = input.readBool();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              ack_ = input.readBool();
              break;
            }
            case 42: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              producerControllerRef_ = bs;
              break;
            }
            case 50: {
              akka.remote.ContainerFormats.Payload.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) != 0)) {
                subBuilder = message_.toBuilder();
              }
              message_ = input.readMessage(akka.remote.ContainerFormats.Payload.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(message_);
                message_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              firstChunk_ = input.readBool();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              lastChunk_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_SequencedMessage_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_SequencedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage.Builder.class);
    }

    private int bitField0_;
    public static final int PRODUCERID_FIELD_NUMBER = 1;
    private volatile java.lang.Object producerId_;
    /**
     * <code>required string producerId = 1;</code>
     * @return Whether the producerId field is set.
     */
    public boolean hasProducerId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string producerId = 1;</code>
     * @return The producerId.
     */
    public java.lang.String getProducerId() {
      java.lang.Object ref = producerId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          producerId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string producerId = 1;</code>
     * @return The bytes for producerId.
     */
    public akka.protobufv3.internal.ByteString
        getProducerIdBytes() {
      java.lang.Object ref = producerId_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        producerId_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int SEQNR_FIELD_NUMBER = 2;
    private long seqNr_;
    /**
     * <code>required int64 seqNr = 2;</code>
     * @return Whether the seqNr field is set.
     */
    public boolean hasSeqNr() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required int64 seqNr = 2;</code>
     * @return The seqNr.
     */
    public long getSeqNr() {
      return seqNr_;
    }

    public static final int FIRST_FIELD_NUMBER = 3;
    private boolean first_;
    /**
     * <code>required bool first = 3;</code>
     * @return Whether the first field is set.
     */
    public boolean hasFirst() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required bool first = 3;</code>
     * @return The first.
     */
    public boolean getFirst() {
      return first_;
    }

    public static final int ACK_FIELD_NUMBER = 4;
    private boolean ack_;
    /**
     * <code>required bool ack = 4;</code>
     * @return Whether the ack field is set.
     */
    public boolean hasAck() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required bool ack = 4;</code>
     * @return The ack.
     */
    public boolean getAck() {
      return ack_;
    }

    public static final int PRODUCERCONTROLLERREF_FIELD_NUMBER = 5;
    private volatile java.lang.Object producerControllerRef_;
    /**
     * <code>required string producerControllerRef = 5;</code>
     * @return Whether the producerControllerRef field is set.
     */
    public boolean hasProducerControllerRef() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required string producerControllerRef = 5;</code>
     * @return The producerControllerRef.
     */
    public java.lang.String getProducerControllerRef() {
      java.lang.Object ref = producerControllerRef_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          producerControllerRef_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string producerControllerRef = 5;</code>
     * @return The bytes for producerControllerRef.
     */
    public akka.protobufv3.internal.ByteString
        getProducerControllerRefBytes() {
      java.lang.Object ref = producerControllerRef_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        producerControllerRef_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 6;
    private akka.remote.ContainerFormats.Payload message_;
    /**
     * <code>required .Payload message = 6;</code>
     * @return Whether the message field is set.
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>required .Payload message = 6;</code>
     * @return The message.
     */
    public akka.remote.ContainerFormats.Payload getMessage() {
      return message_ == null ? akka.remote.ContainerFormats.Payload.getDefaultInstance() : message_;
    }
    /**
     * <code>required .Payload message = 6;</code>
     */
    public akka.remote.ContainerFormats.PayloadOrBuilder getMessageOrBuilder() {
      return message_ == null ? akka.remote.ContainerFormats.Payload.getDefaultInstance() : message_;
    }

    public static final int FIRSTCHUNK_FIELD_NUMBER = 7;
    private boolean firstChunk_;
    /**
     * <code>optional bool firstChunk = 7;</code>
     * @return Whether the firstChunk field is set.
     */
    public boolean hasFirstChunk() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional bool firstChunk = 7;</code>
     * @return The firstChunk.
     */
    public boolean getFirstChunk() {
      return firstChunk_;
    }

    public static final int LASTCHUNK_FIELD_NUMBER = 8;
    private boolean lastChunk_;
    /**
     * <code>optional bool lastChunk = 8;</code>
     * @return Whether the lastChunk field is set.
     */
    public boolean hasLastChunk() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional bool lastChunk = 8;</code>
     * @return The lastChunk.
     */
    public boolean getLastChunk() {
      return lastChunk_;
    }

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

      if (!hasProducerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSeqNr()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFirst()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAck()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasProducerControllerRef()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMessage()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getMessage().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, producerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, seqNr_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, first_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeBool(4, ack_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 5, producerControllerRef_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeMessage(6, getMessage());
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeBool(7, firstChunk_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeBool(8, lastChunk_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, producerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(2, seqNr_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(3, first_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(4, ack_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(5, producerControllerRef_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(6, getMessage());
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(7, firstChunk_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(8, lastChunk_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage)) {
        return super.equals(obj);
      }
      akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage other = (akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage) obj;

      if (hasProducerId() != other.hasProducerId()) return false;
      if (hasProducerId()) {
        if (!getProducerId()
            .equals(other.getProducerId())) return false;
      }
      if (hasSeqNr() != other.hasSeqNr()) return false;
      if (hasSeqNr()) {
        if (getSeqNr()
            != other.getSeqNr()) return false;
      }
      if (hasFirst() != other.hasFirst()) return false;
      if (hasFirst()) {
        if (getFirst()
            != other.getFirst()) return false;
      }
      if (hasAck() != other.hasAck()) return false;
      if (hasAck()) {
        if (getAck()
            != other.getAck()) return false;
      }
      if (hasProducerControllerRef() != other.hasProducerControllerRef()) return false;
      if (hasProducerControllerRef()) {
        if (!getProducerControllerRef()
            .equals(other.getProducerControllerRef())) return false;
      }
      if (hasMessage() != other.hasMessage()) return false;
      if (hasMessage()) {
        if (!getMessage()
            .equals(other.getMessage())) return false;
      }
      if (hasFirstChunk() != other.hasFirstChunk()) return false;
      if (hasFirstChunk()) {
        if (getFirstChunk()
            != other.getFirstChunk()) return false;
      }
      if (hasLastChunk() != other.hasLastChunk()) return false;
      if (hasLastChunk()) {
        if (getLastChunk()
            != other.getLastChunk()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasProducerId()) {
        hash = (37 * hash) + PRODUCERID_FIELD_NUMBER;
        hash = (53 * hash) + getProducerId().hashCode();
      }
      if (hasSeqNr()) {
        hash = (37 * hash) + SEQNR_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getSeqNr());
      }
      if (hasFirst()) {
        hash = (37 * hash) + FIRST_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getFirst());
      }
      if (hasAck()) {
        hash = (37 * hash) + ACK_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getAck());
      }
      if (hasProducerControllerRef()) {
        hash = (37 * hash) + PRODUCERCONTROLLERREF_FIELD_NUMBER;
        hash = (53 * hash) + getProducerControllerRef().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      if (hasFirstChunk()) {
        hash = (37 * hash) + FIRSTCHUNK_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getFirstChunk());
      }
      if (hasLastChunk()) {
        hash = (37 * hash) + LASTCHUNK_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getLastChunk());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ConsumerController
     * </pre>
     *
     * Protobuf type {@code akka.cluster.typed.delivery.SequencedMessage}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.typed.delivery.SequencedMessage)
        akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessageOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_SequencedMessage_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_SequencedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage.Builder.class);
      }

      // Construct using akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getMessageFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        producerId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        seqNr_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        first_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        ack_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        producerControllerRef_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        if (messageBuilder_ == null) {
          message_ = null;
        } else {
          messageBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        firstChunk_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        lastChunk_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_SequencedMessage_descriptor;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage getDefaultInstanceForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage build() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage buildPartial() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage result = new akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.producerId_ = producerId_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.seqNr_ = seqNr_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.first_ = first_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.ack_ = ack_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.producerControllerRef_ = producerControllerRef_;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          if (messageBuilder_ == null) {
            result.message_ = message_;
          } else {
            result.message_ = messageBuilder_.build();
          }
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.firstChunk_ = firstChunk_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.lastChunk_ = lastChunk_;
          to_bitField0_ |= 0x00000080;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage) {
          return mergeFrom((akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage other) {
        if (other == akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage.getDefaultInstance()) return this;
        if (other.hasProducerId()) {
          bitField0_ |= 0x00000001;
          producerId_ = other.producerId_;
          onChanged();
        }
        if (other.hasSeqNr()) {
          setSeqNr(other.getSeqNr());
        }
        if (other.hasFirst()) {
          setFirst(other.getFirst());
        }
        if (other.hasAck()) {
          setAck(other.getAck());
        }
        if (other.hasProducerControllerRef()) {
          bitField0_ |= 0x00000010;
          producerControllerRef_ = other.producerControllerRef_;
          onChanged();
        }
        if (other.hasMessage()) {
          mergeMessage(other.getMessage());
        }
        if (other.hasFirstChunk()) {
          setFirstChunk(other.getFirstChunk());
        }
        if (other.hasLastChunk()) {
          setLastChunk(other.getLastChunk());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasProducerId()) {
          return false;
        }
        if (!hasSeqNr()) {
          return false;
        }
        if (!hasFirst()) {
          return false;
        }
        if (!hasAck()) {
          return false;
        }
        if (!hasProducerControllerRef()) {
          return false;
        }
        if (!hasMessage()) {
          return false;
        }
        if (!getMessage().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object producerId_ = "";
      /**
       * <code>required string producerId = 1;</code>
       * @return Whether the producerId field is set.
       */
      public boolean hasProducerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string producerId = 1;</code>
       * @return The producerId.
       */
      public java.lang.String getProducerId() {
        java.lang.Object ref = producerId_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            producerId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string producerId = 1;</code>
       * @return The bytes for producerId.
       */
      public akka.protobufv3.internal.ByteString
          getProducerIdBytes() {
        java.lang.Object ref = producerId_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          producerId_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string producerId = 1;</code>
       * @param value The producerId to set.
       * @return This builder for chaining.
       */
      public Builder setProducerId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        producerId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string producerId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearProducerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        producerId_ = getDefaultInstance().getProducerId();
        onChanged();
        return this;
      }
      /**
       * <code>required string producerId = 1;</code>
       * @param value The bytes for producerId to set.
       * @return This builder for chaining.
       */
      public Builder setProducerIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        producerId_ = value;
        onChanged();
        return this;
      }

      private long seqNr_ ;
      /**
       * <code>required int64 seqNr = 2;</code>
       * @return Whether the seqNr field is set.
       */
      public boolean hasSeqNr() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int64 seqNr = 2;</code>
       * @return The seqNr.
       */
      public long getSeqNr() {
        return seqNr_;
      }
      /**
       * <code>required int64 seqNr = 2;</code>
       * @param value The seqNr to set.
       * @return This builder for chaining.
       */
      public Builder setSeqNr(long value) {
        bitField0_ |= 0x00000002;
        seqNr_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 seqNr = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSeqNr() {
        bitField0_ = (bitField0_ & ~0x00000002);
        seqNr_ = 0L;
        onChanged();
        return this;
      }

      private boolean first_ ;
      /**
       * <code>required bool first = 3;</code>
       * @return Whether the first field is set.
       */
      public boolean hasFirst() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required bool first = 3;</code>
       * @return The first.
       */
      public boolean getFirst() {
        return first_;
      }
      /**
       * <code>required bool first = 3;</code>
       * @param value The first to set.
       * @return This builder for chaining.
       */
      public Builder setFirst(boolean value) {
        bitField0_ |= 0x00000004;
        first_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool first = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearFirst() {
        bitField0_ = (bitField0_ & ~0x00000004);
        first_ = false;
        onChanged();
        return this;
      }

      private boolean ack_ ;
      /**
       * <code>required bool ack = 4;</code>
       * @return Whether the ack field is set.
       */
      public boolean hasAck() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required bool ack = 4;</code>
       * @return The ack.
       */
      public boolean getAck() {
        return ack_;
      }
      /**
       * <code>required bool ack = 4;</code>
       * @param value The ack to set.
       * @return This builder for chaining.
       */
      public Builder setAck(boolean value) {
        bitField0_ |= 0x00000008;
        ack_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool ack = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAck() {
        bitField0_ = (bitField0_ & ~0x00000008);
        ack_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object producerControllerRef_ = "";
      /**
       * <code>required string producerControllerRef = 5;</code>
       * @return Whether the producerControllerRef field is set.
       */
      public boolean hasProducerControllerRef() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required string producerControllerRef = 5;</code>
       * @return The producerControllerRef.
       */
      public java.lang.String getProducerControllerRef() {
        java.lang.Object ref = producerControllerRef_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            producerControllerRef_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string producerControllerRef = 5;</code>
       * @return The bytes for producerControllerRef.
       */
      public akka.protobufv3.internal.ByteString
          getProducerControllerRefBytes() {
        java.lang.Object ref = producerControllerRef_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          producerControllerRef_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string producerControllerRef = 5;</code>
       * @param value The producerControllerRef to set.
       * @return This builder for chaining.
       */
      public Builder setProducerControllerRef(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        producerControllerRef_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string producerControllerRef = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearProducerControllerRef() {
        bitField0_ = (bitField0_ & ~0x00000010);
        producerControllerRef_ = getDefaultInstance().getProducerControllerRef();
        onChanged();
        return this;
      }
      /**
       * <code>required string producerControllerRef = 5;</code>
       * @param value The bytes for producerControllerRef to set.
       * @return This builder for chaining.
       */
      public Builder setProducerControllerRefBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        producerControllerRef_ = value;
        onChanged();
        return this;
      }

      private akka.remote.ContainerFormats.Payload message_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder> messageBuilder_;
      /**
       * <code>required .Payload message = 6;</code>
       * @return Whether the message field is set.
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>required .Payload message = 6;</code>
       * @return The message.
       */
      public akka.remote.ContainerFormats.Payload getMessage() {
        if (messageBuilder_ == null) {
          return message_ == null ? akka.remote.ContainerFormats.Payload.getDefaultInstance() : message_;
        } else {
          return messageBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Payload message = 6;</code>
       */
      public Builder setMessage(akka.remote.ContainerFormats.Payload value) {
        if (messageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          message_ = value;
          onChanged();
        } else {
          messageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>required .Payload message = 6;</code>
       */
      public Builder setMessage(
          akka.remote.ContainerFormats.Payload.Builder builderForValue) {
        if (messageBuilder_ == null) {
          message_ = builderForValue.build();
          onChanged();
        } else {
          messageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>required .Payload message = 6;</code>
       */
      public Builder mergeMessage(akka.remote.ContainerFormats.Payload value) {
        if (messageBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
              message_ != null &&
              message_ != akka.remote.ContainerFormats.Payload.getDefaultInstance()) {
            message_ =
              akka.remote.ContainerFormats.Payload.newBuilder(message_).mergeFrom(value).buildPartial();
          } else {
            message_ = value;
          }
          onChanged();
        } else {
          messageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>required .Payload message = 6;</code>
       */
      public Builder clearMessage() {
        if (messageBuilder_ == null) {
          message_ = null;
          onChanged();
        } else {
          messageBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * <code>required .Payload message = 6;</code>
       */
      public akka.remote.ContainerFormats.Payload.Builder getMessageBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Payload message = 6;</code>
       */
      public akka.remote.ContainerFormats.PayloadOrBuilder getMessageOrBuilder() {
        if (messageBuilder_ != null) {
          return messageBuilder_.getMessageOrBuilder();
        } else {
          return message_ == null ?
              akka.remote.ContainerFormats.Payload.getDefaultInstance() : message_;
        }
      }
      /**
       * <code>required .Payload message = 6;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder> 
          getMessageFieldBuilder() {
        if (messageBuilder_ == null) {
          messageBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder>(
                  getMessage(),
                  getParentForChildren(),
                  isClean());
          message_ = null;
        }
        return messageBuilder_;
      }

      private boolean firstChunk_ ;
      /**
       * <code>optional bool firstChunk = 7;</code>
       * @return Whether the firstChunk field is set.
       */
      public boolean hasFirstChunk() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional bool firstChunk = 7;</code>
       * @return The firstChunk.
       */
      public boolean getFirstChunk() {
        return firstChunk_;
      }
      /**
       * <code>optional bool firstChunk = 7;</code>
       * @param value The firstChunk to set.
       * @return This builder for chaining.
       */
      public Builder setFirstChunk(boolean value) {
        bitField0_ |= 0x00000040;
        firstChunk_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool firstChunk = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearFirstChunk() {
        bitField0_ = (bitField0_ & ~0x00000040);
        firstChunk_ = false;
        onChanged();
        return this;
      }

      private boolean lastChunk_ ;
      /**
       * <code>optional bool lastChunk = 8;</code>
       * @return Whether the lastChunk field is set.
       */
      public boolean hasLastChunk() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional bool lastChunk = 8;</code>
       * @return The lastChunk.
       */
      public boolean getLastChunk() {
        return lastChunk_;
      }
      /**
       * <code>optional bool lastChunk = 8;</code>
       * @param value The lastChunk to set.
       * @return This builder for chaining.
       */
      public Builder setLastChunk(boolean value) {
        bitField0_ |= 0x00000080;
        lastChunk_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool lastChunk = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearLastChunk() {
        bitField0_ = (bitField0_ & ~0x00000080);
        lastChunk_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.typed.delivery.SequencedMessage)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.typed.delivery.SequencedMessage)
    private static final akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage();
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<SequencedMessage>
        PARSER = new akka.protobufv3.internal.AbstractParser<SequencedMessage>() {
      @java.lang.Override
      public SequencedMessage parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new SequencedMessage(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<SequencedMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<SequencedMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.SequencedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RegisterConsumerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.typed.delivery.RegisterConsumer)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string consumerControllerRef = 1;</code>
     * @return Whether the consumerControllerRef field is set.
     */
    boolean hasConsumerControllerRef();
    /**
     * <code>required string consumerControllerRef = 1;</code>
     * @return The consumerControllerRef.
     */
    java.lang.String getConsumerControllerRef();
    /**
     * <code>required string consumerControllerRef = 1;</code>
     * @return The bytes for consumerControllerRef.
     */
    akka.protobufv3.internal.ByteString
        getConsumerControllerRefBytes();
  }
  /**
   * <pre>
   * ProducerController
   * </pre>
   *
   * Protobuf type {@code akka.cluster.typed.delivery.RegisterConsumer}
   */
  public  static final class RegisterConsumer extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.typed.delivery.RegisterConsumer)
      RegisterConsumerOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RegisterConsumer.newBuilder() to construct.
    private RegisterConsumer(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RegisterConsumer() {
      consumerControllerRef_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new RegisterConsumer();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RegisterConsumer(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              consumerControllerRef_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_RegisterConsumer_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_RegisterConsumer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer.Builder.class);
    }

    private int bitField0_;
    public static final int CONSUMERCONTROLLERREF_FIELD_NUMBER = 1;
    private volatile java.lang.Object consumerControllerRef_;
    /**
     * <code>required string consumerControllerRef = 1;</code>
     * @return Whether the consumerControllerRef field is set.
     */
    public boolean hasConsumerControllerRef() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string consumerControllerRef = 1;</code>
     * @return The consumerControllerRef.
     */
    public java.lang.String getConsumerControllerRef() {
      java.lang.Object ref = consumerControllerRef_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          consumerControllerRef_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string consumerControllerRef = 1;</code>
     * @return The bytes for consumerControllerRef.
     */
    public akka.protobufv3.internal.ByteString
        getConsumerControllerRefBytes() {
      java.lang.Object ref = consumerControllerRef_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        consumerControllerRef_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, consumerControllerRef_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, consumerControllerRef_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer)) {
        return super.equals(obj);
      }
      akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer other = (akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer) obj;

      if (hasConsumerControllerRef() != other.hasConsumerControllerRef()) return false;
      if (hasConsumerControllerRef()) {
        if (!getConsumerControllerRef()
            .equals(other.getConsumerControllerRef())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

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

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ProducerController
     * </pre>
     *
     * Protobuf type {@code akka.cluster.typed.delivery.RegisterConsumer}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.typed.delivery.RegisterConsumer)
        akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumerOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_RegisterConsumer_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_RegisterConsumer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer.Builder.class);
      }

      // Construct using akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        consumerControllerRef_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_RegisterConsumer_descriptor;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer getDefaultInstanceForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer build() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer buildPartial() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer result = new akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.consumerControllerRef_ = consumerControllerRef_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer) {
          return mergeFrom((akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer other) {
        if (other == akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer.getDefaultInstance()) return this;
        if (other.hasConsumerControllerRef()) {
          bitField0_ |= 0x00000001;
          consumerControllerRef_ = other.consumerControllerRef_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object consumerControllerRef_ = "";
      /**
       * <code>required string consumerControllerRef = 1;</code>
       * @return Whether the consumerControllerRef field is set.
       */
      public boolean hasConsumerControllerRef() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string consumerControllerRef = 1;</code>
       * @return The consumerControllerRef.
       */
      public java.lang.String getConsumerControllerRef() {
        java.lang.Object ref = consumerControllerRef_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            consumerControllerRef_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string consumerControllerRef = 1;</code>
       * @return The bytes for consumerControllerRef.
       */
      public akka.protobufv3.internal.ByteString
          getConsumerControllerRefBytes() {
        java.lang.Object ref = consumerControllerRef_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          consumerControllerRef_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string consumerControllerRef = 1;</code>
       * @param value The consumerControllerRef to set.
       * @return This builder for chaining.
       */
      public Builder setConsumerControllerRef(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        consumerControllerRef_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string consumerControllerRef = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearConsumerControllerRef() {
        bitField0_ = (bitField0_ & ~0x00000001);
        consumerControllerRef_ = getDefaultInstance().getConsumerControllerRef();
        onChanged();
        return this;
      }
      /**
       * <code>required string consumerControllerRef = 1;</code>
       * @param value The bytes for consumerControllerRef to set.
       * @return This builder for chaining.
       */
      public Builder setConsumerControllerRefBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        consumerControllerRef_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.typed.delivery.RegisterConsumer)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.typed.delivery.RegisterConsumer)
    private static final akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer();
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<RegisterConsumer>
        PARSER = new akka.protobufv3.internal.AbstractParser<RegisterConsumer>() {
      @java.lang.Override
      public RegisterConsumer parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new RegisterConsumer(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<RegisterConsumer> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<RegisterConsumer> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.RegisterConsumer getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.typed.delivery.Request)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required int64 confirmedSeqNr = 1;</code>
     * @return Whether the confirmedSeqNr field is set.
     */
    boolean hasConfirmedSeqNr();
    /**
     * <code>required int64 confirmedSeqNr = 1;</code>
     * @return The confirmedSeqNr.
     */
    long getConfirmedSeqNr();

    /**
     * <code>required int64 requestUpToSeqNr = 2;</code>
     * @return Whether the requestUpToSeqNr field is set.
     */
    boolean hasRequestUpToSeqNr();
    /**
     * <code>required int64 requestUpToSeqNr = 2;</code>
     * @return The requestUpToSeqNr.
     */
    long getRequestUpToSeqNr();

    /**
     * <code>required bool supportResend = 3;</code>
     * @return Whether the supportResend field is set.
     */
    boolean hasSupportResend();
    /**
     * <code>required bool supportResend = 3;</code>
     * @return The supportResend.
     */
    boolean getSupportResend();

    /**
     * <code>required bool viaTimeout = 4;</code>
     * @return Whether the viaTimeout field is set.
     */
    boolean hasViaTimeout();
    /**
     * <code>required bool viaTimeout = 4;</code>
     * @return The viaTimeout.
     */
    boolean getViaTimeout();
  }
  /**
   * <pre>
   * ProducerController
   * </pre>
   *
   * Protobuf type {@code akka.cluster.typed.delivery.Request}
   */
  public  static final class Request extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.typed.delivery.Request)
      RequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Request.newBuilder() to construct.
    private Request(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Request() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Request();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Request(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              confirmedSeqNr_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              requestUpToSeqNr_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              supportResend_ = input.readBool();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              viaTimeout_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Request_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Request_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.typed.internal.protobuf.ReliableDelivery.Request.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.Request.Builder.class);
    }

    private int bitField0_;
    public static final int CONFIRMEDSEQNR_FIELD_NUMBER = 1;
    private long confirmedSeqNr_;
    /**
     * <code>required int64 confirmedSeqNr = 1;</code>
     * @return Whether the confirmedSeqNr field is set.
     */
    public boolean hasConfirmedSeqNr() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int64 confirmedSeqNr = 1;</code>
     * @return The confirmedSeqNr.
     */
    public long getConfirmedSeqNr() {
      return confirmedSeqNr_;
    }

    public static final int REQUESTUPTOSEQNR_FIELD_NUMBER = 2;
    private long requestUpToSeqNr_;
    /**
     * <code>required int64 requestUpToSeqNr = 2;</code>
     * @return Whether the requestUpToSeqNr field is set.
     */
    public boolean hasRequestUpToSeqNr() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required int64 requestUpToSeqNr = 2;</code>
     * @return The requestUpToSeqNr.
     */
    public long getRequestUpToSeqNr() {
      return requestUpToSeqNr_;
    }

    public static final int SUPPORTRESEND_FIELD_NUMBER = 3;
    private boolean supportResend_;
    /**
     * <code>required bool supportResend = 3;</code>
     * @return Whether the supportResend field is set.
     */
    public boolean hasSupportResend() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required bool supportResend = 3;</code>
     * @return The supportResend.
     */
    public boolean getSupportResend() {
      return supportResend_;
    }

    public static final int VIATIMEOUT_FIELD_NUMBER = 4;
    private boolean viaTimeout_;
    /**
     * <code>required bool viaTimeout = 4;</code>
     * @return Whether the viaTimeout field is set.
     */
    public boolean hasViaTimeout() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required bool viaTimeout = 4;</code>
     * @return The viaTimeout.
     */
    public boolean getViaTimeout() {
      return viaTimeout_;
    }

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

      if (!hasConfirmedSeqNr()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRequestUpToSeqNr()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSupportResend()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasViaTimeout()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, confirmedSeqNr_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, requestUpToSeqNr_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, supportResend_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeBool(4, viaTimeout_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(1, confirmedSeqNr_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(2, requestUpToSeqNr_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(3, supportResend_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(4, viaTimeout_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.Request)) {
        return super.equals(obj);
      }
      akka.cluster.typed.internal.protobuf.ReliableDelivery.Request other = (akka.cluster.typed.internal.protobuf.ReliableDelivery.Request) obj;

      if (hasConfirmedSeqNr() != other.hasConfirmedSeqNr()) return false;
      if (hasConfirmedSeqNr()) {
        if (getConfirmedSeqNr()
            != other.getConfirmedSeqNr()) return false;
      }
      if (hasRequestUpToSeqNr() != other.hasRequestUpToSeqNr()) return false;
      if (hasRequestUpToSeqNr()) {
        if (getRequestUpToSeqNr()
            != other.getRequestUpToSeqNr()) return false;
      }
      if (hasSupportResend() != other.hasSupportResend()) return false;
      if (hasSupportResend()) {
        if (getSupportResend()
            != other.getSupportResend()) return false;
      }
      if (hasViaTimeout() != other.hasViaTimeout()) return false;
      if (hasViaTimeout()) {
        if (getViaTimeout()
            != other.getViaTimeout()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasConfirmedSeqNr()) {
        hash = (37 * hash) + CONFIRMEDSEQNR_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getConfirmedSeqNr());
      }
      if (hasRequestUpToSeqNr()) {
        hash = (37 * hash) + REQUESTUPTOSEQNR_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getRequestUpToSeqNr());
      }
      if (hasSupportResend()) {
        hash = (37 * hash) + SUPPORTRESEND_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getSupportResend());
      }
      if (hasViaTimeout()) {
        hash = (37 * hash) + VIATIMEOUT_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getViaTimeout());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.typed.internal.protobuf.ReliableDelivery.Request prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ProducerController
     * </pre>
     *
     * Protobuf type {@code akka.cluster.typed.delivery.Request}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.typed.delivery.Request)
        akka.cluster.typed.internal.protobuf.ReliableDelivery.RequestOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Request_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.typed.internal.protobuf.ReliableDelivery.Request.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.Request.Builder.class);
      }

      // Construct using akka.cluster.typed.internal.protobuf.ReliableDelivery.Request.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        confirmedSeqNr_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        requestUpToSeqNr_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        supportResend_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        viaTimeout_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Request_descriptor;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Request getDefaultInstanceForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.Request.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Request build() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Request result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Request buildPartial() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Request result = new akka.cluster.typed.internal.protobuf.ReliableDelivery.Request(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.confirmedSeqNr_ = confirmedSeqNr_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.requestUpToSeqNr_ = requestUpToSeqNr_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.supportResend_ = supportResend_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.viaTimeout_ = viaTimeout_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.Request) {
          return mergeFrom((akka.cluster.typed.internal.protobuf.ReliableDelivery.Request)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.typed.internal.protobuf.ReliableDelivery.Request other) {
        if (other == akka.cluster.typed.internal.protobuf.ReliableDelivery.Request.getDefaultInstance()) return this;
        if (other.hasConfirmedSeqNr()) {
          setConfirmedSeqNr(other.getConfirmedSeqNr());
        }
        if (other.hasRequestUpToSeqNr()) {
          setRequestUpToSeqNr(other.getRequestUpToSeqNr());
        }
        if (other.hasSupportResend()) {
          setSupportResend(other.getSupportResend());
        }
        if (other.hasViaTimeout()) {
          setViaTimeout(other.getViaTimeout());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasConfirmedSeqNr()) {
          return false;
        }
        if (!hasRequestUpToSeqNr()) {
          return false;
        }
        if (!hasSupportResend()) {
          return false;
        }
        if (!hasViaTimeout()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Request parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.typed.internal.protobuf.ReliableDelivery.Request) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long confirmedSeqNr_ ;
      /**
       * <code>required int64 confirmedSeqNr = 1;</code>
       * @return Whether the confirmedSeqNr field is set.
       */
      public boolean hasConfirmedSeqNr() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 confirmedSeqNr = 1;</code>
       * @return The confirmedSeqNr.
       */
      public long getConfirmedSeqNr() {
        return confirmedSeqNr_;
      }
      /**
       * <code>required int64 confirmedSeqNr = 1;</code>
       * @param value The confirmedSeqNr to set.
       * @return This builder for chaining.
       */
      public Builder setConfirmedSeqNr(long value) {
        bitField0_ |= 0x00000001;
        confirmedSeqNr_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 confirmedSeqNr = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearConfirmedSeqNr() {
        bitField0_ = (bitField0_ & ~0x00000001);
        confirmedSeqNr_ = 0L;
        onChanged();
        return this;
      }

      private long requestUpToSeqNr_ ;
      /**
       * <code>required int64 requestUpToSeqNr = 2;</code>
       * @return Whether the requestUpToSeqNr field is set.
       */
      public boolean hasRequestUpToSeqNr() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int64 requestUpToSeqNr = 2;</code>
       * @return The requestUpToSeqNr.
       */
      public long getRequestUpToSeqNr() {
        return requestUpToSeqNr_;
      }
      /**
       * <code>required int64 requestUpToSeqNr = 2;</code>
       * @param value The requestUpToSeqNr to set.
       * @return This builder for chaining.
       */
      public Builder setRequestUpToSeqNr(long value) {
        bitField0_ |= 0x00000002;
        requestUpToSeqNr_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 requestUpToSeqNr = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestUpToSeqNr() {
        bitField0_ = (bitField0_ & ~0x00000002);
        requestUpToSeqNr_ = 0L;
        onChanged();
        return this;
      }

      private boolean supportResend_ ;
      /**
       * <code>required bool supportResend = 3;</code>
       * @return Whether the supportResend field is set.
       */
      public boolean hasSupportResend() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required bool supportResend = 3;</code>
       * @return The supportResend.
       */
      public boolean getSupportResend() {
        return supportResend_;
      }
      /**
       * <code>required bool supportResend = 3;</code>
       * @param value The supportResend to set.
       * @return This builder for chaining.
       */
      public Builder setSupportResend(boolean value) {
        bitField0_ |= 0x00000004;
        supportResend_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool supportResend = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSupportResend() {
        bitField0_ = (bitField0_ & ~0x00000004);
        supportResend_ = false;
        onChanged();
        return this;
      }

      private boolean viaTimeout_ ;
      /**
       * <code>required bool viaTimeout = 4;</code>
       * @return Whether the viaTimeout field is set.
       */
      public boolean hasViaTimeout() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required bool viaTimeout = 4;</code>
       * @return The viaTimeout.
       */
      public boolean getViaTimeout() {
        return viaTimeout_;
      }
      /**
       * <code>required bool viaTimeout = 4;</code>
       * @param value The viaTimeout to set.
       * @return This builder for chaining.
       */
      public Builder setViaTimeout(boolean value) {
        bitField0_ |= 0x00000008;
        viaTimeout_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool viaTimeout = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearViaTimeout() {
        bitField0_ = (bitField0_ & ~0x00000008);
        viaTimeout_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.typed.delivery.Request)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.typed.delivery.Request)
    private static final akka.cluster.typed.internal.protobuf.ReliableDelivery.Request DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.typed.internal.protobuf.ReliableDelivery.Request();
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Request getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Request>
        PARSER = new akka.protobufv3.internal.AbstractParser<Request>() {
      @java.lang.Override
      public Request parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Request(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Request> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Request> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.Request getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ResendOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.typed.delivery.Resend)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required int64 fromSeqNr = 1;</code>
     * @return Whether the fromSeqNr field is set.
     */
    boolean hasFromSeqNr();
    /**
     * <code>required int64 fromSeqNr = 1;</code>
     * @return The fromSeqNr.
     */
    long getFromSeqNr();
  }
  /**
   * <pre>
   * ProducerController
   * </pre>
   *
   * Protobuf type {@code akka.cluster.typed.delivery.Resend}
   */
  public  static final class Resend extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.typed.delivery.Resend)
      ResendOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Resend.newBuilder() to construct.
    private Resend(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Resend() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Resend();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Resend(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              fromSeqNr_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Resend_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Resend_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend.Builder.class);
    }

    private int bitField0_;
    public static final int FROMSEQNR_FIELD_NUMBER = 1;
    private long fromSeqNr_;
    /**
     * <code>required int64 fromSeqNr = 1;</code>
     * @return Whether the fromSeqNr field is set.
     */
    public boolean hasFromSeqNr() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int64 fromSeqNr = 1;</code>
     * @return The fromSeqNr.
     */
    public long getFromSeqNr() {
      return fromSeqNr_;
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, fromSeqNr_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(1, fromSeqNr_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend)) {
        return super.equals(obj);
      }
      akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend other = (akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend) obj;

      if (hasFromSeqNr() != other.hasFromSeqNr()) return false;
      if (hasFromSeqNr()) {
        if (getFromSeqNr()
            != other.getFromSeqNr()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFromSeqNr()) {
        hash = (37 * hash) + FROMSEQNR_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getFromSeqNr());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ProducerController
     * </pre>
     *
     * Protobuf type {@code akka.cluster.typed.delivery.Resend}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.typed.delivery.Resend)
        akka.cluster.typed.internal.protobuf.ReliableDelivery.ResendOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Resend_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Resend_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend.Builder.class);
      }

      // Construct using akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        fromSeqNr_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Resend_descriptor;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend getDefaultInstanceForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend build() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend buildPartial() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend result = new akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.fromSeqNr_ = fromSeqNr_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend) {
          return mergeFrom((akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend other) {
        if (other == akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend.getDefaultInstance()) return this;
        if (other.hasFromSeqNr()) {
          setFromSeqNr(other.getFromSeqNr());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long fromSeqNr_ ;
      /**
       * <code>required int64 fromSeqNr = 1;</code>
       * @return Whether the fromSeqNr field is set.
       */
      public boolean hasFromSeqNr() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 fromSeqNr = 1;</code>
       * @return The fromSeqNr.
       */
      public long getFromSeqNr() {
        return fromSeqNr_;
      }
      /**
       * <code>required int64 fromSeqNr = 1;</code>
       * @param value The fromSeqNr to set.
       * @return This builder for chaining.
       */
      public Builder setFromSeqNr(long value) {
        bitField0_ |= 0x00000001;
        fromSeqNr_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 fromSeqNr = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearFromSeqNr() {
        bitField0_ = (bitField0_ & ~0x00000001);
        fromSeqNr_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.typed.delivery.Resend)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.typed.delivery.Resend)
    private static final akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend();
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Resend>
        PARSER = new akka.protobufv3.internal.AbstractParser<Resend>() {
      @java.lang.Override
      public Resend parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Resend(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Resend> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Resend> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.Resend getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AckOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.typed.delivery.Ack)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required int64 confirmedSeqNr = 1;</code>
     * @return Whether the confirmedSeqNr field is set.
     */
    boolean hasConfirmedSeqNr();
    /**
     * <code>required int64 confirmedSeqNr = 1;</code>
     * @return The confirmedSeqNr.
     */
    long getConfirmedSeqNr();
  }
  /**
   * <pre>
   * ProducerController
   * </pre>
   *
   * Protobuf type {@code akka.cluster.typed.delivery.Ack}
   */
  public  static final class Ack extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.typed.delivery.Ack)
      AckOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Ack.newBuilder() to construct.
    private Ack(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Ack() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Ack();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Ack(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              confirmedSeqNr_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Ack_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Ack_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack.Builder.class);
    }

    private int bitField0_;
    public static final int CONFIRMEDSEQNR_FIELD_NUMBER = 1;
    private long confirmedSeqNr_;
    /**
     * <code>required int64 confirmedSeqNr = 1;</code>
     * @return Whether the confirmedSeqNr field is set.
     */
    public boolean hasConfirmedSeqNr() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int64 confirmedSeqNr = 1;</code>
     * @return The confirmedSeqNr.
     */
    public long getConfirmedSeqNr() {
      return confirmedSeqNr_;
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, confirmedSeqNr_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(1, confirmedSeqNr_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack)) {
        return super.equals(obj);
      }
      akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack other = (akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack) obj;

      if (hasConfirmedSeqNr() != other.hasConfirmedSeqNr()) return false;
      if (hasConfirmedSeqNr()) {
        if (getConfirmedSeqNr()
            != other.getConfirmedSeqNr()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasConfirmedSeqNr()) {
        hash = (37 * hash) + CONFIRMEDSEQNR_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getConfirmedSeqNr());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * ProducerController
     * </pre>
     *
     * Protobuf type {@code akka.cluster.typed.delivery.Ack}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.typed.delivery.Ack)
        akka.cluster.typed.internal.protobuf.ReliableDelivery.AckOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Ack_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Ack_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack.Builder.class);
      }

      // Construct using akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        confirmedSeqNr_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Ack_descriptor;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack getDefaultInstanceForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack build() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack buildPartial() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack result = new akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.confirmedSeqNr_ = confirmedSeqNr_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack) {
          return mergeFrom((akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack other) {
        if (other == akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack.getDefaultInstance()) return this;
        if (other.hasConfirmedSeqNr()) {
          setConfirmedSeqNr(other.getConfirmedSeqNr());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long confirmedSeqNr_ ;
      /**
       * <code>required int64 confirmedSeqNr = 1;</code>
       * @return Whether the confirmedSeqNr field is set.
       */
      public boolean hasConfirmedSeqNr() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 confirmedSeqNr = 1;</code>
       * @return The confirmedSeqNr.
       */
      public long getConfirmedSeqNr() {
        return confirmedSeqNr_;
      }
      /**
       * <code>required int64 confirmedSeqNr = 1;</code>
       * @param value The confirmedSeqNr to set.
       * @return This builder for chaining.
       */
      public Builder setConfirmedSeqNr(long value) {
        bitField0_ |= 0x00000001;
        confirmedSeqNr_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 confirmedSeqNr = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearConfirmedSeqNr() {
        bitField0_ = (bitField0_ & ~0x00000001);
        confirmedSeqNr_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.typed.delivery.Ack)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.typed.delivery.Ack)
    private static final akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack();
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Ack>
        PARSER = new akka.protobufv3.internal.AbstractParser<Ack>() {
      @java.lang.Override
      public Ack parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Ack(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Ack> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Ack> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.Ack getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.typed.delivery.State)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required int64 currentSeqNr = 1;</code>
     * @return Whether the currentSeqNr field is set.
     */
    boolean hasCurrentSeqNr();
    /**
     * <code>required int64 currentSeqNr = 1;</code>
     * @return The currentSeqNr.
     */
    long getCurrentSeqNr();

    /**
     * <code>required int64 highestConfirmedSeqNr = 2;</code>
     * @return Whether the highestConfirmedSeqNr field is set.
     */
    boolean hasHighestConfirmedSeqNr();
    /**
     * <code>required int64 highestConfirmedSeqNr = 2;</code>
     * @return The highestConfirmedSeqNr.
     */
    long getHighestConfirmedSeqNr();

    /**
     * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
     */
    java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed> 
        getConfirmedList();
    /**
     * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
     */
    akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed getConfirmed(int index);
    /**
     * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
     */
    int getConfirmedCount();
    /**
     * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
     */
    java.util.List<? extends akka.cluster.typed.internal.protobuf.ReliableDelivery.ConfirmedOrBuilder> 
        getConfirmedOrBuilderList();
    /**
     * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
     */
    akka.cluster.typed.internal.protobuf.ReliableDelivery.ConfirmedOrBuilder getConfirmedOrBuilder(
        int index);

    /**
     * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
     */
    java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent> 
        getUnconfirmedList();
    /**
     * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
     */
    akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent getUnconfirmed(int index);
    /**
     * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
     */
    int getUnconfirmedCount();
    /**
     * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
     */
    java.util.List<? extends akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSentOrBuilder> 
        getUnconfirmedOrBuilderList();
    /**
     * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
     */
    akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSentOrBuilder getUnconfirmedOrBuilder(
        int index);
  }
  /**
   * <pre>
   * DurableProducerQueue
   * </pre>
   *
   * Protobuf type {@code akka.cluster.typed.delivery.State}
   */
  public  static final class State extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.typed.delivery.State)
      StateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use State.newBuilder() to construct.
    private State(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private State() {
      confirmed_ = java.util.Collections.emptyList();
      unconfirmed_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new State();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private State(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              currentSeqNr_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              highestConfirmedSeqNr_ = input.readInt64();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                confirmed_ = new java.util.ArrayList<akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed>();
                mutable_bitField0_ |= 0x00000004;
              }
              confirmed_.add(
                  input.readMessage(akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.PARSER, extensionRegistry));
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                unconfirmed_ = new java.util.ArrayList<akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent>();
                mutable_bitField0_ |= 0x00000008;
              }
              unconfirmed_.add(
                  input.readMessage(akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          confirmed_ = java.util.Collections.unmodifiableList(confirmed_);
        }
        if (((mutable_bitField0_ & 0x00000008) != 0)) {
          unconfirmed_ = java.util.Collections.unmodifiableList(unconfirmed_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_State_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_State_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.typed.internal.protobuf.ReliableDelivery.State.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.State.Builder.class);
    }

    private int bitField0_;
    public static final int CURRENTSEQNR_FIELD_NUMBER = 1;
    private long currentSeqNr_;
    /**
     * <code>required int64 currentSeqNr = 1;</code>
     * @return Whether the currentSeqNr field is set.
     */
    public boolean hasCurrentSeqNr() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int64 currentSeqNr = 1;</code>
     * @return The currentSeqNr.
     */
    public long getCurrentSeqNr() {
      return currentSeqNr_;
    }

    public static final int HIGHESTCONFIRMEDSEQNR_FIELD_NUMBER = 2;
    private long highestConfirmedSeqNr_;
    /**
     * <code>required int64 highestConfirmedSeqNr = 2;</code>
     * @return Whether the highestConfirmedSeqNr field is set.
     */
    public boolean hasHighestConfirmedSeqNr() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required int64 highestConfirmedSeqNr = 2;</code>
     * @return The highestConfirmedSeqNr.
     */
    public long getHighestConfirmedSeqNr() {
      return highestConfirmedSeqNr_;
    }

    public static final int CONFIRMED_FIELD_NUMBER = 3;
    private java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed> confirmed_;
    /**
     * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
     */
    public java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed> getConfirmedList() {
      return confirmed_;
    }
    /**
     * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
     */
    public java.util.List<? extends akka.cluster.typed.internal.protobuf.ReliableDelivery.ConfirmedOrBuilder> 
        getConfirmedOrBuilderList() {
      return confirmed_;
    }
    /**
     * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
     */
    public int getConfirmedCount() {
      return confirmed_.size();
    }
    /**
     * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
     */
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed getConfirmed(int index) {
      return confirmed_.get(index);
    }
    /**
     * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
     */
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.ConfirmedOrBuilder getConfirmedOrBuilder(
        int index) {
      return confirmed_.get(index);
    }

    public static final int UNCONFIRMED_FIELD_NUMBER = 4;
    private java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent> unconfirmed_;
    /**
     * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
     */
    public java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent> getUnconfirmedList() {
      return unconfirmed_;
    }
    /**
     * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
     */
    public java.util.List<? extends akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSentOrBuilder> 
        getUnconfirmedOrBuilderList() {
      return unconfirmed_;
    }
    /**
     * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
     */
    public int getUnconfirmedCount() {
      return unconfirmed_.size();
    }
    /**
     * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
     */
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent getUnconfirmed(int index) {
      return unconfirmed_.get(index);
    }
    /**
     * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
     */
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSentOrBuilder getUnconfirmedOrBuilder(
        int index) {
      return unconfirmed_.get(index);
    }

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

      if (!hasCurrentSeqNr()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHighestConfirmedSeqNr()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getConfirmedCount(); i++) {
        if (!getConfirmed(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getUnconfirmedCount(); i++) {
        if (!getUnconfirmed(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, currentSeqNr_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, highestConfirmedSeqNr_);
      }
      for (int i = 0; i < confirmed_.size(); i++) {
        output.writeMessage(3, confirmed_.get(i));
      }
      for (int i = 0; i < unconfirmed_.size(); i++) {
        output.writeMessage(4, unconfirmed_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(1, currentSeqNr_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(2, highestConfirmedSeqNr_);
      }
      for (int i = 0; i < confirmed_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(3, confirmed_.get(i));
      }
      for (int i = 0; i < unconfirmed_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(4, unconfirmed_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.State)) {
        return super.equals(obj);
      }
      akka.cluster.typed.internal.protobuf.ReliableDelivery.State other = (akka.cluster.typed.internal.protobuf.ReliableDelivery.State) obj;

      if (hasCurrentSeqNr() != other.hasCurrentSeqNr()) return false;
      if (hasCurrentSeqNr()) {
        if (getCurrentSeqNr()
            != other.getCurrentSeqNr()) return false;
      }
      if (hasHighestConfirmedSeqNr() != other.hasHighestConfirmedSeqNr()) return false;
      if (hasHighestConfirmedSeqNr()) {
        if (getHighestConfirmedSeqNr()
            != other.getHighestConfirmedSeqNr()) return false;
      }
      if (!getConfirmedList()
          .equals(other.getConfirmedList())) return false;
      if (!getUnconfirmedList()
          .equals(other.getUnconfirmedList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasCurrentSeqNr()) {
        hash = (37 * hash) + CURRENTSEQNR_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getCurrentSeqNr());
      }
      if (hasHighestConfirmedSeqNr()) {
        hash = (37 * hash) + HIGHESTCONFIRMEDSEQNR_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getHighestConfirmedSeqNr());
      }
      if (getConfirmedCount() > 0) {
        hash = (37 * hash) + CONFIRMED_FIELD_NUMBER;
        hash = (53 * hash) + getConfirmedList().hashCode();
      }
      if (getUnconfirmedCount() > 0) {
        hash = (37 * hash) + UNCONFIRMED_FIELD_NUMBER;
        hash = (53 * hash) + getUnconfirmedList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.typed.internal.protobuf.ReliableDelivery.State prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * DurableProducerQueue
     * </pre>
     *
     * Protobuf type {@code akka.cluster.typed.delivery.State}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.typed.delivery.State)
        akka.cluster.typed.internal.protobuf.ReliableDelivery.StateOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_State_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_State_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.typed.internal.protobuf.ReliableDelivery.State.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.State.Builder.class);
      }

      // Construct using akka.cluster.typed.internal.protobuf.ReliableDelivery.State.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getConfirmedFieldBuilder();
          getUnconfirmedFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        currentSeqNr_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        highestConfirmedSeqNr_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (confirmedBuilder_ == null) {
          confirmed_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          confirmedBuilder_.clear();
        }
        if (unconfirmedBuilder_ == null) {
          unconfirmed_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          unconfirmedBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_State_descriptor;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.State getDefaultInstanceForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.State.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.State build() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.State result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.State buildPartial() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.State result = new akka.cluster.typed.internal.protobuf.ReliableDelivery.State(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.currentSeqNr_ = currentSeqNr_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.highestConfirmedSeqNr_ = highestConfirmedSeqNr_;
          to_bitField0_ |= 0x00000002;
        }
        if (confirmedBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            confirmed_ = java.util.Collections.unmodifiableList(confirmed_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.confirmed_ = confirmed_;
        } else {
          result.confirmed_ = confirmedBuilder_.build();
        }
        if (unconfirmedBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            unconfirmed_ = java.util.Collections.unmodifiableList(unconfirmed_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.unconfirmed_ = unconfirmed_;
        } else {
          result.unconfirmed_ = unconfirmedBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.State) {
          return mergeFrom((akka.cluster.typed.internal.protobuf.ReliableDelivery.State)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.typed.internal.protobuf.ReliableDelivery.State other) {
        if (other == akka.cluster.typed.internal.protobuf.ReliableDelivery.State.getDefaultInstance()) return this;
        if (other.hasCurrentSeqNr()) {
          setCurrentSeqNr(other.getCurrentSeqNr());
        }
        if (other.hasHighestConfirmedSeqNr()) {
          setHighestConfirmedSeqNr(other.getHighestConfirmedSeqNr());
        }
        if (confirmedBuilder_ == null) {
          if (!other.confirmed_.isEmpty()) {
            if (confirmed_.isEmpty()) {
              confirmed_ = other.confirmed_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureConfirmedIsMutable();
              confirmed_.addAll(other.confirmed_);
            }
            onChanged();
          }
        } else {
          if (!other.confirmed_.isEmpty()) {
            if (confirmedBuilder_.isEmpty()) {
              confirmedBuilder_.dispose();
              confirmedBuilder_ = null;
              confirmed_ = other.confirmed_;
              bitField0_ = (bitField0_ & ~0x00000004);
              confirmedBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getConfirmedFieldBuilder() : null;
            } else {
              confirmedBuilder_.addAllMessages(other.confirmed_);
            }
          }
        }
        if (unconfirmedBuilder_ == null) {
          if (!other.unconfirmed_.isEmpty()) {
            if (unconfirmed_.isEmpty()) {
              unconfirmed_ = other.unconfirmed_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureUnconfirmedIsMutable();
              unconfirmed_.addAll(other.unconfirmed_);
            }
            onChanged();
          }
        } else {
          if (!other.unconfirmed_.isEmpty()) {
            if (unconfirmedBuilder_.isEmpty()) {
              unconfirmedBuilder_.dispose();
              unconfirmedBuilder_ = null;
              unconfirmed_ = other.unconfirmed_;
              bitField0_ = (bitField0_ & ~0x00000008);
              unconfirmedBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getUnconfirmedFieldBuilder() : null;
            } else {
              unconfirmedBuilder_.addAllMessages(other.unconfirmed_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasCurrentSeqNr()) {
          return false;
        }
        if (!hasHighestConfirmedSeqNr()) {
          return false;
        }
        for (int i = 0; i < getConfirmedCount(); i++) {
          if (!getConfirmed(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getUnconfirmedCount(); i++) {
          if (!getUnconfirmed(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.State parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.typed.internal.protobuf.ReliableDelivery.State) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long currentSeqNr_ ;
      /**
       * <code>required int64 currentSeqNr = 1;</code>
       * @return Whether the currentSeqNr field is set.
       */
      public boolean hasCurrentSeqNr() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 currentSeqNr = 1;</code>
       * @return The currentSeqNr.
       */
      public long getCurrentSeqNr() {
        return currentSeqNr_;
      }
      /**
       * <code>required int64 currentSeqNr = 1;</code>
       * @param value The currentSeqNr to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentSeqNr(long value) {
        bitField0_ |= 0x00000001;
        currentSeqNr_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 currentSeqNr = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentSeqNr() {
        bitField0_ = (bitField0_ & ~0x00000001);
        currentSeqNr_ = 0L;
        onChanged();
        return this;
      }

      private long highestConfirmedSeqNr_ ;
      /**
       * <code>required int64 highestConfirmedSeqNr = 2;</code>
       * @return Whether the highestConfirmedSeqNr field is set.
       */
      public boolean hasHighestConfirmedSeqNr() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int64 highestConfirmedSeqNr = 2;</code>
       * @return The highestConfirmedSeqNr.
       */
      public long getHighestConfirmedSeqNr() {
        return highestConfirmedSeqNr_;
      }
      /**
       * <code>required int64 highestConfirmedSeqNr = 2;</code>
       * @param value The highestConfirmedSeqNr to set.
       * @return This builder for chaining.
       */
      public Builder setHighestConfirmedSeqNr(long value) {
        bitField0_ |= 0x00000002;
        highestConfirmedSeqNr_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 highestConfirmedSeqNr = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearHighestConfirmedSeqNr() {
        bitField0_ = (bitField0_ & ~0x00000002);
        highestConfirmedSeqNr_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed> confirmed_ =
        java.util.Collections.emptyList();
      private void ensureConfirmedIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          confirmed_ = new java.util.ArrayList<akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed>(confirmed_);
          bitField0_ |= 0x00000004;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed, akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder, akka.cluster.typed.internal.protobuf.ReliableDelivery.ConfirmedOrBuilder> confirmedBuilder_;

      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed> getConfirmedList() {
        if (confirmedBuilder_ == null) {
          return java.util.Collections.unmodifiableList(confirmed_);
        } else {
          return confirmedBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public int getConfirmedCount() {
        if (confirmedBuilder_ == null) {
          return confirmed_.size();
        } else {
          return confirmedBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed getConfirmed(int index) {
        if (confirmedBuilder_ == null) {
          return confirmed_.get(index);
        } else {
          return confirmedBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public Builder setConfirmed(
          int index, akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed value) {
        if (confirmedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConfirmedIsMutable();
          confirmed_.set(index, value);
          onChanged();
        } else {
          confirmedBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public Builder setConfirmed(
          int index, akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder builderForValue) {
        if (confirmedBuilder_ == null) {
          ensureConfirmedIsMutable();
          confirmed_.set(index, builderForValue.build());
          onChanged();
        } else {
          confirmedBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public Builder addConfirmed(akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed value) {
        if (confirmedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConfirmedIsMutable();
          confirmed_.add(value);
          onChanged();
        } else {
          confirmedBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public Builder addConfirmed(
          int index, akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed value) {
        if (confirmedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConfirmedIsMutable();
          confirmed_.add(index, value);
          onChanged();
        } else {
          confirmedBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public Builder addConfirmed(
          akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder builderForValue) {
        if (confirmedBuilder_ == null) {
          ensureConfirmedIsMutable();
          confirmed_.add(builderForValue.build());
          onChanged();
        } else {
          confirmedBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public Builder addConfirmed(
          int index, akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder builderForValue) {
        if (confirmedBuilder_ == null) {
          ensureConfirmedIsMutable();
          confirmed_.add(index, builderForValue.build());
          onChanged();
        } else {
          confirmedBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public Builder addAllConfirmed(
          java.lang.Iterable<? extends akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed> values) {
        if (confirmedBuilder_ == null) {
          ensureConfirmedIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, confirmed_);
          onChanged();
        } else {
          confirmedBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public Builder clearConfirmed() {
        if (confirmedBuilder_ == null) {
          confirmed_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          confirmedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public Builder removeConfirmed(int index) {
        if (confirmedBuilder_ == null) {
          ensureConfirmedIsMutable();
          confirmed_.remove(index);
          onChanged();
        } else {
          confirmedBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder getConfirmedBuilder(
          int index) {
        return getConfirmedFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.ConfirmedOrBuilder getConfirmedOrBuilder(
          int index) {
        if (confirmedBuilder_ == null) {
          return confirmed_.get(index);  } else {
          return confirmedBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public java.util.List<? extends akka.cluster.typed.internal.protobuf.ReliableDelivery.ConfirmedOrBuilder> 
           getConfirmedOrBuilderList() {
        if (confirmedBuilder_ != null) {
          return confirmedBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(confirmed_);
        }
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder addConfirmedBuilder() {
        return getConfirmedFieldBuilder().addBuilder(
            akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder addConfirmedBuilder(
          int index) {
        return getConfirmedFieldBuilder().addBuilder(
            index, akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.Confirmed confirmed = 3;</code>
       */
      public java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder> 
           getConfirmedBuilderList() {
        return getConfirmedFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed, akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder, akka.cluster.typed.internal.protobuf.ReliableDelivery.ConfirmedOrBuilder> 
          getConfirmedFieldBuilder() {
        if (confirmedBuilder_ == null) {
          confirmedBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed, akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder, akka.cluster.typed.internal.protobuf.ReliableDelivery.ConfirmedOrBuilder>(
                  confirmed_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          confirmed_ = null;
        }
        return confirmedBuilder_;
      }

      private java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent> unconfirmed_ =
        java.util.Collections.emptyList();
      private void ensureUnconfirmedIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          unconfirmed_ = new java.util.ArrayList<akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent>(unconfirmed_);
          bitField0_ |= 0x00000008;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSentOrBuilder> unconfirmedBuilder_;

      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent> getUnconfirmedList() {
        if (unconfirmedBuilder_ == null) {
          return java.util.Collections.unmodifiableList(unconfirmed_);
        } else {
          return unconfirmedBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public int getUnconfirmedCount() {
        if (unconfirmedBuilder_ == null) {
          return unconfirmed_.size();
        } else {
          return unconfirmedBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent getUnconfirmed(int index) {
        if (unconfirmedBuilder_ == null) {
          return unconfirmed_.get(index);
        } else {
          return unconfirmedBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public Builder setUnconfirmed(
          int index, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent value) {
        if (unconfirmedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUnconfirmedIsMutable();
          unconfirmed_.set(index, value);
          onChanged();
        } else {
          unconfirmedBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public Builder setUnconfirmed(
          int index, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder builderForValue) {
        if (unconfirmedBuilder_ == null) {
          ensureUnconfirmedIsMutable();
          unconfirmed_.set(index, builderForValue.build());
          onChanged();
        } else {
          unconfirmedBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public Builder addUnconfirmed(akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent value) {
        if (unconfirmedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUnconfirmedIsMutable();
          unconfirmed_.add(value);
          onChanged();
        } else {
          unconfirmedBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public Builder addUnconfirmed(
          int index, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent value) {
        if (unconfirmedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUnconfirmedIsMutable();
          unconfirmed_.add(index, value);
          onChanged();
        } else {
          unconfirmedBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public Builder addUnconfirmed(
          akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder builderForValue) {
        if (unconfirmedBuilder_ == null) {
          ensureUnconfirmedIsMutable();
          unconfirmed_.add(builderForValue.build());
          onChanged();
        } else {
          unconfirmedBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public Builder addUnconfirmed(
          int index, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder builderForValue) {
        if (unconfirmedBuilder_ == null) {
          ensureUnconfirmedIsMutable();
          unconfirmed_.add(index, builderForValue.build());
          onChanged();
        } else {
          unconfirmedBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public Builder addAllUnconfirmed(
          java.lang.Iterable<? extends akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent> values) {
        if (unconfirmedBuilder_ == null) {
          ensureUnconfirmedIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, unconfirmed_);
          onChanged();
        } else {
          unconfirmedBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public Builder clearUnconfirmed() {
        if (unconfirmedBuilder_ == null) {
          unconfirmed_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          unconfirmedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public Builder removeUnconfirmed(int index) {
        if (unconfirmedBuilder_ == null) {
          ensureUnconfirmedIsMutable();
          unconfirmed_.remove(index);
          onChanged();
        } else {
          unconfirmedBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder getUnconfirmedBuilder(
          int index) {
        return getUnconfirmedFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSentOrBuilder getUnconfirmedOrBuilder(
          int index) {
        if (unconfirmedBuilder_ == null) {
          return unconfirmed_.get(index);  } else {
          return unconfirmedBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public java.util.List<? extends akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSentOrBuilder> 
           getUnconfirmedOrBuilderList() {
        if (unconfirmedBuilder_ != null) {
          return unconfirmedBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(unconfirmed_);
        }
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder addUnconfirmedBuilder() {
        return getUnconfirmedFieldBuilder().addBuilder(
            akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder addUnconfirmedBuilder(
          int index) {
        return getUnconfirmedFieldBuilder().addBuilder(
            index, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.typed.delivery.MessageSent unconfirmed = 4;</code>
       */
      public java.util.List<akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder> 
           getUnconfirmedBuilderList() {
        return getUnconfirmedFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSentOrBuilder> 
          getUnconfirmedFieldBuilder() {
        if (unconfirmedBuilder_ == null) {
          unconfirmedBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSentOrBuilder>(
                  unconfirmed_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          unconfirmed_ = null;
        }
        return unconfirmedBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.typed.delivery.State)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.typed.delivery.State)
    private static final akka.cluster.typed.internal.protobuf.ReliableDelivery.State DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.typed.internal.protobuf.ReliableDelivery.State();
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.State getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<State>
        PARSER = new akka.protobufv3.internal.AbstractParser<State>() {
      @java.lang.Override
      public State parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new State(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<State> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<State> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.State getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ConfirmedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.typed.delivery.Confirmed)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required int64 seqNr = 1;</code>
     * @return Whether the seqNr field is set.
     */
    boolean hasSeqNr();
    /**
     * <code>required int64 seqNr = 1;</code>
     * @return The seqNr.
     */
    long getSeqNr();

    /**
     * <code>required string qualifier = 2;</code>
     * @return Whether the qualifier field is set.
     */
    boolean hasQualifier();
    /**
     * <code>required string qualifier = 2;</code>
     * @return The qualifier.
     */
    java.lang.String getQualifier();
    /**
     * <code>required string qualifier = 2;</code>
     * @return The bytes for qualifier.
     */
    akka.protobufv3.internal.ByteString
        getQualifierBytes();

    /**
     * <code>required int64 timestamp = 3;</code>
     * @return Whether the timestamp field is set.
     */
    boolean hasTimestamp();
    /**
     * <code>required int64 timestamp = 3;</code>
     * @return The timestamp.
     */
    long getTimestamp();
  }
  /**
   * <pre>
   * DurableProducerQueue
   * </pre>
   *
   * Protobuf type {@code akka.cluster.typed.delivery.Confirmed}
   */
  public  static final class Confirmed extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.typed.delivery.Confirmed)
      ConfirmedOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Confirmed.newBuilder() to construct.
    private Confirmed(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Confirmed() {
      qualifier_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Confirmed();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Confirmed(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              seqNr_ = input.readInt64();
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              qualifier_ = bs;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              timestamp_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Confirmed_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Confirmed_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder.class);
    }

    private int bitField0_;
    public static final int SEQNR_FIELD_NUMBER = 1;
    private long seqNr_;
    /**
     * <code>required int64 seqNr = 1;</code>
     * @return Whether the seqNr field is set.
     */
    public boolean hasSeqNr() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int64 seqNr = 1;</code>
     * @return The seqNr.
     */
    public long getSeqNr() {
      return seqNr_;
    }

    public static final int QUALIFIER_FIELD_NUMBER = 2;
    private volatile java.lang.Object qualifier_;
    /**
     * <code>required string qualifier = 2;</code>
     * @return Whether the qualifier field is set.
     */
    public boolean hasQualifier() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required string qualifier = 2;</code>
     * @return The qualifier.
     */
    public java.lang.String getQualifier() {
      java.lang.Object ref = qualifier_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          qualifier_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string qualifier = 2;</code>
     * @return The bytes for qualifier.
     */
    public akka.protobufv3.internal.ByteString
        getQualifierBytes() {
      java.lang.Object ref = qualifier_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        qualifier_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 3;
    private long timestamp_;
    /**
     * <code>required int64 timestamp = 3;</code>
     * @return Whether the timestamp field is set.
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required int64 timestamp = 3;</code>
     * @return The timestamp.
     */
    public long getTimestamp() {
      return timestamp_;
    }

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

      if (!hasSeqNr()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasQualifier()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTimestamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, seqNr_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, qualifier_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, timestamp_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(1, seqNr_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, qualifier_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(3, timestamp_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed)) {
        return super.equals(obj);
      }
      akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed other = (akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed) obj;

      if (hasSeqNr() != other.hasSeqNr()) return false;
      if (hasSeqNr()) {
        if (getSeqNr()
            != other.getSeqNr()) return false;
      }
      if (hasQualifier() != other.hasQualifier()) return false;
      if (hasQualifier()) {
        if (!getQualifier()
            .equals(other.getQualifier())) return false;
      }
      if (hasTimestamp() != other.hasTimestamp()) return false;
      if (hasTimestamp()) {
        if (getTimestamp()
            != other.getTimestamp()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSeqNr()) {
        hash = (37 * hash) + SEQNR_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getSeqNr());
      }
      if (hasQualifier()) {
        hash = (37 * hash) + QUALIFIER_FIELD_NUMBER;
        hash = (53 * hash) + getQualifier().hashCode();
      }
      if (hasTimestamp()) {
        hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getTimestamp());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * DurableProducerQueue
     * </pre>
     *
     * Protobuf type {@code akka.cluster.typed.delivery.Confirmed}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.typed.delivery.Confirmed)
        akka.cluster.typed.internal.protobuf.ReliableDelivery.ConfirmedOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Confirmed_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Confirmed_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.Builder.class);
      }

      // Construct using akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        seqNr_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        qualifier_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        timestamp_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Confirmed_descriptor;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed getDefaultInstanceForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed build() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed buildPartial() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed result = new akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.seqNr_ = seqNr_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.qualifier_ = qualifier_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.timestamp_ = timestamp_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed) {
          return mergeFrom((akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed other) {
        if (other == akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed.getDefaultInstance()) return this;
        if (other.hasSeqNr()) {
          setSeqNr(other.getSeqNr());
        }
        if (other.hasQualifier()) {
          bitField0_ |= 0x00000002;
          qualifier_ = other.qualifier_;
          onChanged();
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasSeqNr()) {
          return false;
        }
        if (!hasQualifier()) {
          return false;
        }
        if (!hasTimestamp()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long seqNr_ ;
      /**
       * <code>required int64 seqNr = 1;</code>
       * @return Whether the seqNr field is set.
       */
      public boolean hasSeqNr() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 seqNr = 1;</code>
       * @return The seqNr.
       */
      public long getSeqNr() {
        return seqNr_;
      }
      /**
       * <code>required int64 seqNr = 1;</code>
       * @param value The seqNr to set.
       * @return This builder for chaining.
       */
      public Builder setSeqNr(long value) {
        bitField0_ |= 0x00000001;
        seqNr_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 seqNr = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSeqNr() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seqNr_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object qualifier_ = "";
      /**
       * <code>required string qualifier = 2;</code>
       * @return Whether the qualifier field is set.
       */
      public boolean hasQualifier() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string qualifier = 2;</code>
       * @return The qualifier.
       */
      public java.lang.String getQualifier() {
        java.lang.Object ref = qualifier_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            qualifier_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string qualifier = 2;</code>
       * @return The bytes for qualifier.
       */
      public akka.protobufv3.internal.ByteString
          getQualifierBytes() {
        java.lang.Object ref = qualifier_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          qualifier_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string qualifier = 2;</code>
       * @param value The qualifier to set.
       * @return This builder for chaining.
       */
      public Builder setQualifier(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        qualifier_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string qualifier = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearQualifier() {
        bitField0_ = (bitField0_ & ~0x00000002);
        qualifier_ = getDefaultInstance().getQualifier();
        onChanged();
        return this;
      }
      /**
       * <code>required string qualifier = 2;</code>
       * @param value The bytes for qualifier to set.
       * @return This builder for chaining.
       */
      public Builder setQualifierBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        qualifier_ = value;
        onChanged();
        return this;
      }

      private long timestamp_ ;
      /**
       * <code>required int64 timestamp = 3;</code>
       * @return Whether the timestamp field is set.
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required int64 timestamp = 3;</code>
       * @return The timestamp.
       */
      public long getTimestamp() {
        return timestamp_;
      }
      /**
       * <code>required int64 timestamp = 3;</code>
       * @param value The timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestamp(long value) {
        bitField0_ |= 0x00000004;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 timestamp = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000004);
        timestamp_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.typed.delivery.Confirmed)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.typed.delivery.Confirmed)
    private static final akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed();
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Confirmed>
        PARSER = new akka.protobufv3.internal.AbstractParser<Confirmed>() {
      @java.lang.Override
      public Confirmed parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Confirmed(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Confirmed> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Confirmed> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.Confirmed getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MessageSentOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.typed.delivery.MessageSent)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required int64 seqNr = 1;</code>
     * @return Whether the seqNr field is set.
     */
    boolean hasSeqNr();
    /**
     * <code>required int64 seqNr = 1;</code>
     * @return The seqNr.
     */
    long getSeqNr();

    /**
     * <code>required string qualifier = 2;</code>
     * @return Whether the qualifier field is set.
     */
    boolean hasQualifier();
    /**
     * <code>required string qualifier = 2;</code>
     * @return The qualifier.
     */
    java.lang.String getQualifier();
    /**
     * <code>required string qualifier = 2;</code>
     * @return The bytes for qualifier.
     */
    akka.protobufv3.internal.ByteString
        getQualifierBytes();

    /**
     * <code>required bool ack = 3;</code>
     * @return Whether the ack field is set.
     */
    boolean hasAck();
    /**
     * <code>required bool ack = 3;</code>
     * @return The ack.
     */
    boolean getAck();

    /**
     * <code>required int64 timestamp = 4;</code>
     * @return Whether the timestamp field is set.
     */
    boolean hasTimestamp();
    /**
     * <code>required int64 timestamp = 4;</code>
     * @return The timestamp.
     */
    long getTimestamp();

    /**
     * <code>required .Payload message = 5;</code>
     * @return Whether the message field is set.
     */
    boolean hasMessage();
    /**
     * <code>required .Payload message = 5;</code>
     * @return The message.
     */
    akka.remote.ContainerFormats.Payload getMessage();
    /**
     * <code>required .Payload message = 5;</code>
     */
    akka.remote.ContainerFormats.PayloadOrBuilder getMessageOrBuilder();

    /**
     * <code>optional bool firstChunk = 6;</code>
     * @return Whether the firstChunk field is set.
     */
    boolean hasFirstChunk();
    /**
     * <code>optional bool firstChunk = 6;</code>
     * @return The firstChunk.
     */
    boolean getFirstChunk();

    /**
     * <code>optional bool lastChunk = 7;</code>
     * @return Whether the lastChunk field is set.
     */
    boolean hasLastChunk();
    /**
     * <code>optional bool lastChunk = 7;</code>
     * @return The lastChunk.
     */
    boolean getLastChunk();
  }
  /**
   * <pre>
   * DurableProducerQueue
   * </pre>
   *
   * Protobuf type {@code akka.cluster.typed.delivery.MessageSent}
   */
  public  static final class MessageSent extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.typed.delivery.MessageSent)
      MessageSentOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MessageSent.newBuilder() to construct.
    private MessageSent(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MessageSent() {
      qualifier_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new MessageSent();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MessageSent(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              seqNr_ = input.readInt64();
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              qualifier_ = bs;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              ack_ = input.readBool();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              timestamp_ = input.readInt64();
              break;
            }
            case 42: {
              akka.remote.ContainerFormats.Payload.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) != 0)) {
                subBuilder = message_.toBuilder();
              }
              message_ = input.readMessage(akka.remote.ContainerFormats.Payload.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(message_);
                message_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              firstChunk_ = input.readBool();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              lastChunk_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_MessageSent_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_MessageSent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder.class);
    }

    private int bitField0_;
    public static final int SEQNR_FIELD_NUMBER = 1;
    private long seqNr_;
    /**
     * <code>required int64 seqNr = 1;</code>
     * @return Whether the seqNr field is set.
     */
    public boolean hasSeqNr() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int64 seqNr = 1;</code>
     * @return The seqNr.
     */
    public long getSeqNr() {
      return seqNr_;
    }

    public static final int QUALIFIER_FIELD_NUMBER = 2;
    private volatile java.lang.Object qualifier_;
    /**
     * <code>required string qualifier = 2;</code>
     * @return Whether the qualifier field is set.
     */
    public boolean hasQualifier() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required string qualifier = 2;</code>
     * @return The qualifier.
     */
    public java.lang.String getQualifier() {
      java.lang.Object ref = qualifier_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          qualifier_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string qualifier = 2;</code>
     * @return The bytes for qualifier.
     */
    public akka.protobufv3.internal.ByteString
        getQualifierBytes() {
      java.lang.Object ref = qualifier_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        qualifier_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int ACK_FIELD_NUMBER = 3;
    private boolean ack_;
    /**
     * <code>required bool ack = 3;</code>
     * @return Whether the ack field is set.
     */
    public boolean hasAck() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required bool ack = 3;</code>
     * @return The ack.
     */
    public boolean getAck() {
      return ack_;
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 4;
    private long timestamp_;
    /**
     * <code>required int64 timestamp = 4;</code>
     * @return Whether the timestamp field is set.
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required int64 timestamp = 4;</code>
     * @return The timestamp.
     */
    public long getTimestamp() {
      return timestamp_;
    }

    public static final int MESSAGE_FIELD_NUMBER = 5;
    private akka.remote.ContainerFormats.Payload message_;
    /**
     * <code>required .Payload message = 5;</code>
     * @return Whether the message field is set.
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required .Payload message = 5;</code>
     * @return The message.
     */
    public akka.remote.ContainerFormats.Payload getMessage() {
      return message_ == null ? akka.remote.ContainerFormats.Payload.getDefaultInstance() : message_;
    }
    /**
     * <code>required .Payload message = 5;</code>
     */
    public akka.remote.ContainerFormats.PayloadOrBuilder getMessageOrBuilder() {
      return message_ == null ? akka.remote.ContainerFormats.Payload.getDefaultInstance() : message_;
    }

    public static final int FIRSTCHUNK_FIELD_NUMBER = 6;
    private boolean firstChunk_;
    /**
     * <code>optional bool firstChunk = 6;</code>
     * @return Whether the firstChunk field is set.
     */
    public boolean hasFirstChunk() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional bool firstChunk = 6;</code>
     * @return The firstChunk.
     */
    public boolean getFirstChunk() {
      return firstChunk_;
    }

    public static final int LASTCHUNK_FIELD_NUMBER = 7;
    private boolean lastChunk_;
    /**
     * <code>optional bool lastChunk = 7;</code>
     * @return Whether the lastChunk field is set.
     */
    public boolean hasLastChunk() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional bool lastChunk = 7;</code>
     * @return The lastChunk.
     */
    public boolean getLastChunk() {
      return lastChunk_;
    }

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

      if (!hasSeqNr()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasQualifier()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAck()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTimestamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMessage()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getMessage().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, seqNr_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, qualifier_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, ack_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt64(4, timestamp_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeMessage(5, getMessage());
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeBool(6, firstChunk_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeBool(7, lastChunk_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(1, seqNr_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, qualifier_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(3, ack_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(4, timestamp_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(5, getMessage());
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(6, firstChunk_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(7, lastChunk_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent)) {
        return super.equals(obj);
      }
      akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent other = (akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent) obj;

      if (hasSeqNr() != other.hasSeqNr()) return false;
      if (hasSeqNr()) {
        if (getSeqNr()
            != other.getSeqNr()) return false;
      }
      if (hasQualifier() != other.hasQualifier()) return false;
      if (hasQualifier()) {
        if (!getQualifier()
            .equals(other.getQualifier())) return false;
      }
      if (hasAck() != other.hasAck()) return false;
      if (hasAck()) {
        if (getAck()
            != other.getAck()) return false;
      }
      if (hasTimestamp() != other.hasTimestamp()) return false;
      if (hasTimestamp()) {
        if (getTimestamp()
            != other.getTimestamp()) return false;
      }
      if (hasMessage() != other.hasMessage()) return false;
      if (hasMessage()) {
        if (!getMessage()
            .equals(other.getMessage())) return false;
      }
      if (hasFirstChunk() != other.hasFirstChunk()) return false;
      if (hasFirstChunk()) {
        if (getFirstChunk()
            != other.getFirstChunk()) return false;
      }
      if (hasLastChunk() != other.hasLastChunk()) return false;
      if (hasLastChunk()) {
        if (getLastChunk()
            != other.getLastChunk()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSeqNr()) {
        hash = (37 * hash) + SEQNR_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getSeqNr());
      }
      if (hasQualifier()) {
        hash = (37 * hash) + QUALIFIER_FIELD_NUMBER;
        hash = (53 * hash) + getQualifier().hashCode();
      }
      if (hasAck()) {
        hash = (37 * hash) + ACK_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getAck());
      }
      if (hasTimestamp()) {
        hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getTimestamp());
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      if (hasFirstChunk()) {
        hash = (37 * hash) + FIRSTCHUNK_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getFirstChunk());
      }
      if (hasLastChunk()) {
        hash = (37 * hash) + LASTCHUNK_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getLastChunk());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * DurableProducerQueue
     * </pre>
     *
     * Protobuf type {@code akka.cluster.typed.delivery.MessageSent}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.typed.delivery.MessageSent)
        akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSentOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_MessageSent_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_MessageSent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.Builder.class);
      }

      // Construct using akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getMessageFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        seqNr_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        qualifier_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        ack_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        timestamp_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (messageBuilder_ == null) {
          message_ = null;
        } else {
          messageBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        firstChunk_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        lastChunk_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_MessageSent_descriptor;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent getDefaultInstanceForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent build() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent buildPartial() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent result = new akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.seqNr_ = seqNr_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.qualifier_ = qualifier_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.ack_ = ack_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.timestamp_ = timestamp_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          if (messageBuilder_ == null) {
            result.message_ = message_;
          } else {
            result.message_ = messageBuilder_.build();
          }
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.firstChunk_ = firstChunk_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.lastChunk_ = lastChunk_;
          to_bitField0_ |= 0x00000040;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent) {
          return mergeFrom((akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent other) {
        if (other == akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent.getDefaultInstance()) return this;
        if (other.hasSeqNr()) {
          setSeqNr(other.getSeqNr());
        }
        if (other.hasQualifier()) {
          bitField0_ |= 0x00000002;
          qualifier_ = other.qualifier_;
          onChanged();
        }
        if (other.hasAck()) {
          setAck(other.getAck());
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        if (other.hasMessage()) {
          mergeMessage(other.getMessage());
        }
        if (other.hasFirstChunk()) {
          setFirstChunk(other.getFirstChunk());
        }
        if (other.hasLastChunk()) {
          setLastChunk(other.getLastChunk());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasSeqNr()) {
          return false;
        }
        if (!hasQualifier()) {
          return false;
        }
        if (!hasAck()) {
          return false;
        }
        if (!hasTimestamp()) {
          return false;
        }
        if (!hasMessage()) {
          return false;
        }
        if (!getMessage().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long seqNr_ ;
      /**
       * <code>required int64 seqNr = 1;</code>
       * @return Whether the seqNr field is set.
       */
      public boolean hasSeqNr() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 seqNr = 1;</code>
       * @return The seqNr.
       */
      public long getSeqNr() {
        return seqNr_;
      }
      /**
       * <code>required int64 seqNr = 1;</code>
       * @param value The seqNr to set.
       * @return This builder for chaining.
       */
      public Builder setSeqNr(long value) {
        bitField0_ |= 0x00000001;
        seqNr_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 seqNr = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSeqNr() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seqNr_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object qualifier_ = "";
      /**
       * <code>required string qualifier = 2;</code>
       * @return Whether the qualifier field is set.
       */
      public boolean hasQualifier() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string qualifier = 2;</code>
       * @return The qualifier.
       */
      public java.lang.String getQualifier() {
        java.lang.Object ref = qualifier_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            qualifier_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string qualifier = 2;</code>
       * @return The bytes for qualifier.
       */
      public akka.protobufv3.internal.ByteString
          getQualifierBytes() {
        java.lang.Object ref = qualifier_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          qualifier_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string qualifier = 2;</code>
       * @param value The qualifier to set.
       * @return This builder for chaining.
       */
      public Builder setQualifier(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        qualifier_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string qualifier = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearQualifier() {
        bitField0_ = (bitField0_ & ~0x00000002);
        qualifier_ = getDefaultInstance().getQualifier();
        onChanged();
        return this;
      }
      /**
       * <code>required string qualifier = 2;</code>
       * @param value The bytes for qualifier to set.
       * @return This builder for chaining.
       */
      public Builder setQualifierBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        qualifier_ = value;
        onChanged();
        return this;
      }

      private boolean ack_ ;
      /**
       * <code>required bool ack = 3;</code>
       * @return Whether the ack field is set.
       */
      public boolean hasAck() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required bool ack = 3;</code>
       * @return The ack.
       */
      public boolean getAck() {
        return ack_;
      }
      /**
       * <code>required bool ack = 3;</code>
       * @param value The ack to set.
       * @return This builder for chaining.
       */
      public Builder setAck(boolean value) {
        bitField0_ |= 0x00000004;
        ack_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool ack = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAck() {
        bitField0_ = (bitField0_ & ~0x00000004);
        ack_ = false;
        onChanged();
        return this;
      }

      private long timestamp_ ;
      /**
       * <code>required int64 timestamp = 4;</code>
       * @return Whether the timestamp field is set.
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required int64 timestamp = 4;</code>
       * @return The timestamp.
       */
      public long getTimestamp() {
        return timestamp_;
      }
      /**
       * <code>required int64 timestamp = 4;</code>
       * @param value The timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestamp(long value) {
        bitField0_ |= 0x00000008;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 timestamp = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000008);
        timestamp_ = 0L;
        onChanged();
        return this;
      }

      private akka.remote.ContainerFormats.Payload message_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder> messageBuilder_;
      /**
       * <code>required .Payload message = 5;</code>
       * @return Whether the message field is set.
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required .Payload message = 5;</code>
       * @return The message.
       */
      public akka.remote.ContainerFormats.Payload getMessage() {
        if (messageBuilder_ == null) {
          return message_ == null ? akka.remote.ContainerFormats.Payload.getDefaultInstance() : message_;
        } else {
          return messageBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Payload message = 5;</code>
       */
      public Builder setMessage(akka.remote.ContainerFormats.Payload value) {
        if (messageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          message_ = value;
          onChanged();
        } else {
          messageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .Payload message = 5;</code>
       */
      public Builder setMessage(
          akka.remote.ContainerFormats.Payload.Builder builderForValue) {
        if (messageBuilder_ == null) {
          message_ = builderForValue.build();
          onChanged();
        } else {
          messageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .Payload message = 5;</code>
       */
      public Builder mergeMessage(akka.remote.ContainerFormats.Payload value) {
        if (messageBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
              message_ != null &&
              message_ != akka.remote.ContainerFormats.Payload.getDefaultInstance()) {
            message_ =
              akka.remote.ContainerFormats.Payload.newBuilder(message_).mergeFrom(value).buildPartial();
          } else {
            message_ = value;
          }
          onChanged();
        } else {
          messageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .Payload message = 5;</code>
       */
      public Builder clearMessage() {
        if (messageBuilder_ == null) {
          message_ = null;
          onChanged();
        } else {
          messageBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>required .Payload message = 5;</code>
       */
      public akka.remote.ContainerFormats.Payload.Builder getMessageBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Payload message = 5;</code>
       */
      public akka.remote.ContainerFormats.PayloadOrBuilder getMessageOrBuilder() {
        if (messageBuilder_ != null) {
          return messageBuilder_.getMessageOrBuilder();
        } else {
          return message_ == null ?
              akka.remote.ContainerFormats.Payload.getDefaultInstance() : message_;
        }
      }
      /**
       * <code>required .Payload message = 5;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder> 
          getMessageFieldBuilder() {
        if (messageBuilder_ == null) {
          messageBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.remote.ContainerFormats.Payload, akka.remote.ContainerFormats.Payload.Builder, akka.remote.ContainerFormats.PayloadOrBuilder>(
                  getMessage(),
                  getParentForChildren(),
                  isClean());
          message_ = null;
        }
        return messageBuilder_;
      }

      private boolean firstChunk_ ;
      /**
       * <code>optional bool firstChunk = 6;</code>
       * @return Whether the firstChunk field is set.
       */
      public boolean hasFirstChunk() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional bool firstChunk = 6;</code>
       * @return The firstChunk.
       */
      public boolean getFirstChunk() {
        return firstChunk_;
      }
      /**
       * <code>optional bool firstChunk = 6;</code>
       * @param value The firstChunk to set.
       * @return This builder for chaining.
       */
      public Builder setFirstChunk(boolean value) {
        bitField0_ |= 0x00000020;
        firstChunk_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool firstChunk = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearFirstChunk() {
        bitField0_ = (bitField0_ & ~0x00000020);
        firstChunk_ = false;
        onChanged();
        return this;
      }

      private boolean lastChunk_ ;
      /**
       * <code>optional bool lastChunk = 7;</code>
       * @return Whether the lastChunk field is set.
       */
      public boolean hasLastChunk() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional bool lastChunk = 7;</code>
       * @return The lastChunk.
       */
      public boolean getLastChunk() {
        return lastChunk_;
      }
      /**
       * <code>optional bool lastChunk = 7;</code>
       * @param value The lastChunk to set.
       * @return This builder for chaining.
       */
      public Builder setLastChunk(boolean value) {
        bitField0_ |= 0x00000040;
        lastChunk_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool lastChunk = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearLastChunk() {
        bitField0_ = (bitField0_ & ~0x00000040);
        lastChunk_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.typed.delivery.MessageSent)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.typed.delivery.MessageSent)
    private static final akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent();
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<MessageSent>
        PARSER = new akka.protobufv3.internal.AbstractParser<MessageSent>() {
      @java.lang.Override
      public MessageSent parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new MessageSent(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<MessageSent> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<MessageSent> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.MessageSent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CleanupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.typed.delivery.Cleanup)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated string qualifiers = 1;</code>
     * @return A list containing the qualifiers.
     */
    java.util.List<java.lang.String>
        getQualifiersList();
    /**
     * <code>repeated string qualifiers = 1;</code>
     * @return The count of qualifiers.
     */
    int getQualifiersCount();
    /**
     * <code>repeated string qualifiers = 1;</code>
     * @param index The index of the element to return.
     * @return The qualifiers at the given index.
     */
    java.lang.String getQualifiers(int index);
    /**
     * <code>repeated string qualifiers = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the qualifiers at the given index.
     */
    akka.protobufv3.internal.ByteString
        getQualifiersBytes(int index);
  }
  /**
   * <pre>
   * DurableProducerQueue
   * </pre>
   *
   * Protobuf type {@code akka.cluster.typed.delivery.Cleanup}
   */
  public  static final class Cleanup extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.typed.delivery.Cleanup)
      CleanupOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Cleanup.newBuilder() to construct.
    private Cleanup(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Cleanup() {
      qualifiers_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Cleanup();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Cleanup(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                qualifiers_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              qualifiers_.add(bs);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          qualifiers_ = qualifiers_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Cleanup_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Cleanup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup.Builder.class);
    }

    public static final int QUALIFIERS_FIELD_NUMBER = 1;
    private akka.protobufv3.internal.LazyStringList qualifiers_;
    /**
     * <code>repeated string qualifiers = 1;</code>
     * @return A list containing the qualifiers.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getQualifiersList() {
      return qualifiers_;
    }
    /**
     * <code>repeated string qualifiers = 1;</code>
     * @return The count of qualifiers.
     */
    public int getQualifiersCount() {
      return qualifiers_.size();
    }
    /**
     * <code>repeated string qualifiers = 1;</code>
     * @param index The index of the element to return.
     * @return The qualifiers at the given index.
     */
    public java.lang.String getQualifiers(int index) {
      return qualifiers_.get(index);
    }
    /**
     * <code>repeated string qualifiers = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the qualifiers at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getQualifiersBytes(int index) {
      return qualifiers_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < qualifiers_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, qualifiers_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < qualifiers_.size(); i++) {
          dataSize += computeStringSizeNoTag(qualifiers_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getQualifiersList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup)) {
        return super.equals(obj);
      }
      akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup other = (akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup) obj;

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

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

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * DurableProducerQueue
     * </pre>
     *
     * Protobuf type {@code akka.cluster.typed.delivery.Cleanup}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.typed.delivery.Cleanup)
        akka.cluster.typed.internal.protobuf.ReliableDelivery.CleanupOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Cleanup_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Cleanup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup.class, akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup.Builder.class);
      }

      // Construct using akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        qualifiers_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.internal_static_akka_cluster_typed_delivery_Cleanup_descriptor;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup getDefaultInstanceForType() {
        return akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup build() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup buildPartial() {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup result = new akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          qualifiers_ = qualifiers_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.qualifiers_ = qualifiers_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup) {
          return mergeFrom((akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup other) {
        if (other == akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup.getDefaultInstance()) return this;
        if (!other.qualifiers_.isEmpty()) {
          if (qualifiers_.isEmpty()) {
            qualifiers_ = other.qualifiers_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureQualifiersIsMutable();
            qualifiers_.addAll(other.qualifiers_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.protobufv3.internal.LazyStringList qualifiers_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureQualifiersIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          qualifiers_ = new akka.protobufv3.internal.LazyStringArrayList(qualifiers_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string qualifiers = 1;</code>
       * @return A list containing the qualifiers.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getQualifiersList() {
        return qualifiers_.getUnmodifiableView();
      }
      /**
       * <code>repeated string qualifiers = 1;</code>
       * @return The count of qualifiers.
       */
      public int getQualifiersCount() {
        return qualifiers_.size();
      }
      /**
       * <code>repeated string qualifiers = 1;</code>
       * @param index The index of the element to return.
       * @return The qualifiers at the given index.
       */
      public java.lang.String getQualifiers(int index) {
        return qualifiers_.get(index);
      }
      /**
       * <code>repeated string qualifiers = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the qualifiers at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getQualifiersBytes(int index) {
        return qualifiers_.getByteString(index);
      }
      /**
       * <code>repeated string qualifiers = 1;</code>
       * @param index The index to set the value at.
       * @param value The qualifiers to set.
       * @return This builder for chaining.
       */
      public Builder setQualifiers(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureQualifiersIsMutable();
        qualifiers_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string qualifiers = 1;</code>
       * @param value The qualifiers to add.
       * @return This builder for chaining.
       */
      public Builder addQualifiers(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureQualifiersIsMutable();
        qualifiers_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string qualifiers = 1;</code>
       * @param values The qualifiers to add.
       * @return This builder for chaining.
       */
      public Builder addAllQualifiers(
          java.lang.Iterable<java.lang.String> values) {
        ensureQualifiersIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, qualifiers_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string qualifiers = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearQualifiers() {
        qualifiers_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string qualifiers = 1;</code>
       * @param value The bytes of the qualifiers to add.
       * @return This builder for chaining.
       */
      public Builder addQualifiersBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureQualifiersIsMutable();
        qualifiers_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.typed.delivery.Cleanup)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.typed.delivery.Cleanup)
    private static final akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup();
    }

    public static akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Cleanup>
        PARSER = new akka.protobufv3.internal.AbstractParser<Cleanup>() {
      @java.lang.Override
      public Cleanup parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Cleanup(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Cleanup> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Cleanup> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.typed.internal.protobuf.ReliableDelivery.Cleanup getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_typed_delivery_SequencedMessage_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_typed_delivery_SequencedMessage_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_typed_delivery_RegisterConsumer_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_typed_delivery_RegisterConsumer_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_typed_delivery_Request_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_typed_delivery_Request_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_typed_delivery_Resend_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_typed_delivery_Resend_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_typed_delivery_Ack_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_typed_delivery_Ack_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_typed_delivery_State_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_typed_delivery_State_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_typed_delivery_Confirmed_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_typed_delivery_Confirmed_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_typed_delivery_MessageSent_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_typed_delivery_MessageSent_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_typed_delivery_Cleanup_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_typed_delivery_Cleanup_fieldAccessorTable;

  public static akka.protobufv3.internal.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  akka.protobufv3.internal.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\026ReliableDelivery.proto\022\033akka.cluster.t" +
      "yped.delivery\032\026ContainerFormats.proto\"\262\001" +
      "\n\020SequencedMessage\022\022\n\nproducerId\030\001 \002(\t\022\r" +
      "\n\005seqNr\030\002 \002(\003\022\r\n\005first\030\003 \002(\010\022\013\n\003ack\030\004 \002(" +
      "\010\022\035\n\025producerControllerRef\030\005 \002(\t\022\031\n\007mess" +
      "age\030\006 \002(\0132\010.Payload\022\022\n\nfirstChunk\030\007 \001(\010\022" +
      "\021\n\tlastChunk\030\010 \001(\010\"1\n\020RegisterConsumer\022\035" +
      "\n\025consumerControllerRef\030\001 \002(\t\"f\n\007Request" +
      "\022\026\n\016confirmedSeqNr\030\001 \002(\003\022\030\n\020requestUpToS" +
      "eqNr\030\002 \002(\003\022\025\n\rsupportResend\030\003 \002(\010\022\022\n\nvia" +
      "Timeout\030\004 \002(\010\"\033\n\006Resend\022\021\n\tfromSeqNr\030\001 \002" +
      "(\003\"\035\n\003Ack\022\026\n\016confirmedSeqNr\030\001 \002(\003\"\266\001\n\005St" +
      "ate\022\024\n\014currentSeqNr\030\001 \002(\003\022\035\n\025highestConf" +
      "irmedSeqNr\030\002 \002(\003\0229\n\tconfirmed\030\003 \003(\0132&.ak" +
      "ka.cluster.typed.delivery.Confirmed\022=\n\013u" +
      "nconfirmed\030\004 \003(\0132(.akka.cluster.typed.de" +
      "livery.MessageSent\"@\n\tConfirmed\022\r\n\005seqNr" +
      "\030\001 \002(\003\022\021\n\tqualifier\030\002 \002(\t\022\021\n\ttimestamp\030\003" +
      " \002(\003\"\221\001\n\013MessageSent\022\r\n\005seqNr\030\001 \002(\003\022\021\n\tq" +
      "ualifier\030\002 \002(\t\022\013\n\003ack\030\003 \002(\010\022\021\n\ttimestamp" +
      "\030\004 \002(\003\022\031\n\007message\030\005 \002(\0132\010.Payload\022\022\n\nfir" +
      "stChunk\030\006 \001(\010\022\021\n\tlastChunk\030\007 \001(\010\"\035\n\007Clea" +
      "nup\022\022\n\nqualifiers\030\001 \003(\tB(\n$akka.cluster." +
      "typed.internal.protobufH\001"
    };
    descriptor = akka.protobufv3.internal.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new akka.protobufv3.internal.Descriptors.FileDescriptor[] {
          akka.remote.ContainerFormats.getDescriptor(),
        });
    internal_static_akka_cluster_typed_delivery_SequencedMessage_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_akka_cluster_typed_delivery_SequencedMessage_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_typed_delivery_SequencedMessage_descriptor,
        new java.lang.String[] { "ProducerId", "SeqNr", "First", "Ack", "ProducerControllerRef", "Message", "FirstChunk", "LastChunk", });
    internal_static_akka_cluster_typed_delivery_RegisterConsumer_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_akka_cluster_typed_delivery_RegisterConsumer_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_typed_delivery_RegisterConsumer_descriptor,
        new java.lang.String[] { "ConsumerControllerRef", });
    internal_static_akka_cluster_typed_delivery_Request_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_akka_cluster_typed_delivery_Request_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_typed_delivery_Request_descriptor,
        new java.lang.String[] { "ConfirmedSeqNr", "RequestUpToSeqNr", "SupportResend", "ViaTimeout", });
    internal_static_akka_cluster_typed_delivery_Resend_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_akka_cluster_typed_delivery_Resend_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_typed_delivery_Resend_descriptor,
        new java.lang.String[] { "FromSeqNr", });
    internal_static_akka_cluster_typed_delivery_Ack_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_akka_cluster_typed_delivery_Ack_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_typed_delivery_Ack_descriptor,
        new java.lang.String[] { "ConfirmedSeqNr", });
    internal_static_akka_cluster_typed_delivery_State_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_akka_cluster_typed_delivery_State_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_typed_delivery_State_descriptor,
        new java.lang.String[] { "CurrentSeqNr", "HighestConfirmedSeqNr", "Confirmed", "Unconfirmed", });
    internal_static_akka_cluster_typed_delivery_Confirmed_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_akka_cluster_typed_delivery_Confirmed_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_typed_delivery_Confirmed_descriptor,
        new java.lang.String[] { "SeqNr", "Qualifier", "Timestamp", });
    internal_static_akka_cluster_typed_delivery_MessageSent_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_akka_cluster_typed_delivery_MessageSent_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_typed_delivery_MessageSent_descriptor,
        new java.lang.String[] { "SeqNr", "Qualifier", "Ack", "Timestamp", "Message", "FirstChunk", "LastChunk", });
    internal_static_akka_cluster_typed_delivery_Cleanup_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_akka_cluster_typed_delivery_Cleanup_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_typed_delivery_Cleanup_descriptor,
        new java.lang.String[] { "Qualifiers", });
    akka.remote.ContainerFormats.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
