content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // NO CHECKED-IN PROTOBUF GENCODE
  // source: messages.proto
  // Protobuf Java Version: 4.28.2
  
  package finsky.protos;
  
  /**
   * Protobuf type {@code finsky.protos.AndroidAppDeliveryData}
   */
  public  final class AndroidAppDeliveryData extends
      com.google.protobuf.GeneratedMessageLite<
          AndroidAppDeliveryData, AndroidAppDeliveryData.Builder> implements
      // @@protoc_insertion_point(message_implements:finsky.protos.AndroidAppDeliveryData)
      AndroidAppDeliveryDataOrBuilder {
    private AndroidAppDeliveryData() {
      sha1_ = "";
      downloadUrl_ = "";
      additionalFile_ = emptyProtobufList();
      downloadAuthCookie_ = emptyProtobufList();
      serverInitiated_ = true;
      compressedDownloadUrl_ = "";
      splitDeliveryData_ = emptyProtobufList();
      sha256_ = "";
    }
    private int bitField0_;
    public static final int DOWNLOADSIZE_FIELD_NUMBER = 1;
    private long downloadSize_;
    /**
     * <code>optional int64 downloadSize = 1;</code>
     * @return Whether the downloadSize field is set.
     */
    @java.lang.Override
    public boolean hasDownloadSize() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int64 downloadSize = 1;</code>
     * @return The downloadSize.
     */
    @java.lang.Override
    public long getDownloadSize() {
      return downloadSize_;
    }
    /**
     * <code>optional int64 downloadSize = 1;</code>
     * @param value The downloadSize to set.
     */
    private void setDownloadSize(long value) {
      bitField0_ |= 0x00000001;
      downloadSize_ = value;
    }
    /**
     * <code>optional int64 downloadSize = 1;</code>
     */
    private void clearDownloadSize() {
      bitField0_ = (bitField0_ & ~0x00000001);
      downloadSize_ = 0L;
    }
  
    public static final int SHA1_FIELD_NUMBER = 2;
    private java.lang.String sha1_;
    /**
     * <code>optional string sha1 = 2;</code>
     * @return Whether the sha1 field is set.
     */
    @java.lang.Override
    public boolean hasSha1() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string sha1 = 2;</code>
     * @return The sha1.
     */
    @java.lang.Override
    public java.lang.String getSha1() {
      return sha1_;
    }
    /**
     * <code>optional string sha1 = 2;</code>
     * @return The bytes for sha1.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSha1Bytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(sha1_);
    }
    /**
     * <code>optional string sha1 = 2;</code>
     * @param value The sha1 to set.
     */
    private void setSha1(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000002;
      sha1_ = value;
    }
    /**
     * <code>optional string sha1 = 2;</code>
     */
    private void clearSha1() {
      bitField0_ = (bitField0_ & ~0x00000002);
      sha1_ = getDefaultInstance().getSha1();
    }
    /**
     * <code>optional string sha1 = 2;</code>
     * @param value The bytes for sha1 to set.
     */
    private void setSha1Bytes(
        com.google.protobuf.ByteString value) {
      sha1_ = value.toStringUtf8();
      bitField0_ |= 0x00000002;
    }
  
    public static final int DOWNLOADURL_FIELD_NUMBER = 3;
    private java.lang.String downloadUrl_;
    /**
     * <code>optional string downloadUrl = 3;</code>
     * @return Whether the downloadUrl field is set.
     */
    @java.lang.Override
    public boolean hasDownloadUrl() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string downloadUrl = 3;</code>
     * @return The downloadUrl.
     */
    @java.lang.Override
    public java.lang.String getDownloadUrl() {
      return downloadUrl_;
    }
    /**
     * <code>optional string downloadUrl = 3;</code>
     * @return The bytes for downloadUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDownloadUrlBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(downloadUrl_);
    }
    /**
     * <code>optional string downloadUrl = 3;</code>
     * @param value The downloadUrl to set.
     */
    private void setDownloadUrl(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000004;
      downloadUrl_ = value;
    }
    /**
     * <code>optional string downloadUrl = 3;</code>
     */
    private void clearDownloadUrl() {
      bitField0_ = (bitField0_ & ~0x00000004);
      downloadUrl_ = getDefaultInstance().getDownloadUrl();
    }
    /**
     * <code>optional string downloadUrl = 3;</code>
     * @param value The bytes for downloadUrl to set.
     */
    private void setDownloadUrlBytes(
        com.google.protobuf.ByteString value) {
      downloadUrl_ = value.toStringUtf8();
      bitField0_ |= 0x00000004;
    }
  
    public static final int ADDITIONALFILE_FIELD_NUMBER = 4;
    private com.google.protobuf.Internal.ProtobufList<finsky.protos.AppFileMetadata> additionalFile_;
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    @java.lang.Override
    public java.util.List<finsky.protos.AppFileMetadata> getAdditionalFileList() {
      return additionalFile_;
    }
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    public java.util.List<? extends finsky.protos.AppFileMetadataOrBuilder> 
        getAdditionalFileOrBuilderList() {
      return additionalFile_;
    }
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    @java.lang.Override
    public int getAdditionalFileCount() {
      return additionalFile_.size();
    }
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    @java.lang.Override
    public finsky.protos.AppFileMetadata getAdditionalFile(int index) {
      return additionalFile_.get(index);
    }
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    public finsky.protos.AppFileMetadataOrBuilder getAdditionalFileOrBuilder(
        int index) {
      return additionalFile_.get(index);
    }
    private void ensureAdditionalFileIsMutable() {
      com.google.protobuf.Internal.ProtobufList<finsky.protos.AppFileMetadata> tmp = additionalFile_;
      if (!tmp.isModifiable()) {
        additionalFile_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
  
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    private void setAdditionalFile(
        int index, finsky.protos.AppFileMetadata value) {
      value.getClass();
    ensureAdditionalFileIsMutable();
      additionalFile_.set(index, value);
    }
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    private void addAdditionalFile(finsky.protos.AppFileMetadata value) {
      value.getClass();
    ensureAdditionalFileIsMutable();
      additionalFile_.add(value);
    }
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    private void addAdditionalFile(
        int index, finsky.protos.AppFileMetadata value) {
      value.getClass();
    ensureAdditionalFileIsMutable();
      additionalFile_.add(index, value);
    }
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    private void addAllAdditionalFile(
        java.lang.Iterable<? extends finsky.protos.AppFileMetadata> values) {
      ensureAdditionalFileIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, additionalFile_);
    }
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    private void clearAdditionalFile() {
      additionalFile_ = emptyProtobufList();
    }
    /**
     * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
     */
    private void removeAdditionalFile(int index) {
      ensureAdditionalFileIsMutable();
      additionalFile_.remove(index);
    }
  
    public static final int DOWNLOADAUTHCOOKIE_FIELD_NUMBER = 5;
    private com.google.protobuf.Internal.ProtobufList<finsky.protos.HttpCookie> downloadAuthCookie_;
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    @java.lang.Override
    public java.util.List<finsky.protos.HttpCookie> getDownloadAuthCookieList() {
      return downloadAuthCookie_;
    }
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    public java.util.List<? extends finsky.protos.HttpCookieOrBuilder> 
        getDownloadAuthCookieOrBuilderList() {
      return downloadAuthCookie_;
    }
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    @java.lang.Override
    public int getDownloadAuthCookieCount() {
      return downloadAuthCookie_.size();
    }
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    @java.lang.Override
    public finsky.protos.HttpCookie getDownloadAuthCookie(int index) {
      return downloadAuthCookie_.get(index);
    }
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    public finsky.protos.HttpCookieOrBuilder getDownloadAuthCookieOrBuilder(
        int index) {
      return downloadAuthCookie_.get(index);
    }
    private void ensureDownloadAuthCookieIsMutable() {
      com.google.protobuf.Internal.ProtobufList<finsky.protos.HttpCookie> tmp = downloadAuthCookie_;
      if (!tmp.isModifiable()) {
        downloadAuthCookie_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
  
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    private void setDownloadAuthCookie(
        int index, finsky.protos.HttpCookie value) {
      value.getClass();
    ensureDownloadAuthCookieIsMutable();
      downloadAuthCookie_.set(index, value);
    }
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    private void addDownloadAuthCookie(finsky.protos.HttpCookie value) {
      value.getClass();
    ensureDownloadAuthCookieIsMutable();
      downloadAuthCookie_.add(value);
    }
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    private void addDownloadAuthCookie(
        int index, finsky.protos.HttpCookie value) {
      value.getClass();
    ensureDownloadAuthCookieIsMutable();
      downloadAuthCookie_.add(index, value);
    }
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    private void addAllDownloadAuthCookie(
        java.lang.Iterable<? extends finsky.protos.HttpCookie> values) {
      ensureDownloadAuthCookieIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, downloadAuthCookie_);
    }
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    private void clearDownloadAuthCookie() {
      downloadAuthCookie_ = emptyProtobufList();
    }
    /**
     * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
     */
    private void removeDownloadAuthCookie(int index) {
      ensureDownloadAuthCookieIsMutable();
      downloadAuthCookie_.remove(index);
    }
  
    public static final int FORWARDLOCKED_FIELD_NUMBER = 6;
    private boolean forwardLocked_;
    /**
     * <code>optional bool forwardLocked = 6;</code>
     * @return Whether the forwardLocked field is set.
     */
    @java.lang.Override
    public boolean hasForwardLocked() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional bool forwardLocked = 6;</code>
     * @return The forwardLocked.
     */
    @java.lang.Override
    public boolean getForwardLocked() {
      return forwardLocked_;
    }
    /**
     * <code>optional bool forwardLocked = 6;</code>
     * @param value The forwardLocked to set.
     */
    private void setForwardLocked(boolean value) {
      bitField0_ |= 0x00000008;
      forwardLocked_ = value;
    }
    /**
     * <code>optional bool forwardLocked = 6;</code>
     */
    private void clearForwardLocked() {
      bitField0_ = (bitField0_ & ~0x00000008);
      forwardLocked_ = false;
    }
  
    public static final int REFUNDTIMEOUT_FIELD_NUMBER = 7;
    private long refundTimeout_;
    /**
     * <code>optional int64 refundTimeout = 7;</code>
     * @return Whether the refundTimeout field is set.
     */
    @java.lang.Override
    public boolean hasRefundTimeout() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int64 refundTimeout = 7;</code>
     * @return The refundTimeout.
     */
    @java.lang.Override
    public long getRefundTimeout() {
      return refundTimeout_;
    }
    /**
     * <code>optional int64 refundTimeout = 7;</code>
     * @param value The refundTimeout to set.
     */
    private void setRefundTimeout(long value) {
      bitField0_ |= 0x00000010;
      refundTimeout_ = value;
    }
    /**
     * <code>optional int64 refundTimeout = 7;</code>
     */
    private void clearRefundTimeout() {
      bitField0_ = (bitField0_ & ~0x00000010);
      refundTimeout_ = 0L;
    }
  
    public static final int SERVERINITIATED_FIELD_NUMBER = 8;
    private boolean serverInitiated_;
    /**
     * <code>optional bool serverInitiated = 8 [default = true];</code>
     * @return Whether the serverInitiated field is set.
     */
    @java.lang.Override
    public boolean hasServerInitiated() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional bool serverInitiated = 8 [default = true];</code>
     * @return The serverInitiated.
     */
    @java.lang.Override
    public boolean getServerInitiated() {
      return serverInitiated_;
    }
    /**
     * <code>optional bool serverInitiated = 8 [default = true];</code>
     * @param value The serverInitiated to set.
     */
    private void setServerInitiated(boolean value) {
      bitField0_ |= 0x00000020;
      serverInitiated_ = value;
    }
    /**
     * <code>optional bool serverInitiated = 8 [default = true];</code>
     */
    private void clearServerInitiated() {
      bitField0_ = (bitField0_ & ~0x00000020);
      serverInitiated_ = true;
    }
  
    public static final int POSTINSTALLREFUNDWINDOWMILLIS_FIELD_NUMBER = 9;
    private long postInstallRefundWindowMillis_;
    /**
     * <code>optional int64 postInstallRefundWindowMillis = 9;</code>
     * @return Whether the postInstallRefundWindowMillis field is set.
     */
    @java.lang.Override
    public boolean hasPostInstallRefundWindowMillis() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional int64 postInstallRefundWindowMillis = 9;</code>
     * @return The postInstallRefundWindowMillis.
     */
    @java.lang.Override
    public long getPostInstallRefundWindowMillis() {
      return postInstallRefundWindowMillis_;
    }
    /**
     * <code>optional int64 postInstallRefundWindowMillis = 9;</code>
     * @param value The postInstallRefundWindowMillis to set.
     */
    private void setPostInstallRefundWindowMillis(long value) {
      bitField0_ |= 0x00000040;
      postInstallRefundWindowMillis_ = value;
    }
    /**
     * <code>optional int64 postInstallRefundWindowMillis = 9;</code>
     */
    private void clearPostInstallRefundWindowMillis() {
      bitField0_ = (bitField0_ & ~0x00000040);
      postInstallRefundWindowMillis_ = 0L;
    }
  
    public static final int IMMEDIATESTARTNEEDED_FIELD_NUMBER = 10;
    private boolean immediateStartNeeded_;
    /**
     * <code>optional bool immediateStartNeeded = 10;</code>
     * @return Whether the immediateStartNeeded field is set.
     */
    @java.lang.Override
    public boolean hasImmediateStartNeeded() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional bool immediateStartNeeded = 10;</code>
     * @return The immediateStartNeeded.
     */
    @java.lang.Override
    public boolean getImmediateStartNeeded() {
      return immediateStartNeeded_;
    }
    /**
     * <code>optional bool immediateStartNeeded = 10;</code>
     * @param value The immediateStartNeeded to set.
     */
    private void setImmediateStartNeeded(boolean value) {
      bitField0_ |= 0x00000080;
      immediateStartNeeded_ = value;
    }
    /**
     * <code>optional bool immediateStartNeeded = 10;</code>
     */
    private void clearImmediateStartNeeded() {
      bitField0_ = (bitField0_ & ~0x00000080);
      immediateStartNeeded_ = false;
    }
  
    public static final int PATCHDATA_FIELD_NUMBER = 11;
    private finsky.protos.AndroidAppPatchData patchData_;
    /**
     * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
     */
    @java.lang.Override
    public boolean hasPatchData() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
     */
    @java.lang.Override
    public finsky.protos.AndroidAppPatchData getPatchData() {
      return patchData_ == null ? finsky.protos.AndroidAppPatchData.getDefaultInstance() : patchData_;
    }
    /**
     * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
     */
    private void setPatchData(finsky.protos.AndroidAppPatchData value) {
      value.getClass();
    patchData_ = value;
      bitField0_ |= 0x00000100;
      }
    /**
     * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergePatchData(finsky.protos.AndroidAppPatchData value) {
      value.getClass();
    if (patchData_ != null &&
          patchData_ != finsky.protos.AndroidAppPatchData.getDefaultInstance()) {
        patchData_ =
          finsky.protos.AndroidAppPatchData.newBuilder(patchData_).mergeFrom(value).buildPartial();
      } else {
        patchData_ = value;
      }
      bitField0_ |= 0x00000100;
    }
    /**
     * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
     */
    private void clearPatchData() {  patchData_ = null;
      bitField0_ = (bitField0_ & ~0x00000100);
    }
  
    public static final int ENCRYPTIONPARAMS_FIELD_NUMBER = 12;
    private finsky.protos.EncryptionParams encryptionParams_;
    /**
     * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
     */
    @java.lang.Override
    public boolean hasEncryptionParams() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
     */
    @java.lang.Override
    public finsky.protos.EncryptionParams getEncryptionParams() {
      return encryptionParams_ == null ? finsky.protos.EncryptionParams.getDefaultInstance() : encryptionParams_;
    }
    /**
     * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
     */
    private void setEncryptionParams(finsky.protos.EncryptionParams value) {
      value.getClass();
    encryptionParams_ = value;
      bitField0_ |= 0x00000200;
      }
    /**
     * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeEncryptionParams(finsky.protos.EncryptionParams value) {
      value.getClass();
    if (encryptionParams_ != null &&
          encryptionParams_ != finsky.protos.EncryptionParams.getDefaultInstance()) {
        encryptionParams_ =
          finsky.protos.EncryptionParams.newBuilder(encryptionParams_).mergeFrom(value).buildPartial();
      } else {
        encryptionParams_ = value;
      }
      bitField0_ |= 0x00000200;
    }
    /**
     * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
     */
    private void clearEncryptionParams() {  encryptionParams_ = null;
      bitField0_ = (bitField0_ & ~0x00000200);
    }
  
    public static final int COMPRESSEDDOWNLOADURL_FIELD_NUMBER = 13;
    private java.lang.String compressedDownloadUrl_;
    /**
     * <code>optional string compressedDownloadUrl = 13;</code>
     * @return Whether the compressedDownloadUrl field is set.
     */
    @java.lang.Override
    public boolean hasCompressedDownloadUrl() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional string compressedDownloadUrl = 13;</code>
     * @return The compressedDownloadUrl.
     */
    @java.lang.Override
    public java.lang.String getCompressedDownloadUrl() {
      return compressedDownloadUrl_;
    }
    /**
     * <code>optional string compressedDownloadUrl = 13;</code>
     * @return The bytes for compressedDownloadUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCompressedDownloadUrlBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(compressedDownloadUrl_);
    }
    /**
     * <code>optional string compressedDownloadUrl = 13;</code>
     * @param value The compressedDownloadUrl to set.
     */
    private void setCompressedDownloadUrl(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000400;
      compressedDownloadUrl_ = value;
    }
    /**
     * <code>optional string compressedDownloadUrl = 13;</code>
     */
    private void clearCompressedDownloadUrl() {
      bitField0_ = (bitField0_ & ~0x00000400);
      compressedDownloadUrl_ = getDefaultInstance().getCompressedDownloadUrl();
    }
    /**
     * <code>optional string compressedDownloadUrl = 13;</code>
     * @param value The bytes for compressedDownloadUrl to set.
     */
    private void setCompressedDownloadUrlBytes(
        com.google.protobuf.ByteString value) {
      compressedDownloadUrl_ = value.toStringUtf8();
      bitField0_ |= 0x00000400;
    }
  
    public static final int COMPRESSEDSIZE_FIELD_NUMBER = 14;
    private long compressedSize_;
    /**
     * <code>optional int64 compressedSize = 14;</code>
     * @return Whether the compressedSize field is set.
     */
    @java.lang.Override
    public boolean hasCompressedSize() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional int64 compressedSize = 14;</code>
     * @return The compressedSize.
     */
    @java.lang.Override
    public long getCompressedSize() {
      return compressedSize_;
    }
    /**
     * <code>optional int64 compressedSize = 14;</code>
     * @param value The compressedSize to set.
     */
    private void setCompressedSize(long value) {
      bitField0_ |= 0x00000800;
      compressedSize_ = value;
    }
    /**
     * <code>optional int64 compressedSize = 14;</code>
     */
    private void clearCompressedSize() {
      bitField0_ = (bitField0_ & ~0x00000800);
      compressedSize_ = 0L;
    }
  
    public static final int SPLITDELIVERYDATA_FIELD_NUMBER = 15;
    private com.google.protobuf.Internal.ProtobufList<finsky.protos.SplitDeliveryData> splitDeliveryData_;
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    @java.lang.Override
    public java.util.List<finsky.protos.SplitDeliveryData> getSplitDeliveryDataList() {
      return splitDeliveryData_;
    }
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    public java.util.List<? extends finsky.protos.SplitDeliveryDataOrBuilder> 
        getSplitDeliveryDataOrBuilderList() {
      return splitDeliveryData_;
    }
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    @java.lang.Override
    public int getSplitDeliveryDataCount() {
      return splitDeliveryData_.size();
    }
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    @java.lang.Override
    public finsky.protos.SplitDeliveryData getSplitDeliveryData(int index) {
      return splitDeliveryData_.get(index);
    }
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    public finsky.protos.SplitDeliveryDataOrBuilder getSplitDeliveryDataOrBuilder(
        int index) {
      return splitDeliveryData_.get(index);
    }
    private void ensureSplitDeliveryDataIsMutable() {
      com.google.protobuf.Internal.ProtobufList<finsky.protos.SplitDeliveryData> tmp = splitDeliveryData_;
      if (!tmp.isModifiable()) {
        splitDeliveryData_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
  
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    private void setSplitDeliveryData(
        int index, finsky.protos.SplitDeliveryData value) {
      value.getClass();
    ensureSplitDeliveryDataIsMutable();
      splitDeliveryData_.set(index, value);
    }
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    private void addSplitDeliveryData(finsky.protos.SplitDeliveryData value) {
      value.getClass();
    ensureSplitDeliveryDataIsMutable();
      splitDeliveryData_.add(value);
    }
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    private void addSplitDeliveryData(
        int index, finsky.protos.SplitDeliveryData value) {
      value.getClass();
    ensureSplitDeliveryDataIsMutable();
      splitDeliveryData_.add(index, value);
    }
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    private void addAllSplitDeliveryData(
        java.lang.Iterable<? extends finsky.protos.SplitDeliveryData> values) {
      ensureSplitDeliveryDataIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, splitDeliveryData_);
    }
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    private void clearSplitDeliveryData() {
      splitDeliveryData_ = emptyProtobufList();
    }
    /**
     * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
     */
    private void removeSplitDeliveryData(int index) {
      ensureSplitDeliveryDataIsMutable();
      splitDeliveryData_.remove(index);
    }
  
    public static final int INSTALLLOCATION_FIELD_NUMBER = 16;
    private int installLocation_;
    /**
     * <code>optional int32 installLocation = 16;</code>
     * @return Whether the installLocation field is set.
     */
    @java.lang.Override
    public boolean hasInstallLocation() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional int32 installLocation = 16;</code>
     * @return The installLocation.
     */
    @java.lang.Override
    public int getInstallLocation() {
      return installLocation_;
    }
    /**
     * <code>optional int32 installLocation = 16;</code>
     * @param value The installLocation to set.
     */
    private void setInstallLocation(int value) {
      bitField0_ |= 0x00001000;
      installLocation_ = value;
    }
    /**
     * <code>optional int32 installLocation = 16;</code>
     */
    private void clearInstallLocation() {
      bitField0_ = (bitField0_ & ~0x00001000);
      installLocation_ = 0;
    }
  
    public static final int TYPE_FIELD_NUMBER = 17;
    private long type_;
    /**
     * <code>optional int64 type = 17;</code>
     * @return Whether the type field is set.
     */
    @java.lang.Override
    public boolean hasType() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional int64 type = 17;</code>
     * @return The type.
     */
    @java.lang.Override
    public long getType() {
      return type_;
    }
    /**
     * <code>optional int64 type = 17;</code>
     * @param value The type to set.
     */
    private void setType(long value) {
      bitField0_ |= 0x00002000;
      type_ = value;
    }
    /**
     * <code>optional int64 type = 17;</code>
     */
    private void clearType() {
      bitField0_ = (bitField0_ & ~0x00002000);
      type_ = 0L;
    }
  
    public static final int COMPRESSEDAPPDATA_FIELD_NUMBER = 18;
    private finsky.protos.CompressedAppData compressedAppData_;
    /**
     * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
     */
    @java.lang.Override
    public boolean hasCompressedAppData() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
     */
    @java.lang.Override
    public finsky.protos.CompressedAppData getCompressedAppData() {
      return compressedAppData_ == null ? finsky.protos.CompressedAppData.getDefaultInstance() : compressedAppData_;
    }
    /**
     * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
     */
    private void setCompressedAppData(finsky.protos.CompressedAppData value) {
      value.getClass();
    compressedAppData_ = value;
      bitField0_ |= 0x00004000;
      }
    /**
     * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeCompressedAppData(finsky.protos.CompressedAppData value) {
      value.getClass();
    if (compressedAppData_ != null &&
          compressedAppData_ != finsky.protos.CompressedAppData.getDefaultInstance()) {
        compressedAppData_ =
          finsky.protos.CompressedAppData.newBuilder(compressedAppData_).mergeFrom(value).buildPartial();
      } else {
        compressedAppData_ = value;
      }
      bitField0_ |= 0x00004000;
    }
    /**
     * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
     */
    private void clearCompressedAppData() {  compressedAppData_ = null;
      bitField0_ = (bitField0_ & ~0x00004000);
    }
  
    public static final int SHA256_FIELD_NUMBER = 19;
    private java.lang.String sha256_;
    /**
     * <code>optional string sha256 = 19;</code>
     * @return Whether the sha256 field is set.
     */
    @java.lang.Override
    public boolean hasSha256() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <code>optional string sha256 = 19;</code>
     * @return The sha256.
     */
    @java.lang.Override
    public java.lang.String getSha256() {
      return sha256_;
    }
    /**
     * <code>optional string sha256 = 19;</code>
     * @return The bytes for sha256.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSha256Bytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(sha256_);
    }
    /**
     * <code>optional string sha256 = 19;</code>
     * @param value The sha256 to set.
     */
    private void setSha256(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00008000;
      sha256_ = value;
    }
    /**
     * <code>optional string sha256 = 19;</code>
     */
    private void clearSha256() {
      bitField0_ = (bitField0_ & ~0x00008000);
      sha256_ = getDefaultInstance().getSha256();
    }
    /**
     * <code>optional string sha256 = 19;</code>
     * @param value The bytes for sha256 to set.
     */
    private void setSha256Bytes(
        com.google.protobuf.ByteString value) {
      sha256_ = value.toStringUtf8();
      bitField0_ |= 0x00008000;
    }
  
    public static finsky.protos.AndroidAppDeliveryData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.AndroidAppDeliveryData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static finsky.protos.AndroidAppDeliveryData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.AndroidAppDeliveryData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static finsky.protos.AndroidAppDeliveryData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.AndroidAppDeliveryData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static finsky.protos.AndroidAppDeliveryData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.AndroidAppDeliveryData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
  
    public static finsky.protos.AndroidAppDeliveryData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
  
    public static finsky.protos.AndroidAppDeliveryData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static finsky.protos.AndroidAppDeliveryData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.AndroidAppDeliveryData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
  
    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(finsky.protos.AndroidAppDeliveryData prototype) {
      return DEFAULT_INSTANCE.createBuilder(prototype);
    }
  
    /**
     * Protobuf type {@code finsky.protos.AndroidAppDeliveryData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          finsky.protos.AndroidAppDeliveryData, Builder> implements
        // @@protoc_insertion_point(builder_implements:finsky.protos.AndroidAppDeliveryData)
        finsky.protos.AndroidAppDeliveryDataOrBuilder {
      // Construct using finsky.protos.AndroidAppDeliveryData.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }
  
  
      /**
       * <code>optional int64 downloadSize = 1;</code>
       * @return Whether the downloadSize field is set.
       */
      @java.lang.Override
      public boolean hasDownloadSize() {
        return instance.hasDownloadSize();
      }
      /**
       * <code>optional int64 downloadSize = 1;</code>
       * @return The downloadSize.
       */
      @java.lang.Override
      public long getDownloadSize() {
        return instance.getDownloadSize();
      }
      /**
       * <code>optional int64 downloadSize = 1;</code>
       * @param value The downloadSize to set.
       * @return This builder for chaining.
       */
      public Builder setDownloadSize(long value) {
        copyOnWrite();
        instance.setDownloadSize(value);
        return this;
      }
      /**
       * <code>optional int64 downloadSize = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDownloadSize() {
        copyOnWrite();
        instance.clearDownloadSize();
        return this;
      }
  
      /**
       * <code>optional string sha1 = 2;</code>
       * @return Whether the sha1 field is set.
       */
      @java.lang.Override
      public boolean hasSha1() {
        return instance.hasSha1();
      }
      /**
       * <code>optional string sha1 = 2;</code>
       * @return The sha1.
       */
      @java.lang.Override
      public java.lang.String getSha1() {
        return instance.getSha1();
      }
      /**
       * <code>optional string sha1 = 2;</code>
       * @return The bytes for sha1.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSha1Bytes() {
        return instance.getSha1Bytes();
      }
      /**
       * <code>optional string sha1 = 2;</code>
       * @param value The sha1 to set.
       * @return This builder for chaining.
       */
      public Builder setSha1(
          java.lang.String value) {
        copyOnWrite();
        instance.setSha1(value);
        return this;
      }
      /**
       * <code>optional string sha1 = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSha1() {
        copyOnWrite();
        instance.clearSha1();
        return this;
      }
      /**
       * <code>optional string sha1 = 2;</code>
       * @param value The bytes for sha1 to set.
       * @return This builder for chaining.
       */
      public Builder setSha1Bytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSha1Bytes(value);
        return this;
      }
  
      /**
       * <code>optional string downloadUrl = 3;</code>
       * @return Whether the downloadUrl field is set.
       */
      @java.lang.Override
      public boolean hasDownloadUrl() {
        return instance.hasDownloadUrl();
      }
      /**
       * <code>optional string downloadUrl = 3;</code>
       * @return The downloadUrl.
       */
      @java.lang.Override
      public java.lang.String getDownloadUrl() {
        return instance.getDownloadUrl();
      }
      /**
       * <code>optional string downloadUrl = 3;</code>
       * @return The bytes for downloadUrl.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDownloadUrlBytes() {
        return instance.getDownloadUrlBytes();
      }
      /**
       * <code>optional string downloadUrl = 3;</code>
       * @param value The downloadUrl to set.
       * @return This builder for chaining.
       */
      public Builder setDownloadUrl(
          java.lang.String value) {
        copyOnWrite();
        instance.setDownloadUrl(value);
        return this;
      }
      /**
       * <code>optional string downloadUrl = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDownloadUrl() {
        copyOnWrite();
        instance.clearDownloadUrl();
        return this;
      }
      /**
       * <code>optional string downloadUrl = 3;</code>
       * @param value The bytes for downloadUrl to set.
       * @return This builder for chaining.
       */
      public Builder setDownloadUrlBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setDownloadUrlBytes(value);
        return this;
      }
  
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.AppFileMetadata> getAdditionalFileList() {
        return java.util.Collections.unmodifiableList(
            instance.getAdditionalFileList());
      }
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      @java.lang.Override
      public int getAdditionalFileCount() {
        return instance.getAdditionalFileCount();
      }/**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      @java.lang.Override
      public finsky.protos.AppFileMetadata getAdditionalFile(int index) {
        return instance.getAdditionalFile(index);
      }
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      public Builder setAdditionalFile(
          int index, finsky.protos.AppFileMetadata value) {
        copyOnWrite();
        instance.setAdditionalFile(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      public Builder setAdditionalFile(
          int index, finsky.protos.AppFileMetadata.Builder builderForValue) {
        copyOnWrite();
        instance.setAdditionalFile(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      public Builder addAdditionalFile(finsky.protos.AppFileMetadata value) {
        copyOnWrite();
        instance.addAdditionalFile(value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      public Builder addAdditionalFile(
          int index, finsky.protos.AppFileMetadata value) {
        copyOnWrite();
        instance.addAdditionalFile(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      public Builder addAdditionalFile(
          finsky.protos.AppFileMetadata.Builder builderForValue) {
        copyOnWrite();
        instance.addAdditionalFile(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      public Builder addAdditionalFile(
          int index, finsky.protos.AppFileMetadata.Builder builderForValue) {
        copyOnWrite();
        instance.addAdditionalFile(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      public Builder addAllAdditionalFile(
          java.lang.Iterable<? extends finsky.protos.AppFileMetadata> values) {
        copyOnWrite();
        instance.addAllAdditionalFile(values);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      public Builder clearAdditionalFile() {
        copyOnWrite();
        instance.clearAdditionalFile();
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppFileMetadata additionalFile = 4;</code>
       */
      public Builder removeAdditionalFile(int index) {
        copyOnWrite();
        instance.removeAdditionalFile(index);
        return this;
      }
  
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.HttpCookie> getDownloadAuthCookieList() {
        return java.util.Collections.unmodifiableList(
            instance.getDownloadAuthCookieList());
      }
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      @java.lang.Override
      public int getDownloadAuthCookieCount() {
        return instance.getDownloadAuthCookieCount();
      }/**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      @java.lang.Override
      public finsky.protos.HttpCookie getDownloadAuthCookie(int index) {
        return instance.getDownloadAuthCookie(index);
      }
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      public Builder setDownloadAuthCookie(
          int index, finsky.protos.HttpCookie value) {
        copyOnWrite();
        instance.setDownloadAuthCookie(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      public Builder setDownloadAuthCookie(
          int index, finsky.protos.HttpCookie.Builder builderForValue) {
        copyOnWrite();
        instance.setDownloadAuthCookie(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      public Builder addDownloadAuthCookie(finsky.protos.HttpCookie value) {
        copyOnWrite();
        instance.addDownloadAuthCookie(value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      public Builder addDownloadAuthCookie(
          int index, finsky.protos.HttpCookie value) {
        copyOnWrite();
        instance.addDownloadAuthCookie(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      public Builder addDownloadAuthCookie(
          finsky.protos.HttpCookie.Builder builderForValue) {
        copyOnWrite();
        instance.addDownloadAuthCookie(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      public Builder addDownloadAuthCookie(
          int index, finsky.protos.HttpCookie.Builder builderForValue) {
        copyOnWrite();
        instance.addDownloadAuthCookie(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      public Builder addAllDownloadAuthCookie(
          java.lang.Iterable<? extends finsky.protos.HttpCookie> values) {
        copyOnWrite();
        instance.addAllDownloadAuthCookie(values);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      public Builder clearDownloadAuthCookie() {
        copyOnWrite();
        instance.clearDownloadAuthCookie();
        return this;
      }
      /**
       * <code>repeated .finsky.protos.HttpCookie downloadAuthCookie = 5;</code>
       */
      public Builder removeDownloadAuthCookie(int index) {
        copyOnWrite();
        instance.removeDownloadAuthCookie(index);
        return this;
      }
  
      /**
       * <code>optional bool forwardLocked = 6;</code>
       * @return Whether the forwardLocked field is set.
       */
      @java.lang.Override
      public boolean hasForwardLocked() {
        return instance.hasForwardLocked();
      }
      /**
       * <code>optional bool forwardLocked = 6;</code>
       * @return The forwardLocked.
       */
      @java.lang.Override
      public boolean getForwardLocked() {
        return instance.getForwardLocked();
      }
      /**
       * <code>optional bool forwardLocked = 6;</code>
       * @param value The forwardLocked to set.
       * @return This builder for chaining.
       */
      public Builder setForwardLocked(boolean value) {
        copyOnWrite();
        instance.setForwardLocked(value);
        return this;
      }
      /**
       * <code>optional bool forwardLocked = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearForwardLocked() {
        copyOnWrite();
        instance.clearForwardLocked();
        return this;
      }
  
      /**
       * <code>optional int64 refundTimeout = 7;</code>
       * @return Whether the refundTimeout field is set.
       */
      @java.lang.Override
      public boolean hasRefundTimeout() {
        return instance.hasRefundTimeout();
      }
      /**
       * <code>optional int64 refundTimeout = 7;</code>
       * @return The refundTimeout.
       */
      @java.lang.Override
      public long getRefundTimeout() {
        return instance.getRefundTimeout();
      }
      /**
       * <code>optional int64 refundTimeout = 7;</code>
       * @param value The refundTimeout to set.
       * @return This builder for chaining.
       */
      public Builder setRefundTimeout(long value) {
        copyOnWrite();
        instance.setRefundTimeout(value);
        return this;
      }
      /**
       * <code>optional int64 refundTimeout = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearRefundTimeout() {
        copyOnWrite();
        instance.clearRefundTimeout();
        return this;
      }
  
      /**
       * <code>optional bool serverInitiated = 8 [default = true];</code>
       * @return Whether the serverInitiated field is set.
       */
      @java.lang.Override
      public boolean hasServerInitiated() {
        return instance.hasServerInitiated();
      }
      /**
       * <code>optional bool serverInitiated = 8 [default = true];</code>
       * @return The serverInitiated.
       */
      @java.lang.Override
      public boolean getServerInitiated() {
        return instance.getServerInitiated();
      }
      /**
       * <code>optional bool serverInitiated = 8 [default = true];</code>
       * @param value The serverInitiated to set.
       * @return This builder for chaining.
       */
      public Builder setServerInitiated(boolean value) {
        copyOnWrite();
        instance.setServerInitiated(value);
        return this;
      }
      /**
       * <code>optional bool serverInitiated = 8 [default = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearServerInitiated() {
        copyOnWrite();
        instance.clearServerInitiated();
        return this;
      }
  
      /**
       * <code>optional int64 postInstallRefundWindowMillis = 9;</code>
       * @return Whether the postInstallRefundWindowMillis field is set.
       */
      @java.lang.Override
      public boolean hasPostInstallRefundWindowMillis() {
        return instance.hasPostInstallRefundWindowMillis();
      }
      /**
       * <code>optional int64 postInstallRefundWindowMillis = 9;</code>
       * @return The postInstallRefundWindowMillis.
       */
      @java.lang.Override
      public long getPostInstallRefundWindowMillis() {
        return instance.getPostInstallRefundWindowMillis();
      }
      /**
       * <code>optional int64 postInstallRefundWindowMillis = 9;</code>
       * @param value The postInstallRefundWindowMillis to set.
       * @return This builder for chaining.
       */
      public Builder setPostInstallRefundWindowMillis(long value) {
        copyOnWrite();
        instance.setPostInstallRefundWindowMillis(value);
        return this;
      }
      /**
       * <code>optional int64 postInstallRefundWindowMillis = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearPostInstallRefundWindowMillis() {
        copyOnWrite();
        instance.clearPostInstallRefundWindowMillis();
        return this;
      }
  
      /**
       * <code>optional bool immediateStartNeeded = 10;</code>
       * @return Whether the immediateStartNeeded field is set.
       */
      @java.lang.Override
      public boolean hasImmediateStartNeeded() {
        return instance.hasImmediateStartNeeded();
      }
      /**
       * <code>optional bool immediateStartNeeded = 10;</code>
       * @return The immediateStartNeeded.
       */
      @java.lang.Override
      public boolean getImmediateStartNeeded() {
        return instance.getImmediateStartNeeded();
      }
      /**
       * <code>optional bool immediateStartNeeded = 10;</code>
       * @param value The immediateStartNeeded to set.
       * @return This builder for chaining.
       */
      public Builder setImmediateStartNeeded(boolean value) {
        copyOnWrite();
        instance.setImmediateStartNeeded(value);
        return this;
      }
      /**
       * <code>optional bool immediateStartNeeded = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearImmediateStartNeeded() {
        copyOnWrite();
        instance.clearImmediateStartNeeded();
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
       */
      @java.lang.Override
      public boolean hasPatchData() {
        return instance.hasPatchData();
      }
      /**
       * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
       */
      @java.lang.Override
      public finsky.protos.AndroidAppPatchData getPatchData() {
        return instance.getPatchData();
      }
      /**
       * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
       */
      public Builder setPatchData(finsky.protos.AndroidAppPatchData value) {
        copyOnWrite();
        instance.setPatchData(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
       */
      public Builder setPatchData(
          finsky.protos.AndroidAppPatchData.Builder builderForValue) {
        copyOnWrite();
        instance.setPatchData(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
       */
      public Builder mergePatchData(finsky.protos.AndroidAppPatchData value) {
        copyOnWrite();
        instance.mergePatchData(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.AndroidAppPatchData patchData = 11;</code>
       */
      public Builder clearPatchData() {  copyOnWrite();
        instance.clearPatchData();
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
       */
      @java.lang.Override
      public boolean hasEncryptionParams() {
        return instance.hasEncryptionParams();
      }
      /**
       * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
       */
      @java.lang.Override
      public finsky.protos.EncryptionParams getEncryptionParams() {
        return instance.getEncryptionParams();
      }
      /**
       * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
       */
      public Builder setEncryptionParams(finsky.protos.EncryptionParams value) {
        copyOnWrite();
        instance.setEncryptionParams(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
       */
      public Builder setEncryptionParams(
          finsky.protos.EncryptionParams.Builder builderForValue) {
        copyOnWrite();
        instance.setEncryptionParams(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
       */
      public Builder mergeEncryptionParams(finsky.protos.EncryptionParams value) {
        copyOnWrite();
        instance.mergeEncryptionParams(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.EncryptionParams encryptionParams = 12;</code>
       */
      public Builder clearEncryptionParams() {  copyOnWrite();
        instance.clearEncryptionParams();
        return this;
      }
  
      /**
       * <code>optional string compressedDownloadUrl = 13;</code>
       * @return Whether the compressedDownloadUrl field is set.
       */
      @java.lang.Override
      public boolean hasCompressedDownloadUrl() {
        return instance.hasCompressedDownloadUrl();
      }
      /**
       * <code>optional string compressedDownloadUrl = 13;</code>
       * @return The compressedDownloadUrl.
       */
      @java.lang.Override
      public java.lang.String getCompressedDownloadUrl() {
        return instance.getCompressedDownloadUrl();
      }
      /**
       * <code>optional string compressedDownloadUrl = 13;</code>
       * @return The bytes for compressedDownloadUrl.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getCompressedDownloadUrlBytes() {
        return instance.getCompressedDownloadUrlBytes();
      }
      /**
       * <code>optional string compressedDownloadUrl = 13;</code>
       * @param value The compressedDownloadUrl to set.
       * @return This builder for chaining.
       */
      public Builder setCompressedDownloadUrl(
          java.lang.String value) {
        copyOnWrite();
        instance.setCompressedDownloadUrl(value);
        return this;
      }
      /**
       * <code>optional string compressedDownloadUrl = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearCompressedDownloadUrl() {
        copyOnWrite();
        instance.clearCompressedDownloadUrl();
        return this;
      }
      /**
       * <code>optional string compressedDownloadUrl = 13;</code>
       * @param value The bytes for compressedDownloadUrl to set.
       * @return This builder for chaining.
       */
      public Builder setCompressedDownloadUrlBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setCompressedDownloadUrlBytes(value);
        return this;
      }
  
      /**
       * <code>optional int64 compressedSize = 14;</code>
       * @return Whether the compressedSize field is set.
       */
      @java.lang.Override
      public boolean hasCompressedSize() {
        return instance.hasCompressedSize();
      }
      /**
       * <code>optional int64 compressedSize = 14;</code>
       * @return The compressedSize.
       */
      @java.lang.Override
      public long getCompressedSize() {
        return instance.getCompressedSize();
      }
      /**
       * <code>optional int64 compressedSize = 14;</code>
       * @param value The compressedSize to set.
       * @return This builder for chaining.
       */
      public Builder setCompressedSize(long value) {
        copyOnWrite();
        instance.setCompressedSize(value);
        return this;
      }
      /**
       * <code>optional int64 compressedSize = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearCompressedSize() {
        copyOnWrite();
        instance.clearCompressedSize();
        return this;
      }
  
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.SplitDeliveryData> getSplitDeliveryDataList() {
        return java.util.Collections.unmodifiableList(
            instance.getSplitDeliveryDataList());
      }
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      @java.lang.Override
      public int getSplitDeliveryDataCount() {
        return instance.getSplitDeliveryDataCount();
      }/**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      @java.lang.Override
      public finsky.protos.SplitDeliveryData getSplitDeliveryData(int index) {
        return instance.getSplitDeliveryData(index);
      }
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      public Builder setSplitDeliveryData(
          int index, finsky.protos.SplitDeliveryData value) {
        copyOnWrite();
        instance.setSplitDeliveryData(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      public Builder setSplitDeliveryData(
          int index, finsky.protos.SplitDeliveryData.Builder builderForValue) {
        copyOnWrite();
        instance.setSplitDeliveryData(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      public Builder addSplitDeliveryData(finsky.protos.SplitDeliveryData value) {
        copyOnWrite();
        instance.addSplitDeliveryData(value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      public Builder addSplitDeliveryData(
          int index, finsky.protos.SplitDeliveryData value) {
        copyOnWrite();
        instance.addSplitDeliveryData(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      public Builder addSplitDeliveryData(
          finsky.protos.SplitDeliveryData.Builder builderForValue) {
        copyOnWrite();
        instance.addSplitDeliveryData(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      public Builder addSplitDeliveryData(
          int index, finsky.protos.SplitDeliveryData.Builder builderForValue) {
        copyOnWrite();
        instance.addSplitDeliveryData(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      public Builder addAllSplitDeliveryData(
          java.lang.Iterable<? extends finsky.protos.SplitDeliveryData> values) {
        copyOnWrite();
        instance.addAllSplitDeliveryData(values);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      public Builder clearSplitDeliveryData() {
        copyOnWrite();
        instance.clearSplitDeliveryData();
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SplitDeliveryData splitDeliveryData = 15;</code>
       */
      public Builder removeSplitDeliveryData(int index) {
        copyOnWrite();
        instance.removeSplitDeliveryData(index);
        return this;
      }
  
      /**
       * <code>optional int32 installLocation = 16;</code>
       * @return Whether the installLocation field is set.
       */
      @java.lang.Override
      public boolean hasInstallLocation() {
        return instance.hasInstallLocation();
      }
      /**
       * <code>optional int32 installLocation = 16;</code>
       * @return The installLocation.
       */
      @java.lang.Override
      public int getInstallLocation() {
        return instance.getInstallLocation();
      }
      /**
       * <code>optional int32 installLocation = 16;</code>
       * @param value The installLocation to set.
       * @return This builder for chaining.
       */
      public Builder setInstallLocation(int value) {
        copyOnWrite();
        instance.setInstallLocation(value);
        return this;
      }
      /**
       * <code>optional int32 installLocation = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearInstallLocation() {
        copyOnWrite();
        instance.clearInstallLocation();
        return this;
      }
  
      /**
       * <code>optional int64 type = 17;</code>
       * @return Whether the type field is set.
       */
      @java.lang.Override
      public boolean hasType() {
        return instance.hasType();
      }
      /**
       * <code>optional int64 type = 17;</code>
       * @return The type.
       */
      @java.lang.Override
      public long getType() {
        return instance.getType();
      }
      /**
       * <code>optional int64 type = 17;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(long value) {
        copyOnWrite();
        instance.setType(value);
        return this;
      }
      /**
       * <code>optional int64 type = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        copyOnWrite();
        instance.clearType();
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
       */
      @java.lang.Override
      public boolean hasCompressedAppData() {
        return instance.hasCompressedAppData();
      }
      /**
       * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
       */
      @java.lang.Override
      public finsky.protos.CompressedAppData getCompressedAppData() {
        return instance.getCompressedAppData();
      }
      /**
       * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
       */
      public Builder setCompressedAppData(finsky.protos.CompressedAppData value) {
        copyOnWrite();
        instance.setCompressedAppData(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
       */
      public Builder setCompressedAppData(
          finsky.protos.CompressedAppData.Builder builderForValue) {
        copyOnWrite();
        instance.setCompressedAppData(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
       */
      public Builder mergeCompressedAppData(finsky.protos.CompressedAppData value) {
        copyOnWrite();
        instance.mergeCompressedAppData(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.CompressedAppData compressedAppData = 18;</code>
       */
      public Builder clearCompressedAppData() {  copyOnWrite();
        instance.clearCompressedAppData();
        return this;
      }
  
      /**
       * <code>optional string sha256 = 19;</code>
       * @return Whether the sha256 field is set.
       */
      @java.lang.Override
      public boolean hasSha256() {
        return instance.hasSha256();
      }
      /**
       * <code>optional string sha256 = 19;</code>
       * @return The sha256.
       */
      @java.lang.Override
      public java.lang.String getSha256() {
        return instance.getSha256();
      }
      /**
       * <code>optional string sha256 = 19;</code>
       * @return The bytes for sha256.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSha256Bytes() {
        return instance.getSha256Bytes();
      }
      /**
       * <code>optional string sha256 = 19;</code>
       * @param value The sha256 to set.
       * @return This builder for chaining.
       */
      public Builder setSha256(
          java.lang.String value) {
        copyOnWrite();
        instance.setSha256(value);
        return this;
      }
      /**
       * <code>optional string sha256 = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearSha256() {
        copyOnWrite();
        instance.clearSha256();
        return this;
      }
      /**
       * <code>optional string sha256 = 19;</code>
       * @param value The bytes for sha256 to set.
       * @return This builder for chaining.
       */
      public Builder setSha256Bytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSha256Bytes(value);
        return this;
      }
  
      // @@protoc_insertion_point(builder_scope:finsky.protos.AndroidAppDeliveryData)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new finsky.protos.AndroidAppDeliveryData();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "downloadSize_",
              "sha1_",
              "downloadUrl_",
              "additionalFile_",
              finsky.protos.AppFileMetadata.class,
              "downloadAuthCookie_",
              finsky.protos.HttpCookie.class,
              "forwardLocked_",
              "refundTimeout_",
              "serverInitiated_",
              "postInstallRefundWindowMillis_",
              "immediateStartNeeded_",
              "patchData_",
              "encryptionParams_",
              "compressedDownloadUrl_",
              "compressedSize_",
              "splitDeliveryData_",
              finsky.protos.SplitDeliveryData.class,
              "installLocation_",
              "type_",
              "compressedAppData_",
              "sha256_",
            };
            java.lang.String info =
                "\u0001\u0013\u0000\u0001\u0001\u0013\u0013\u0000\u0003\u0000\u0001\u1002\u0000\u0002" +
                "\u1008\u0001\u0003\u1008\u0002\u0004\u001b\u0005\u001b\u0006\u1007\u0003\u0007\u1002" +
                "\u0004\b\u1007\u0005\t\u1002\u0006\n\u1007\u0007\u000b\u1009\b\f\u1009\t\r\u1008" +
                "\n\u000e\u1002\u000b\u000f\u001b\u0010\u1004\f\u0011\u1002\r\u0012\u1009\u000e\u0013" +
                "\u1008\u000f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<finsky.protos.AndroidAppDeliveryData> parser = PARSER;
          if (parser == null) {
            synchronized (finsky.protos.AndroidAppDeliveryData.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<finsky.protos.AndroidAppDeliveryData>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }
  
  
    // @@protoc_insertion_point(class_scope:finsky.protos.AndroidAppDeliveryData)
    private static final finsky.protos.AndroidAppDeliveryData DEFAULT_INSTANCE;
    static {
      AndroidAppDeliveryData defaultInstance = new AndroidAppDeliveryData();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AndroidAppDeliveryData.class, defaultInstance);
    }
  
    public static finsky.protos.AndroidAppDeliveryData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
  
    private static volatile com.google.protobuf.Parser<AndroidAppDeliveryData> PARSER;
  
    public static com.google.protobuf.Parser<AndroidAppDeliveryData> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }
  
  