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

package com.github.horrorho.liquiddonkey.cloud.protobuf;

public final class ICloud {
  private ICloud() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public interface MBSAccountOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSAccount)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string AccountID = 1;
     */
    boolean hasAccountID();
    /**
     * optional string AccountID = 1;
     */
    java.lang.String getAccountID();
    /**
     * optional string AccountID = 1;
     */
    com.google.protobuf.ByteString
        getAccountIDBytes();

    /**
     * repeated bytes backupUDID = 2;
     */
    java.util.List<com.google.protobuf.ByteString> getBackupUDIDList();
    /**
     * repeated bytes backupUDID = 2;
     */
    int getBackupUDIDCount();
    /**
     * repeated bytes backupUDID = 2;
     */
    com.google.protobuf.ByteString getBackupUDID(int index);
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSAccount}
   */
  public static final class MBSAccount extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSAccount)
      MBSAccountOrBuilder {
    // Use MBSAccount.newBuilder() to construct.
    private MBSAccount(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSAccount(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSAccount getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSAccount(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              accountID_ = bs;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                backupUDID_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
                mutable_bitField0_ |= 0x00000002;
              }
              backupUDID_.add(input.readBytes());
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          backupUDID_ = java.util.Collections.unmodifiableList(backupUDID_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSAccount_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSAccount_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSAccount> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ACCOUNTID_FIELD_NUMBER = 1;
    private java.lang.Object accountID_;
    /**
     * optional string AccountID = 1;
     */
    public boolean hasAccountID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string AccountID = 1;
     */
    public java.lang.String getAccountID() {
      java.lang.Object ref = accountID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          accountID_ = s;
        }
        return s;
      }
    }
    /**
     * optional string AccountID = 1;
     */
    public com.google.protobuf.ByteString
        getAccountIDBytes() {
      java.lang.Object ref = accountID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        accountID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BACKUPUDID_FIELD_NUMBER = 2;
    private java.util.List<com.google.protobuf.ByteString> backupUDID_;
    /**
     * repeated bytes backupUDID = 2;
     */
    public java.util.List<com.google.protobuf.ByteString>
        getBackupUDIDList() {
      return backupUDID_;
    }
    /**
     * repeated bytes backupUDID = 2;
     */
    public int getBackupUDIDCount() {
      return backupUDID_.size();
    }
    /**
     * repeated bytes backupUDID = 2;
     */
    public com.google.protobuf.ByteString getBackupUDID(int index) {
      return backupUDID_.get(index);
    }

    private void initFields() {
      accountID_ = "";
      backupUDID_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getAccountIDBytes());
      }
      for (int i = 0; i < backupUDID_.size(); i++) {
        output.writeBytes(2, backupUDID_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getAccountIDBytes());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < backupUDID_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(backupUDID_.get(i));
        }
        size += dataSize;
        size += 1 * getBackupUDIDList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSAccount}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSAccount)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccountOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSAccount_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSAccount_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        accountID_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        backupUDID_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSAccount_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.accountID_ = accountID_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          backupUDID_ = java.util.Collections.unmodifiableList(backupUDID_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.backupUDID_ = backupUDID_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount.getDefaultInstance()) return this;
        if (other.hasAccountID()) {
          bitField0_ |= 0x00000001;
          accountID_ = other.accountID_;
          onChanged();
        }
        if (!other.backupUDID_.isEmpty()) {
          if (backupUDID_.isEmpty()) {
            backupUDID_ = other.backupUDID_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureBackupUDIDIsMutable();
            backupUDID_.addAll(other.backupUDID_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSAccount) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object accountID_ = "";
      /**
       * optional string AccountID = 1;
       */
      public boolean hasAccountID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string AccountID = 1;
       */
      public java.lang.String getAccountID() {
        java.lang.Object ref = accountID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            accountID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string AccountID = 1;
       */
      public com.google.protobuf.ByteString
          getAccountIDBytes() {
        java.lang.Object ref = accountID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          accountID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string AccountID = 1;
       */
      public Builder setAccountID(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        accountID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string AccountID = 1;
       */
      public Builder clearAccountID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        accountID_ = getDefaultInstance().getAccountID();
        onChanged();
        return this;
      }
      /**
       * optional string AccountID = 1;
       */
      public Builder setAccountIDBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        accountID_ = value;
        onChanged();
        return this;
      }

      private java.util.List<com.google.protobuf.ByteString> backupUDID_ = java.util.Collections.emptyList();
      private void ensureBackupUDIDIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          backupUDID_ = new java.util.ArrayList<com.google.protobuf.ByteString>(backupUDID_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated bytes backupUDID = 2;
       */
      public java.util.List<com.google.protobuf.ByteString>
          getBackupUDIDList() {
        return java.util.Collections.unmodifiableList(backupUDID_);
      }
      /**
       * repeated bytes backupUDID = 2;
       */
      public int getBackupUDIDCount() {
        return backupUDID_.size();
      }
      /**
       * repeated bytes backupUDID = 2;
       */
      public com.google.protobuf.ByteString getBackupUDID(int index) {
        return backupUDID_.get(index);
      }
      /**
       * repeated bytes backupUDID = 2;
       */
      public Builder setBackupUDID(
          int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureBackupUDIDIsMutable();
        backupUDID_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated bytes backupUDID = 2;
       */
      public Builder addBackupUDID(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureBackupUDIDIsMutable();
        backupUDID_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated bytes backupUDID = 2;
       */
      public Builder addAllBackupUDID(
          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
        ensureBackupUDIDIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, backupUDID_);
        onChanged();
        return this;
      }
      /**
       * repeated bytes backupUDID = 2;
       */
      public Builder clearBackupUDID() {
        backupUDID_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSAccount)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSAccount)
  }

  public interface MBSBackupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackup)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional bytes backupUDID = 1;
     */
    boolean hasBackupUDID();
    /**
     * optional bytes backupUDID = 1;
     */
    com.google.protobuf.ByteString getBackupUDID();

    /**
     * optional uint64 QuotaUsed = 2;
     */
    boolean hasQuotaUsed();
    /**
     * optional uint64 QuotaUsed = 2;
     */
    long getQuotaUsed();

    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
     */
    java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot>
        getSnapshotList();
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot getSnapshot(int index);
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
     */
    int getSnapshotCount();
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
     */
    java.util.List<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotOrBuilder>
        getSnapshotOrBuilderList();
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotOrBuilder getSnapshotOrBuilder(
        int index);

    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
     */
    boolean hasAttributes();
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes getAttributes();
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributesOrBuilder getAttributesOrBuilder();

    /**
     * optional uint64 KeysLastModified = 5;
     */
    boolean hasKeysLastModified();
    /**
     * optional uint64 KeysLastModified = 5;
     */
    long getKeysLastModified();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackup}
   */
  public static final class MBSBackup extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackup)
      MBSBackupOrBuilder {
    // Use MBSBackup.newBuilder() to construct.
    private MBSBackup(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSBackup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSBackup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSBackup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              backupUDID_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              quotaUsed_ = input.readUInt64();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                snapshot_ = new java.util.ArrayList<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot>();
                mutable_bitField0_ |= 0x00000004;
              }
              snapshot_.add(input.readMessage(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.PARSER, extensionRegistry));
              break;
            }
            case 34: {
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = attributes_.toBuilder();
              }
              attributes_ = input.readMessage(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(attributes_);
                attributes_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 40: {
              bitField0_ |= 0x00000008;
              keysLastModified_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          snapshot_ = java.util.Collections.unmodifiableList(snapshot_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSBackup> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int BACKUPUDID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString backupUDID_;
    /**
     * optional bytes backupUDID = 1;
     */
    public boolean hasBackupUDID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bytes backupUDID = 1;
     */
    public com.google.protobuf.ByteString getBackupUDID() {
      return backupUDID_;
    }

    public static final int QUOTAUSED_FIELD_NUMBER = 2;
    private long quotaUsed_;
    /**
     * optional uint64 QuotaUsed = 2;
     */
    public boolean hasQuotaUsed() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint64 QuotaUsed = 2;
     */
    public long getQuotaUsed() {
      return quotaUsed_;
    }

    public static final int SNAPSHOT_FIELD_NUMBER = 3;
    private java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot> snapshot_;
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
     */
    public java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot> getSnapshotList() {
      return snapshot_;
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
     */
    public java.util.List<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotOrBuilder>
        getSnapshotOrBuilderList() {
      return snapshot_;
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
     */
    public int getSnapshotCount() {
      return snapshot_.size();
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot getSnapshot(int index) {
      return snapshot_.get(index);
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotOrBuilder getSnapshotOrBuilder(
        int index) {
      return snapshot_.get(index);
    }

    public static final int ATTRIBUTES_FIELD_NUMBER = 4;
    private com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes attributes_;
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
     */
    public boolean hasAttributes() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes getAttributes() {
      return attributes_;
    }
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributesOrBuilder getAttributesOrBuilder() {
      return attributes_;
    }

    public static final int KEYSLASTMODIFIED_FIELD_NUMBER = 5;
    private long keysLastModified_;
    /**
     * optional uint64 KeysLastModified = 5;
     */
    public boolean hasKeysLastModified() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint64 KeysLastModified = 5;
     */
    public long getKeysLastModified() {
      return keysLastModified_;
    }

    private void initFields() {
      backupUDID_ = com.google.protobuf.ByteString.EMPTY;
      quotaUsed_ = 0L;
      snapshot_ = java.util.Collections.emptyList();
      attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.getDefaultInstance();
      keysLastModified_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, backupUDID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, quotaUsed_);
      }
      for (int i = 0; i < snapshot_.size(); i++) {
        output.writeMessage(3, snapshot_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(4, attributes_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt64(5, keysLastModified_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, backupUDID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, quotaUsed_);
      }
      for (int i = 0; i < snapshot_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, snapshot_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, attributes_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, keysLastModified_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackup)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        backupUDID_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        quotaUsed_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (snapshotBuilder_ == null) {
          snapshot_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          snapshotBuilder_.clear();
        }
        if (attributesBuilder_ == null) {
          attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.getDefaultInstance();
        } else {
          attributesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        keysLastModified_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackup_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.backupUDID_ = backupUDID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.quotaUsed_ = quotaUsed_;
        if (snapshotBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            snapshot_ = java.util.Collections.unmodifiableList(snapshot_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.snapshot_ = snapshot_;
        } else {
          result.snapshot_ = snapshotBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        if (attributesBuilder_ == null) {
          result.attributes_ = attributes_;
        } else {
          result.attributes_ = attributesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.keysLastModified_ = keysLastModified_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup.getDefaultInstance()) return this;
        if (other.hasBackupUDID()) {
          setBackupUDID(other.getBackupUDID());
        }
        if (other.hasQuotaUsed()) {
          setQuotaUsed(other.getQuotaUsed());
        }
        if (snapshotBuilder_ == null) {
          if (!other.snapshot_.isEmpty()) {
            if (snapshot_.isEmpty()) {
              snapshot_ = other.snapshot_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureSnapshotIsMutable();
              snapshot_.addAll(other.snapshot_);
            }
            onChanged();
          }
        } else {
          if (!other.snapshot_.isEmpty()) {
            if (snapshotBuilder_.isEmpty()) {
              snapshotBuilder_.dispose();
              snapshotBuilder_ = null;
              snapshot_ = other.snapshot_;
              bitField0_ = (bitField0_ & ~0x00000004);
              snapshotBuilder_ =
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSnapshotFieldBuilder() : null;
            } else {
              snapshotBuilder_.addAllMessages(other.snapshot_);
            }
          }
        }
        if (other.hasAttributes()) {
          mergeAttributes(other.getAttributes());
        }
        if (other.hasKeysLastModified()) {
          setKeysLastModified(other.getKeysLastModified());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString backupUDID_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes backupUDID = 1;
       */
      public boolean hasBackupUDID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bytes backupUDID = 1;
       */
      public com.google.protobuf.ByteString getBackupUDID() {
        return backupUDID_;
      }
      /**
       * optional bytes backupUDID = 1;
       */
      public Builder setBackupUDID(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        backupUDID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes backupUDID = 1;
       */
      public Builder clearBackupUDID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        backupUDID_ = getDefaultInstance().getBackupUDID();
        onChanged();
        return this;
      }

      private long quotaUsed_ ;
      /**
       * optional uint64 QuotaUsed = 2;
       */
      public boolean hasQuotaUsed() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint64 QuotaUsed = 2;
       */
      public long getQuotaUsed() {
        return quotaUsed_;
      }
      /**
       * optional uint64 QuotaUsed = 2;
       */
      public Builder setQuotaUsed(long value) {
        bitField0_ |= 0x00000002;
        quotaUsed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 QuotaUsed = 2;
       */
      public Builder clearQuotaUsed() {
        bitField0_ = (bitField0_ & ~0x00000002);
        quotaUsed_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot> snapshot_ =
        java.util.Collections.emptyList();
      private void ensureSnapshotIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          snapshot_ = new java.util.ArrayList<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot>(snapshot_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotOrBuilder> snapshotBuilder_;

      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot> getSnapshotList() {
        if (snapshotBuilder_ == null) {
          return java.util.Collections.unmodifiableList(snapshot_);
        } else {
          return snapshotBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public int getSnapshotCount() {
        if (snapshotBuilder_ == null) {
          return snapshot_.size();
        } else {
          return snapshotBuilder_.getCount();
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot getSnapshot(int index) {
        if (snapshotBuilder_ == null) {
          return snapshot_.get(index);
        } else {
          return snapshotBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public Builder setSnapshot(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot value) {
        if (snapshotBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSnapshotIsMutable();
          snapshot_.set(index, value);
          onChanged();
        } else {
          snapshotBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public Builder setSnapshot(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder builderForValue) {
        if (snapshotBuilder_ == null) {
          ensureSnapshotIsMutable();
          snapshot_.set(index, builderForValue.build());
          onChanged();
        } else {
          snapshotBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public Builder addSnapshot(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot value) {
        if (snapshotBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSnapshotIsMutable();
          snapshot_.add(value);
          onChanged();
        } else {
          snapshotBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public Builder addSnapshot(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot value) {
        if (snapshotBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSnapshotIsMutable();
          snapshot_.add(index, value);
          onChanged();
        } else {
          snapshotBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public Builder addSnapshot(
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder builderForValue) {
        if (snapshotBuilder_ == null) {
          ensureSnapshotIsMutable();
          snapshot_.add(builderForValue.build());
          onChanged();
        } else {
          snapshotBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public Builder addSnapshot(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder builderForValue) {
        if (snapshotBuilder_ == null) {
          ensureSnapshotIsMutable();
          snapshot_.add(index, builderForValue.build());
          onChanged();
        } else {
          snapshotBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public Builder addAllSnapshot(
          java.lang.Iterable<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot> values) {
        if (snapshotBuilder_ == null) {
          ensureSnapshotIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, snapshot_);
          onChanged();
        } else {
          snapshotBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public Builder clearSnapshot() {
        if (snapshotBuilder_ == null) {
          snapshot_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          snapshotBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public Builder removeSnapshot(int index) {
        if (snapshotBuilder_ == null) {
          ensureSnapshotIsMutable();
          snapshot_.remove(index);
          onChanged();
        } else {
          snapshotBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder getSnapshotBuilder(
          int index) {
        return getSnapshotFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotOrBuilder getSnapshotOrBuilder(
          int index) {
        if (snapshotBuilder_ == null) {
          return snapshot_.get(index);  } else {
          return snapshotBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public java.util.List<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotOrBuilder>
           getSnapshotOrBuilderList() {
        if (snapshotBuilder_ != null) {
          return snapshotBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(snapshot_);
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder addSnapshotBuilder() {
        return getSnapshotFieldBuilder().addBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.getDefaultInstance());
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder addSnapshotBuilder(
          int index) {
        return getSnapshotFieldBuilder().addBuilder(index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.getDefaultInstance());
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot Snapshot = 3;
       */
      public java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder>
           getSnapshotBuilderList() {
        return getSnapshotFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotOrBuilder>
          getSnapshotFieldBuilder() {
        if (snapshotBuilder_ == null) {
          snapshotBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotOrBuilder>(
                  snapshot_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          snapshot_ = null;
        }
        return snapshotBuilder_;
      }

      private com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributesOrBuilder> attributesBuilder_;
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
       */
      public boolean hasAttributes() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes getAttributes() {
        if (attributesBuilder_ == null) {
          return attributes_;
        } else {
          return attributesBuilder_.getMessage();
        }
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
       */
      public Builder setAttributes(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes value) {
        if (attributesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributes_ = value;
          onChanged();
        } else {
          attributesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
       */
      public Builder setAttributes(
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.Builder builderForValue) {
        if (attributesBuilder_ == null) {
          attributes_ = builderForValue.build();
          onChanged();
        } else {
          attributesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
       */
      public Builder mergeAttributes(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes value) {
        if (attributesBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              attributes_ != com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.getDefaultInstance()) {
            attributes_ =
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.newBuilder(attributes_).mergeFrom(value).buildPartial();
          } else {
            attributes_ = value;
          }
          onChanged();
        } else {
          attributesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
       */
      public Builder clearAttributes() {
        if (attributesBuilder_ == null) {
          attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.getDefaultInstance();
          onChanged();
        } else {
          attributesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.Builder getAttributesBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getAttributesFieldBuilder().getBuilder();
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributesOrBuilder getAttributesOrBuilder() {
        if (attributesBuilder_ != null) {
          return attributesBuilder_.getMessageOrBuilder();
        } else {
          return attributes_;
        }
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes Attributes = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributesOrBuilder>
          getAttributesFieldBuilder() {
        if (attributesBuilder_ == null) {
          attributesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributesOrBuilder>(
                  getAttributes(),
                  getParentForChildren(),
                  isClean());
          attributes_ = null;
        }
        return attributesBuilder_;
      }

      private long keysLastModified_ ;
      /**
       * optional uint64 KeysLastModified = 5;
       */
      public boolean hasKeysLastModified() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint64 KeysLastModified = 5;
       */
      public long getKeysLastModified() {
        return keysLastModified_;
      }
      /**
       * optional uint64 KeysLastModified = 5;
       */
      public Builder setKeysLastModified(long value) {
        bitField0_ |= 0x00000010;
        keysLastModified_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 KeysLastModified = 5;
       */
      public Builder clearKeysLastModified() {
        bitField0_ = (bitField0_ & ~0x00000010);
        keysLastModified_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackup)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackup)
  }

  public interface MBSBackupAttributesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string DeviceClass = 1;
     */
    boolean hasDeviceClass();
    /**
     * optional string DeviceClass = 1;
     */
    java.lang.String getDeviceClass();
    /**
     * optional string DeviceClass = 1;
     */
    com.google.protobuf.ByteString
        getDeviceClassBytes();

    /**
     * optional string ProductType = 2;
     */
    boolean hasProductType();
    /**
     * optional string ProductType = 2;
     */
    java.lang.String getProductType();
    /**
     * optional string ProductType = 2;
     */
    com.google.protobuf.ByteString
        getProductTypeBytes();

    /**
     * optional string SerialNumber = 3;
     */
    boolean hasSerialNumber();
    /**
     * optional string SerialNumber = 3;
     */
    java.lang.String getSerialNumber();
    /**
     * optional string SerialNumber = 3;
     */
    com.google.protobuf.ByteString
        getSerialNumberBytes();

    /**
     * optional string DeviceColor = 4;
     */
    boolean hasDeviceColor();
    /**
     * optional string DeviceColor = 4;
     */
    java.lang.String getDeviceColor();
    /**
     * optional string DeviceColor = 4;
     */
    com.google.protobuf.ByteString
        getDeviceColorBytes();

    /**
     * optional string HardwareModel = 5;
     */
    boolean hasHardwareModel();
    /**
     * optional string HardwareModel = 5;
     */
    java.lang.String getHardwareModel();
    /**
     * optional string HardwareModel = 5;
     */
    com.google.protobuf.ByteString
        getHardwareModelBytes();

    /**
     * optional string MarketingName = 6;
     */
    boolean hasMarketingName();
    /**
     * optional string MarketingName = 6;
     */
    java.lang.String getMarketingName();
    /**
     * optional string MarketingName = 6;
     */
    com.google.protobuf.ByteString
        getMarketingNameBytes();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes}
   */
  public static final class MBSBackupAttributes extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes)
      MBSBackupAttributesOrBuilder {
    // Use MBSBackupAttributes.newBuilder() to construct.
    private MBSBackupAttributes(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSBackupAttributes(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSBackupAttributes getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSBackupAttributes(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              deviceClass_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              productType_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              serialNumber_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              deviceColor_ = bs;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              hardwareModel_ = bs;
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              marketingName_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackupAttributes_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackupAttributes_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSBackupAttributes> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DEVICECLASS_FIELD_NUMBER = 1;
    private java.lang.Object deviceClass_;
    /**
     * optional string DeviceClass = 1;
     */
    public boolean hasDeviceClass() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string DeviceClass = 1;
     */
    public java.lang.String getDeviceClass() {
      java.lang.Object ref = deviceClass_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          deviceClass_ = s;
        }
        return s;
      }
    }
    /**
     * optional string DeviceClass = 1;
     */
    public com.google.protobuf.ByteString
        getDeviceClassBytes() {
      java.lang.Object ref = deviceClass_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceClass_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PRODUCTTYPE_FIELD_NUMBER = 2;
    private java.lang.Object productType_;
    /**
     * optional string ProductType = 2;
     */
    public boolean hasProductType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string ProductType = 2;
     */
    public java.lang.String getProductType() {
      java.lang.Object ref = productType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          productType_ = s;
        }
        return s;
      }
    }
    /**
     * optional string ProductType = 2;
     */
    public com.google.protobuf.ByteString
        getProductTypeBytes() {
      java.lang.Object ref = productType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        productType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SERIALNUMBER_FIELD_NUMBER = 3;
    private java.lang.Object serialNumber_;
    /**
     * optional string SerialNumber = 3;
     */
    public boolean hasSerialNumber() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string SerialNumber = 3;
     */
    public java.lang.String getSerialNumber() {
      java.lang.Object ref = serialNumber_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          serialNumber_ = s;
        }
        return s;
      }
    }
    /**
     * optional string SerialNumber = 3;
     */
    public com.google.protobuf.ByteString
        getSerialNumberBytes() {
      java.lang.Object ref = serialNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        serialNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICECOLOR_FIELD_NUMBER = 4;
    private java.lang.Object deviceColor_;
    /**
     * optional string DeviceColor = 4;
     */
    public boolean hasDeviceColor() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string DeviceColor = 4;
     */
    public java.lang.String getDeviceColor() {
      java.lang.Object ref = deviceColor_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          deviceColor_ = s;
        }
        return s;
      }
    }
    /**
     * optional string DeviceColor = 4;
     */
    public com.google.protobuf.ByteString
        getDeviceColorBytes() {
      java.lang.Object ref = deviceColor_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceColor_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HARDWAREMODEL_FIELD_NUMBER = 5;
    private java.lang.Object hardwareModel_;
    /**
     * optional string HardwareModel = 5;
     */
    public boolean hasHardwareModel() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional string HardwareModel = 5;
     */
    public java.lang.String getHardwareModel() {
      java.lang.Object ref = hardwareModel_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hardwareModel_ = s;
        }
        return s;
      }
    }
    /**
     * optional string HardwareModel = 5;
     */
    public com.google.protobuf.ByteString
        getHardwareModelBytes() {
      java.lang.Object ref = hardwareModel_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hardwareModel_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MARKETINGNAME_FIELD_NUMBER = 6;
    private java.lang.Object marketingName_;
    /**
     * optional string MarketingName = 6;
     */
    public boolean hasMarketingName() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional string MarketingName = 6;
     */
    public java.lang.String getMarketingName() {
      java.lang.Object ref = marketingName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          marketingName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string MarketingName = 6;
     */
    public com.google.protobuf.ByteString
        getMarketingNameBytes() {
      java.lang.Object ref = marketingName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        marketingName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      deviceClass_ = "";
      productType_ = "";
      serialNumber_ = "";
      deviceColor_ = "";
      hardwareModel_ = "";
      marketingName_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getDeviceClassBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getProductTypeBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getSerialNumberBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getDeviceColorBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getHardwareModelBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(6, getMarketingNameBytes());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getDeviceClassBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getProductTypeBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getSerialNumberBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getDeviceColorBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getHardwareModelBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, getMarketingNameBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackupAttributes_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackupAttributes_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        deviceClass_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        productType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        serialNumber_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        deviceColor_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        hardwareModel_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        marketingName_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackupAttributes_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.deviceClass_ = deviceClass_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.productType_ = productType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.serialNumber_ = serialNumber_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.deviceColor_ = deviceColor_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.hardwareModel_ = hardwareModel_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.marketingName_ = marketingName_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes.getDefaultInstance()) return this;
        if (other.hasDeviceClass()) {
          bitField0_ |= 0x00000001;
          deviceClass_ = other.deviceClass_;
          onChanged();
        }
        if (other.hasProductType()) {
          bitField0_ |= 0x00000002;
          productType_ = other.productType_;
          onChanged();
        }
        if (other.hasSerialNumber()) {
          bitField0_ |= 0x00000004;
          serialNumber_ = other.serialNumber_;
          onChanged();
        }
        if (other.hasDeviceColor()) {
          bitField0_ |= 0x00000008;
          deviceColor_ = other.deviceColor_;
          onChanged();
        }
        if (other.hasHardwareModel()) {
          bitField0_ |= 0x00000010;
          hardwareModel_ = other.hardwareModel_;
          onChanged();
        }
        if (other.hasMarketingName()) {
          bitField0_ |= 0x00000020;
          marketingName_ = other.marketingName_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSBackupAttributes) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object deviceClass_ = "";
      /**
       * optional string DeviceClass = 1;
       */
      public boolean hasDeviceClass() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string DeviceClass = 1;
       */
      public java.lang.String getDeviceClass() {
        java.lang.Object ref = deviceClass_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            deviceClass_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string DeviceClass = 1;
       */
      public com.google.protobuf.ByteString
          getDeviceClassBytes() {
        java.lang.Object ref = deviceClass_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceClass_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string DeviceClass = 1;
       */
      public Builder setDeviceClass(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        deviceClass_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string DeviceClass = 1;
       */
      public Builder clearDeviceClass() {
        bitField0_ = (bitField0_ & ~0x00000001);
        deviceClass_ = getDefaultInstance().getDeviceClass();
        onChanged();
        return this;
      }
      /**
       * optional string DeviceClass = 1;
       */
      public Builder setDeviceClassBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        deviceClass_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object productType_ = "";
      /**
       * optional string ProductType = 2;
       */
      public boolean hasProductType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string ProductType = 2;
       */
      public java.lang.String getProductType() {
        java.lang.Object ref = productType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            productType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string ProductType = 2;
       */
      public com.google.protobuf.ByteString
          getProductTypeBytes() {
        java.lang.Object ref = productType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          productType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string ProductType = 2;
       */
      public Builder setProductType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        productType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string ProductType = 2;
       */
      public Builder clearProductType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        productType_ = getDefaultInstance().getProductType();
        onChanged();
        return this;
      }
      /**
       * optional string ProductType = 2;
       */
      public Builder setProductTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        productType_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object serialNumber_ = "";
      /**
       * optional string SerialNumber = 3;
       */
      public boolean hasSerialNumber() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string SerialNumber = 3;
       */
      public java.lang.String getSerialNumber() {
        java.lang.Object ref = serialNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            serialNumber_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string SerialNumber = 3;
       */
      public com.google.protobuf.ByteString
          getSerialNumberBytes() {
        java.lang.Object ref = serialNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          serialNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string SerialNumber = 3;
       */
      public Builder setSerialNumber(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        serialNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string SerialNumber = 3;
       */
      public Builder clearSerialNumber() {
        bitField0_ = (bitField0_ & ~0x00000004);
        serialNumber_ = getDefaultInstance().getSerialNumber();
        onChanged();
        return this;
      }
      /**
       * optional string SerialNumber = 3;
       */
      public Builder setSerialNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        serialNumber_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object deviceColor_ = "";
      /**
       * optional string DeviceColor = 4;
       */
      public boolean hasDeviceColor() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string DeviceColor = 4;
       */
      public java.lang.String getDeviceColor() {
        java.lang.Object ref = deviceColor_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            deviceColor_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string DeviceColor = 4;
       */
      public com.google.protobuf.ByteString
          getDeviceColorBytes() {
        java.lang.Object ref = deviceColor_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceColor_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string DeviceColor = 4;
       */
      public Builder setDeviceColor(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        deviceColor_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string DeviceColor = 4;
       */
      public Builder clearDeviceColor() {
        bitField0_ = (bitField0_ & ~0x00000008);
        deviceColor_ = getDefaultInstance().getDeviceColor();
        onChanged();
        return this;
      }
      /**
       * optional string DeviceColor = 4;
       */
      public Builder setDeviceColorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        deviceColor_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hardwareModel_ = "";
      /**
       * optional string HardwareModel = 5;
       */
      public boolean hasHardwareModel() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional string HardwareModel = 5;
       */
      public java.lang.String getHardwareModel() {
        java.lang.Object ref = hardwareModel_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hardwareModel_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string HardwareModel = 5;
       */
      public com.google.protobuf.ByteString
          getHardwareModelBytes() {
        java.lang.Object ref = hardwareModel_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hardwareModel_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string HardwareModel = 5;
       */
      public Builder setHardwareModel(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        hardwareModel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string HardwareModel = 5;
       */
      public Builder clearHardwareModel() {
        bitField0_ = (bitField0_ & ~0x00000010);
        hardwareModel_ = getDefaultInstance().getHardwareModel();
        onChanged();
        return this;
      }
      /**
       * optional string HardwareModel = 5;
       */
      public Builder setHardwareModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        hardwareModel_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object marketingName_ = "";
      /**
       * optional string MarketingName = 6;
       */
      public boolean hasMarketingName() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional string MarketingName = 6;
       */
      public java.lang.String getMarketingName() {
        java.lang.Object ref = marketingName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            marketingName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string MarketingName = 6;
       */
      public com.google.protobuf.ByteString
          getMarketingNameBytes() {
        java.lang.Object ref = marketingName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          marketingName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string MarketingName = 6;
       */
      public Builder setMarketingName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        marketingName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string MarketingName = 6;
       */
      public Builder clearMarketingName() {
        bitField0_ = (bitField0_ & ~0x00000020);
        marketingName_ = getDefaultInstance().getMarketingName();
        onChanged();
        return this;
      }
      /**
       * optional string MarketingName = 6;
       */
      public Builder setMarketingNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        marketingName_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSBackupAttributes)
  }

  public interface MBSFileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFile)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional bytes FileID = 1;
     */
    boolean hasFileID();
    /**
     * optional bytes FileID = 1;
     */
    com.google.protobuf.ByteString getFileID();

    /**
     * optional string Domain = 2;
     */
    boolean hasDomain();
    /**
     * optional string Domain = 2;
     */
    java.lang.String getDomain();
    /**
     * optional string Domain = 2;
     */
    com.google.protobuf.ByteString
        getDomainBytes();

    /**
     * optional string RelativePath = 3;
     */
    boolean hasRelativePath();
    /**
     * optional string RelativePath = 3;
     */
    java.lang.String getRelativePath();
    /**
     * optional string RelativePath = 3;
     */
    com.google.protobuf.ByteString
        getRelativePathBytes();

    /**
     * optional bytes Signature = 4;
     */
    boolean hasSignature();
    /**
     * optional bytes Signature = 4;
     */
    com.google.protobuf.ByteString getSignature();

    /**
     * optional uint64 Size = 5;
     */
    boolean hasSize();
    /**
     * optional uint64 Size = 5;
     */
    long getSize();

    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
     */
    boolean hasAttributes();
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes getAttributes();
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributesOrBuilder getAttributesOrBuilder();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFile}
   */
  public static final class MBSFile extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFile)
      MBSFileOrBuilder {
    // Use MBSFile.newBuilder() to construct.
    private MBSFile(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSFile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSFile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSFile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              fileID_ = input.readBytes();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              domain_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              relativePath_ = bs;
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              signature_ = input.readBytes();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              size_ = input.readUInt64();
              break;
            }
            case 50: {
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = attributes_.toBuilder();
              }
              attributes_ = input.readMessage(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(attributes_);
                attributes_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSFile> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int FILEID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString fileID_;
    /**
     * optional bytes FileID = 1;
     */
    public boolean hasFileID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bytes FileID = 1;
     */
    public com.google.protobuf.ByteString getFileID() {
      return fileID_;
    }

    public static final int DOMAIN_FIELD_NUMBER = 2;
    private java.lang.Object domain_;
    /**
     * optional string Domain = 2;
     */
    public boolean hasDomain() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string Domain = 2;
     */
    public java.lang.String getDomain() {
      java.lang.Object ref = domain_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          domain_ = s;
        }
        return s;
      }
    }
    /**
     * optional string Domain = 2;
     */
    public com.google.protobuf.ByteString
        getDomainBytes() {
      java.lang.Object ref = domain_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        domain_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RELATIVEPATH_FIELD_NUMBER = 3;
    private java.lang.Object relativePath_;
    /**
     * optional string RelativePath = 3;
     */
    public boolean hasRelativePath() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string RelativePath = 3;
     */
    public java.lang.String getRelativePath() {
      java.lang.Object ref = relativePath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          relativePath_ = s;
        }
        return s;
      }
    }
    /**
     * optional string RelativePath = 3;
     */
    public com.google.protobuf.ByteString
        getRelativePathBytes() {
      java.lang.Object ref = relativePath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        relativePath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SIGNATURE_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString signature_;
    /**
     * optional bytes Signature = 4;
     */
    public boolean hasSignature() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bytes Signature = 4;
     */
    public com.google.protobuf.ByteString getSignature() {
      return signature_;
    }

    public static final int SIZE_FIELD_NUMBER = 5;
    private long size_;
    /**
     * optional uint64 Size = 5;
     */
    public boolean hasSize() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint64 Size = 5;
     */
    public long getSize() {
      return size_;
    }

    public static final int ATTRIBUTES_FIELD_NUMBER = 6;
    private com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes attributes_;
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
     */
    public boolean hasAttributes() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes getAttributes() {
      return attributes_;
    }
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributesOrBuilder getAttributesOrBuilder() {
      return attributes_;
    }

    private void initFields() {
      fileID_ = com.google.protobuf.ByteString.EMPTY;
      domain_ = "";
      relativePath_ = "";
      signature_ = com.google.protobuf.ByteString.EMPTY;
      size_ = 0L;
      attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, fileID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getDomainBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getRelativePathBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, signature_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt64(5, size_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, attributes_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, fileID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getDomainBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getRelativePathBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, signature_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, size_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, attributes_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFile)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        fileID_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        domain_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        relativePath_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        signature_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        size_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (attributesBuilder_ == null) {
          attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.getDefaultInstance();
        } else {
          attributesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFile_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.fileID_ = fileID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.domain_ = domain_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.relativePath_ = relativePath_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.signature_ = signature_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.size_ = size_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (attributesBuilder_ == null) {
          result.attributes_ = attributes_;
        } else {
          result.attributes_ = attributesBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile.getDefaultInstance()) return this;
        if (other.hasFileID()) {
          setFileID(other.getFileID());
        }
        if (other.hasDomain()) {
          bitField0_ |= 0x00000002;
          domain_ = other.domain_;
          onChanged();
        }
        if (other.hasRelativePath()) {
          bitField0_ |= 0x00000004;
          relativePath_ = other.relativePath_;
          onChanged();
        }
        if (other.hasSignature()) {
          setSignature(other.getSignature());
        }
        if (other.hasSize()) {
          setSize(other.getSize());
        }
        if (other.hasAttributes()) {
          mergeAttributes(other.getAttributes());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString fileID_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes FileID = 1;
       */
      public boolean hasFileID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bytes FileID = 1;
       */
      public com.google.protobuf.ByteString getFileID() {
        return fileID_;
      }
      /**
       * optional bytes FileID = 1;
       */
      public Builder setFileID(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        fileID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes FileID = 1;
       */
      public Builder clearFileID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        fileID_ = getDefaultInstance().getFileID();
        onChanged();
        return this;
      }

      private java.lang.Object domain_ = "";
      /**
       * optional string Domain = 2;
       */
      public boolean hasDomain() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string Domain = 2;
       */
      public java.lang.String getDomain() {
        java.lang.Object ref = domain_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            domain_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string Domain = 2;
       */
      public com.google.protobuf.ByteString
          getDomainBytes() {
        java.lang.Object ref = domain_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          domain_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string Domain = 2;
       */
      public Builder setDomain(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        domain_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string Domain = 2;
       */
      public Builder clearDomain() {
        bitField0_ = (bitField0_ & ~0x00000002);
        domain_ = getDefaultInstance().getDomain();
        onChanged();
        return this;
      }
      /**
       * optional string Domain = 2;
       */
      public Builder setDomainBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        domain_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object relativePath_ = "";
      /**
       * optional string RelativePath = 3;
       */
      public boolean hasRelativePath() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string RelativePath = 3;
       */
      public java.lang.String getRelativePath() {
        java.lang.Object ref = relativePath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            relativePath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string RelativePath = 3;
       */
      public com.google.protobuf.ByteString
          getRelativePathBytes() {
        java.lang.Object ref = relativePath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          relativePath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string RelativePath = 3;
       */
      public Builder setRelativePath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        relativePath_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string RelativePath = 3;
       */
      public Builder clearRelativePath() {
        bitField0_ = (bitField0_ & ~0x00000004);
        relativePath_ = getDefaultInstance().getRelativePath();
        onChanged();
        return this;
      }
      /**
       * optional string RelativePath = 3;
       */
      public Builder setRelativePathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        relativePath_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString signature_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes Signature = 4;
       */
      public boolean hasSignature() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bytes Signature = 4;
       */
      public com.google.protobuf.ByteString getSignature() {
        return signature_;
      }
      /**
       * optional bytes Signature = 4;
       */
      public Builder setSignature(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        signature_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes Signature = 4;
       */
      public Builder clearSignature() {
        bitField0_ = (bitField0_ & ~0x00000008);
        signature_ = getDefaultInstance().getSignature();
        onChanged();
        return this;
      }

      private long size_ ;
      /**
       * optional uint64 Size = 5;
       */
      public boolean hasSize() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint64 Size = 5;
       */
      public long getSize() {
        return size_;
      }
      /**
       * optional uint64 Size = 5;
       */
      public Builder setSize(long value) {
        bitField0_ |= 0x00000010;
        size_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 Size = 5;
       */
      public Builder clearSize() {
        bitField0_ = (bitField0_ & ~0x00000010);
        size_ = 0L;
        onChanged();
        return this;
      }

      private com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributesOrBuilder> attributesBuilder_;
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
       */
      public boolean hasAttributes() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes getAttributes() {
        if (attributesBuilder_ == null) {
          return attributes_;
        } else {
          return attributesBuilder_.getMessage();
        }
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
       */
      public Builder setAttributes(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes value) {
        if (attributesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributes_ = value;
          onChanged();
        } else {
          attributesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
       */
      public Builder setAttributes(
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.Builder builderForValue) {
        if (attributesBuilder_ == null) {
          attributes_ = builderForValue.build();
          onChanged();
        } else {
          attributesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
       */
      public Builder mergeAttributes(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes value) {
        if (attributesBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              attributes_ != com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.getDefaultInstance()) {
            attributes_ =
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.newBuilder(attributes_).mergeFrom(value).buildPartial();
          } else {
            attributes_ = value;
          }
          onChanged();
        } else {
          attributesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
       */
      public Builder clearAttributes() {
        if (attributesBuilder_ == null) {
          attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.getDefaultInstance();
          onChanged();
        } else {
          attributesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.Builder getAttributesBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getAttributesFieldBuilder().getBuilder();
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributesOrBuilder getAttributesOrBuilder() {
        if (attributesBuilder_ != null) {
          return attributesBuilder_.getMessageOrBuilder();
        } else {
          return attributes_;
        }
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes Attributes = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributesOrBuilder>
          getAttributesFieldBuilder() {
        if (attributesBuilder_ == null) {
          attributesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributesOrBuilder>(
                  getAttributes(),
                  getParentForChildren(),
                  isClean());
          attributes_ = null;
        }
        return attributesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFile)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFile)
  }

  public interface MBSFileAttributesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 KeybagID = 1;
     */
    boolean hasKeybagID();
    /**
     * optional uint32 KeybagID = 1;
     */
    int getKeybagID();

    /**
     * optional string Target = 2;
     */
    boolean hasTarget();
    /**
     * optional string Target = 2;
     */
    java.lang.String getTarget();
    /**
     * optional string Target = 2;
     */
    com.google.protobuf.ByteString
        getTargetBytes();

    /**
     * optional bytes EncryptionKey = 3;
     */
    boolean hasEncryptionKey();
    /**
     * optional bytes EncryptionKey = 3;
     */
    com.google.protobuf.ByteString getEncryptionKey();

    /**
     * optional uint64 InodeNumber = 4;
     */
    boolean hasInodeNumber();
    /**
     * optional uint64 InodeNumber = 4;
     */
    long getInodeNumber();

    /**
     * optional uint32 Mode = 5;
     */
    boolean hasMode();
    /**
     * optional uint32 Mode = 5;
     */
    int getMode();

    /**
     * optional uint32 UserID = 6;
     */
    boolean hasUserID();
    /**
     * optional uint32 UserID = 6;
     */
    int getUserID();

    /**
     * optional uint32 GroupID = 7;
     */
    boolean hasGroupID();
    /**
     * optional uint32 GroupID = 7;
     */
    int getGroupID();

    /**
     * optional uint64 LastModified = 8;
     */
    boolean hasLastModified();
    /**
     * optional uint64 LastModified = 8;
     */
    long getLastModified();

    /**
     * optional uint64 LastStatusChange = 9;
     */
    boolean hasLastStatusChange();
    /**
     * optional uint64 LastStatusChange = 9;
     */
    long getLastStatusChange();

    /**
     * optional uint64 Birth = 10;
     */
    boolean hasBirth();
    /**
     * optional uint64 Birth = 10;
     */
    long getBirth();

    /**
     * optional uint32 ProtectionClass = 12;
     */
    boolean hasProtectionClass();
    /**
     * optional uint32 ProtectionClass = 12;
     */
    int getProtectionClass();

    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
     */
    boolean hasExtendedAttribute();
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute getExtendedAttribute();
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttributeOrBuilder getExtendedAttributeOrBuilder();

    /**
     * optional uint32 EncryptionKeyVersion = 14;
     */
    boolean hasEncryptionKeyVersion();
    /**
     * optional uint32 EncryptionKeyVersion = 14;
     */
    int getEncryptionKeyVersion();

    /**
     * optional uint64 DecryptedSize = 15;
     */
    boolean hasDecryptedSize();
    /**
     * optional uint64 DecryptedSize = 15;
     */
    long getDecryptedSize();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes}
   */
  public static final class MBSFileAttributes extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes)
      MBSFileAttributesOrBuilder {
    // Use MBSFileAttributes.newBuilder() to construct.
    private MBSFileAttributes(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSFileAttributes(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSFileAttributes getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSFileAttributes(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              keybagID_ = input.readUInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              target_ = bs;
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              encryptionKey_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              inodeNumber_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              mode_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              userID_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              groupID_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              lastModified_ = input.readUInt64();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              lastStatusChange_ = input.readUInt64();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              birth_ = input.readUInt64();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000400;
              protectionClass_ = input.readUInt32();
              break;
            }
            case 106: {
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.Builder subBuilder = null;
              if (((bitField0_ & 0x00000800) == 0x00000800)) {
                subBuilder = extendedAttribute_.toBuilder();
              }
              extendedAttribute_ = input.readMessage(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(extendedAttribute_);
                extendedAttribute_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000800;
              break;
            }
            case 112: {
              bitField0_ |= 0x00001000;
              encryptionKeyVersion_ = input.readUInt32();
              break;
            }
            case 120: {
              bitField0_ |= 0x00002000;
              decryptedSize_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAttributes_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAttributes_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSFileAttributes> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int KEYBAGID_FIELD_NUMBER = 1;
    private int keybagID_;
    /**
     * optional uint32 KeybagID = 1;
     */
    public boolean hasKeybagID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 KeybagID = 1;
     */
    public int getKeybagID() {
      return keybagID_;
    }

    public static final int TARGET_FIELD_NUMBER = 2;
    private java.lang.Object target_;
    /**
     * optional string Target = 2;
     */
    public boolean hasTarget() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string Target = 2;
     */
    public java.lang.String getTarget() {
      java.lang.Object ref = target_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          target_ = s;
        }
        return s;
      }
    }
    /**
     * optional string Target = 2;
     */
    public com.google.protobuf.ByteString
        getTargetBytes() {
      java.lang.Object ref = target_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        target_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ENCRYPTIONKEY_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString encryptionKey_;
    /**
     * optional bytes EncryptionKey = 3;
     */
    public boolean hasEncryptionKey() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bytes EncryptionKey = 3;
     */
    public com.google.protobuf.ByteString getEncryptionKey() {
      return encryptionKey_;
    }

    public static final int INODENUMBER_FIELD_NUMBER = 4;
    private long inodeNumber_;
    /**
     * optional uint64 InodeNumber = 4;
     */
    public boolean hasInodeNumber() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint64 InodeNumber = 4;
     */
    public long getInodeNumber() {
      return inodeNumber_;
    }

    public static final int MODE_FIELD_NUMBER = 5;
    private int mode_;
    /**
     * optional uint32 Mode = 5;
     */
    public boolean hasMode() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 Mode = 5;
     */
    public int getMode() {
      return mode_;
    }

    public static final int USERID_FIELD_NUMBER = 6;
    private int userID_;
    /**
     * optional uint32 UserID = 6;
     */
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 UserID = 6;
     */
    public int getUserID() {
      return userID_;
    }

    public static final int GROUPID_FIELD_NUMBER = 7;
    private int groupID_;
    /**
     * optional uint32 GroupID = 7;
     */
    public boolean hasGroupID() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 GroupID = 7;
     */
    public int getGroupID() {
      return groupID_;
    }

    public static final int LASTMODIFIED_FIELD_NUMBER = 8;
    private long lastModified_;
    /**
     * optional uint64 LastModified = 8;
     */
    public boolean hasLastModified() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional uint64 LastModified = 8;
     */
    public long getLastModified() {
      return lastModified_;
    }

    public static final int LASTSTATUSCHANGE_FIELD_NUMBER = 9;
    private long lastStatusChange_;
    /**
     * optional uint64 LastStatusChange = 9;
     */
    public boolean hasLastStatusChange() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional uint64 LastStatusChange = 9;
     */
    public long getLastStatusChange() {
      return lastStatusChange_;
    }

    public static final int BIRTH_FIELD_NUMBER = 10;
    private long birth_;
    /**
     * optional uint64 Birth = 10;
     */
    public boolean hasBirth() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional uint64 Birth = 10;
     */
    public long getBirth() {
      return birth_;
    }

    public static final int PROTECTIONCLASS_FIELD_NUMBER = 12;
    private int protectionClass_;
    /**
     * optional uint32 ProtectionClass = 12;
     */
    public boolean hasProtectionClass() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional uint32 ProtectionClass = 12;
     */
    public int getProtectionClass() {
      return protectionClass_;
    }

    public static final int EXTENDEDATTRIBUTE_FIELD_NUMBER = 13;
    private com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute extendedAttribute_;
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
     */
    public boolean hasExtendedAttribute() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute getExtendedAttribute() {
      return extendedAttribute_;
    }
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttributeOrBuilder getExtendedAttributeOrBuilder() {
      return extendedAttribute_;
    }

    public static final int ENCRYPTIONKEYVERSION_FIELD_NUMBER = 14;
    private int encryptionKeyVersion_;
    /**
     * optional uint32 EncryptionKeyVersion = 14;
     */
    public boolean hasEncryptionKeyVersion() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional uint32 EncryptionKeyVersion = 14;
     */
    public int getEncryptionKeyVersion() {
      return encryptionKeyVersion_;
    }

    public static final int DECRYPTEDSIZE_FIELD_NUMBER = 15;
    private long decryptedSize_;
    /**
     * optional uint64 DecryptedSize = 15;
     */
    public boolean hasDecryptedSize() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional uint64 DecryptedSize = 15;
     */
    public long getDecryptedSize() {
      return decryptedSize_;
    }

    private void initFields() {
      keybagID_ = 0;
      target_ = "";
      encryptionKey_ = com.google.protobuf.ByteString.EMPTY;
      inodeNumber_ = 0L;
      mode_ = 0;
      userID_ = 0;
      groupID_ = 0;
      lastModified_ = 0L;
      lastStatusChange_ = 0L;
      birth_ = 0L;
      protectionClass_ = 0;
      extendedAttribute_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.getDefaultInstance();
      encryptionKeyVersion_ = 0;
      decryptedSize_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, keybagID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getTargetBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, encryptionKey_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt64(4, inodeNumber_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, mode_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, userID_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, groupID_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt64(8, lastModified_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeUInt64(9, lastStatusChange_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeUInt64(10, birth_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeUInt32(12, protectionClass_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(13, extendedAttribute_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeUInt32(14, encryptionKeyVersion_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeUInt64(15, decryptedSize_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, keybagID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getTargetBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, encryptionKey_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, inodeNumber_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, mode_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, userID_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, groupID_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(8, lastModified_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(9, lastStatusChange_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(10, birth_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, protectionClass_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, extendedAttribute_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(14, encryptionKeyVersion_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(15, decryptedSize_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAttributes_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAttributes_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        keybagID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        target_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        encryptionKey_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        inodeNumber_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        mode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        userID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        groupID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        lastModified_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000080);
        lastStatusChange_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000100);
        birth_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000200);
        protectionClass_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        if (extendedAttributeBuilder_ == null) {
          extendedAttribute_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.getDefaultInstance();
        } else {
          extendedAttributeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        encryptionKeyVersion_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        decryptedSize_ = 0L;
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAttributes_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.keybagID_ = keybagID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.target_ = target_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.encryptionKey_ = encryptionKey_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.inodeNumber_ = inodeNumber_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.mode_ = mode_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.userID_ = userID_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.groupID_ = groupID_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.lastModified_ = lastModified_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.lastStatusChange_ = lastStatusChange_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.birth_ = birth_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.protectionClass_ = protectionClass_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        if (extendedAttributeBuilder_ == null) {
          result.extendedAttribute_ = extendedAttribute_;
        } else {
          result.extendedAttribute_ = extendedAttributeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.encryptionKeyVersion_ = encryptionKeyVersion_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.decryptedSize_ = decryptedSize_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes.getDefaultInstance()) return this;
        if (other.hasKeybagID()) {
          setKeybagID(other.getKeybagID());
        }
        if (other.hasTarget()) {
          bitField0_ |= 0x00000002;
          target_ = other.target_;
          onChanged();
        }
        if (other.hasEncryptionKey()) {
          setEncryptionKey(other.getEncryptionKey());
        }
        if (other.hasInodeNumber()) {
          setInodeNumber(other.getInodeNumber());
        }
        if (other.hasMode()) {
          setMode(other.getMode());
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasGroupID()) {
          setGroupID(other.getGroupID());
        }
        if (other.hasLastModified()) {
          setLastModified(other.getLastModified());
        }
        if (other.hasLastStatusChange()) {
          setLastStatusChange(other.getLastStatusChange());
        }
        if (other.hasBirth()) {
          setBirth(other.getBirth());
        }
        if (other.hasProtectionClass()) {
          setProtectionClass(other.getProtectionClass());
        }
        if (other.hasExtendedAttribute()) {
          mergeExtendedAttribute(other.getExtendedAttribute());
        }
        if (other.hasEncryptionKeyVersion()) {
          setEncryptionKeyVersion(other.getEncryptionKeyVersion());
        }
        if (other.hasDecryptedSize()) {
          setDecryptedSize(other.getDecryptedSize());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAttributes) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int keybagID_ ;
      /**
       * optional uint32 KeybagID = 1;
       */
      public boolean hasKeybagID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 KeybagID = 1;
       */
      public int getKeybagID() {
        return keybagID_;
      }
      /**
       * optional uint32 KeybagID = 1;
       */
      public Builder setKeybagID(int value) {
        bitField0_ |= 0x00000001;
        keybagID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 KeybagID = 1;
       */
      public Builder clearKeybagID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        keybagID_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object target_ = "";
      /**
       * optional string Target = 2;
       */
      public boolean hasTarget() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string Target = 2;
       */
      public java.lang.String getTarget() {
        java.lang.Object ref = target_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            target_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string Target = 2;
       */
      public com.google.protobuf.ByteString
          getTargetBytes() {
        java.lang.Object ref = target_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          target_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string Target = 2;
       */
      public Builder setTarget(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        target_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string Target = 2;
       */
      public Builder clearTarget() {
        bitField0_ = (bitField0_ & ~0x00000002);
        target_ = getDefaultInstance().getTarget();
        onChanged();
        return this;
      }
      /**
       * optional string Target = 2;
       */
      public Builder setTargetBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        target_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString encryptionKey_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes EncryptionKey = 3;
       */
      public boolean hasEncryptionKey() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bytes EncryptionKey = 3;
       */
      public com.google.protobuf.ByteString getEncryptionKey() {
        return encryptionKey_;
      }
      /**
       * optional bytes EncryptionKey = 3;
       */
      public Builder setEncryptionKey(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        encryptionKey_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes EncryptionKey = 3;
       */
      public Builder clearEncryptionKey() {
        bitField0_ = (bitField0_ & ~0x00000004);
        encryptionKey_ = getDefaultInstance().getEncryptionKey();
        onChanged();
        return this;
      }

      private long inodeNumber_ ;
      /**
       * optional uint64 InodeNumber = 4;
       */
      public boolean hasInodeNumber() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint64 InodeNumber = 4;
       */
      public long getInodeNumber() {
        return inodeNumber_;
      }
      /**
       * optional uint64 InodeNumber = 4;
       */
      public Builder setInodeNumber(long value) {
        bitField0_ |= 0x00000008;
        inodeNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 InodeNumber = 4;
       */
      public Builder clearInodeNumber() {
        bitField0_ = (bitField0_ & ~0x00000008);
        inodeNumber_ = 0L;
        onChanged();
        return this;
      }

      private int mode_ ;
      /**
       * optional uint32 Mode = 5;
       */
      public boolean hasMode() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 Mode = 5;
       */
      public int getMode() {
        return mode_;
      }
      /**
       * optional uint32 Mode = 5;
       */
      public Builder setMode(int value) {
        bitField0_ |= 0x00000010;
        mode_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 Mode = 5;
       */
      public Builder clearMode() {
        bitField0_ = (bitField0_ & ~0x00000010);
        mode_ = 0;
        onChanged();
        return this;
      }

      private int userID_ ;
      /**
       * optional uint32 UserID = 6;
       */
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 UserID = 6;
       */
      public int getUserID() {
        return userID_;
      }
      /**
       * optional uint32 UserID = 6;
       */
      public Builder setUserID(int value) {
        bitField0_ |= 0x00000020;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 UserID = 6;
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000020);
        userID_ = 0;
        onChanged();
        return this;
      }

      private int groupID_ ;
      /**
       * optional uint32 GroupID = 7;
       */
      public boolean hasGroupID() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 GroupID = 7;
       */
      public int getGroupID() {
        return groupID_;
      }
      /**
       * optional uint32 GroupID = 7;
       */
      public Builder setGroupID(int value) {
        bitField0_ |= 0x00000040;
        groupID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 GroupID = 7;
       */
      public Builder clearGroupID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        groupID_ = 0;
        onChanged();
        return this;
      }

      private long lastModified_ ;
      /**
       * optional uint64 LastModified = 8;
       */
      public boolean hasLastModified() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional uint64 LastModified = 8;
       */
      public long getLastModified() {
        return lastModified_;
      }
      /**
       * optional uint64 LastModified = 8;
       */
      public Builder setLastModified(long value) {
        bitField0_ |= 0x00000080;
        lastModified_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 LastModified = 8;
       */
      public Builder clearLastModified() {
        bitField0_ = (bitField0_ & ~0x00000080);
        lastModified_ = 0L;
        onChanged();
        return this;
      }

      private long lastStatusChange_ ;
      /**
       * optional uint64 LastStatusChange = 9;
       */
      public boolean hasLastStatusChange() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional uint64 LastStatusChange = 9;
       */
      public long getLastStatusChange() {
        return lastStatusChange_;
      }
      /**
       * optional uint64 LastStatusChange = 9;
       */
      public Builder setLastStatusChange(long value) {
        bitField0_ |= 0x00000100;
        lastStatusChange_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 LastStatusChange = 9;
       */
      public Builder clearLastStatusChange() {
        bitField0_ = (bitField0_ & ~0x00000100);
        lastStatusChange_ = 0L;
        onChanged();
        return this;
      }

      private long birth_ ;
      /**
       * optional uint64 Birth = 10;
       */
      public boolean hasBirth() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional uint64 Birth = 10;
       */
      public long getBirth() {
        return birth_;
      }
      /**
       * optional uint64 Birth = 10;
       */
      public Builder setBirth(long value) {
        bitField0_ |= 0x00000200;
        birth_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 Birth = 10;
       */
      public Builder clearBirth() {
        bitField0_ = (bitField0_ & ~0x00000200);
        birth_ = 0L;
        onChanged();
        return this;
      }

      private int protectionClass_ ;
      /**
       * optional uint32 ProtectionClass = 12;
       */
      public boolean hasProtectionClass() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional uint32 ProtectionClass = 12;
       */
      public int getProtectionClass() {
        return protectionClass_;
      }
      /**
       * optional uint32 ProtectionClass = 12;
       */
      public Builder setProtectionClass(int value) {
        bitField0_ |= 0x00000400;
        protectionClass_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ProtectionClass = 12;
       */
      public Builder clearProtectionClass() {
        bitField0_ = (bitField0_ & ~0x00000400);
        protectionClass_ = 0;
        onChanged();
        return this;
      }

      private com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute extendedAttribute_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttributeOrBuilder> extendedAttributeBuilder_;
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
       */
      public boolean hasExtendedAttribute() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute getExtendedAttribute() {
        if (extendedAttributeBuilder_ == null) {
          return extendedAttribute_;
        } else {
          return extendedAttributeBuilder_.getMessage();
        }
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
       */
      public Builder setExtendedAttribute(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute value) {
        if (extendedAttributeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          extendedAttribute_ = value;
          onChanged();
        } else {
          extendedAttributeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
       */
      public Builder setExtendedAttribute(
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.Builder builderForValue) {
        if (extendedAttributeBuilder_ == null) {
          extendedAttribute_ = builderForValue.build();
          onChanged();
        } else {
          extendedAttributeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
       */
      public Builder mergeExtendedAttribute(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute value) {
        if (extendedAttributeBuilder_ == null) {
          if (((bitField0_ & 0x00000800) == 0x00000800) &&
              extendedAttribute_ != com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.getDefaultInstance()) {
            extendedAttribute_ =
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.newBuilder(extendedAttribute_).mergeFrom(value).buildPartial();
          } else {
            extendedAttribute_ = value;
          }
          onChanged();
        } else {
          extendedAttributeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
       */
      public Builder clearExtendedAttribute() {
        if (extendedAttributeBuilder_ == null) {
          extendedAttribute_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.getDefaultInstance();
          onChanged();
        } else {
          extendedAttributeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.Builder getExtendedAttributeBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getExtendedAttributeFieldBuilder().getBuilder();
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttributeOrBuilder getExtendedAttributeOrBuilder() {
        if (extendedAttributeBuilder_ != null) {
          return extendedAttributeBuilder_.getMessageOrBuilder();
        } else {
          return extendedAttribute_;
        }
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute ExtendedAttribute = 13;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttributeOrBuilder>
          getExtendedAttributeFieldBuilder() {
        if (extendedAttributeBuilder_ == null) {
          extendedAttributeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttributeOrBuilder>(
                  getExtendedAttribute(),
                  getParentForChildren(),
                  isClean());
          extendedAttribute_ = null;
        }
        return extendedAttributeBuilder_;
      }

      private int encryptionKeyVersion_ ;
      /**
       * optional uint32 EncryptionKeyVersion = 14;
       */
      public boolean hasEncryptionKeyVersion() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional uint32 EncryptionKeyVersion = 14;
       */
      public int getEncryptionKeyVersion() {
        return encryptionKeyVersion_;
      }
      /**
       * optional uint32 EncryptionKeyVersion = 14;
       */
      public Builder setEncryptionKeyVersion(int value) {
        bitField0_ |= 0x00001000;
        encryptionKeyVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 EncryptionKeyVersion = 14;
       */
      public Builder clearEncryptionKeyVersion() {
        bitField0_ = (bitField0_ & ~0x00001000);
        encryptionKeyVersion_ = 0;
        onChanged();
        return this;
      }

      private long decryptedSize_ ;
      /**
       * optional uint64 DecryptedSize = 15;
       */
      public boolean hasDecryptedSize() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional uint64 DecryptedSize = 15;
       */
      public long getDecryptedSize() {
        return decryptedSize_;
      }
      /**
       * optional uint64 DecryptedSize = 15;
       */
      public Builder setDecryptedSize(long value) {
        bitField0_ |= 0x00002000;
        decryptedSize_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 DecryptedSize = 15;
       */
      public Builder clearDecryptedSize() {
        bitField0_ = (bitField0_ & ~0x00002000);
        decryptedSize_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAttributes)
  }

  public interface MBSSnapshotOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 SnapshotID = 1;
     */
    boolean hasSnapshotID();
    /**
     * optional uint32 SnapshotID = 1;
     */
    int getSnapshotID();

    /**
     * optional uint64 QuotaReserved = 2;
     */
    boolean hasQuotaReserved();
    /**
     * optional uint64 QuotaReserved = 2;
     */
    long getQuotaReserved();

    /**
     * optional uint64 LastModified = 3;
     */
    boolean hasLastModified();
    /**
     * optional uint64 LastModified = 3;
     */
    long getLastModified();

    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
     */
    boolean hasAttributes();
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes getAttributes();
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributesOrBuilder getAttributesOrBuilder();

    /**
     * optional uint64 Committed = 6;
     */
    boolean hasCommitted();
    /**
     * optional uint64 Committed = 6;
     */
    long getCommitted();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot}
   */
  public static final class MBSSnapshot extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot)
      MBSSnapshotOrBuilder {
    // Use MBSSnapshot.newBuilder() to construct.
    private MBSSnapshot(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSSnapshot(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSSnapshot getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSSnapshot(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              snapshotID_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              quotaReserved_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              lastModified_ = input.readUInt64();
              break;
            }
            case 42: {
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = attributes_.toBuilder();
              }
              attributes_ = input.readMessage(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(attributes_);
                attributes_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              committed_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshot_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshot_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSSnapshot> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SNAPSHOTID_FIELD_NUMBER = 1;
    private int snapshotID_;
    /**
     * optional uint32 SnapshotID = 1;
     */
    public boolean hasSnapshotID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 SnapshotID = 1;
     */
    public int getSnapshotID() {
      return snapshotID_;
    }

    public static final int QUOTARESERVED_FIELD_NUMBER = 2;
    private long quotaReserved_;
    /**
     * optional uint64 QuotaReserved = 2;
     */
    public boolean hasQuotaReserved() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint64 QuotaReserved = 2;
     */
    public long getQuotaReserved() {
      return quotaReserved_;
    }

    public static final int LASTMODIFIED_FIELD_NUMBER = 3;
    private long lastModified_;
    /**
     * optional uint64 LastModified = 3;
     */
    public boolean hasLastModified() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint64 LastModified = 3;
     */
    public long getLastModified() {
      return lastModified_;
    }

    public static final int ATTRIBUTES_FIELD_NUMBER = 5;
    private com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes attributes_;
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
     */
    public boolean hasAttributes() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes getAttributes() {
      return attributes_;
    }
    /**
     * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributesOrBuilder getAttributesOrBuilder() {
      return attributes_;
    }

    public static final int COMMITTED_FIELD_NUMBER = 6;
    private long committed_;
    /**
     * optional uint64 Committed = 6;
     */
    public boolean hasCommitted() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint64 Committed = 6;
     */
    public long getCommitted() {
      return committed_;
    }

    private void initFields() {
      snapshotID_ = 0;
      quotaReserved_ = 0L;
      lastModified_ = 0L;
      attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.getDefaultInstance();
      committed_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, snapshotID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, quotaReserved_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt64(3, lastModified_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(5, attributes_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt64(6, committed_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, snapshotID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, quotaReserved_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, lastModified_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, attributes_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(6, committed_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshot_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshot_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        snapshotID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        quotaReserved_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        lastModified_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (attributesBuilder_ == null) {
          attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.getDefaultInstance();
        } else {
          attributesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        committed_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshot_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.snapshotID_ = snapshotID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.quotaReserved_ = quotaReserved_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.lastModified_ = lastModified_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (attributesBuilder_ == null) {
          result.attributes_ = attributes_;
        } else {
          result.attributes_ = attributesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.committed_ = committed_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot.getDefaultInstance()) return this;
        if (other.hasSnapshotID()) {
          setSnapshotID(other.getSnapshotID());
        }
        if (other.hasQuotaReserved()) {
          setQuotaReserved(other.getQuotaReserved());
        }
        if (other.hasLastModified()) {
          setLastModified(other.getLastModified());
        }
        if (other.hasAttributes()) {
          mergeAttributes(other.getAttributes());
        }
        if (other.hasCommitted()) {
          setCommitted(other.getCommitted());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshot) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int snapshotID_ ;
      /**
       * optional uint32 SnapshotID = 1;
       */
      public boolean hasSnapshotID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 SnapshotID = 1;
       */
      public int getSnapshotID() {
        return snapshotID_;
      }
      /**
       * optional uint32 SnapshotID = 1;
       */
      public Builder setSnapshotID(int value) {
        bitField0_ |= 0x00000001;
        snapshotID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 SnapshotID = 1;
       */
      public Builder clearSnapshotID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        snapshotID_ = 0;
        onChanged();
        return this;
      }

      private long quotaReserved_ ;
      /**
       * optional uint64 QuotaReserved = 2;
       */
      public boolean hasQuotaReserved() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint64 QuotaReserved = 2;
       */
      public long getQuotaReserved() {
        return quotaReserved_;
      }
      /**
       * optional uint64 QuotaReserved = 2;
       */
      public Builder setQuotaReserved(long value) {
        bitField0_ |= 0x00000002;
        quotaReserved_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 QuotaReserved = 2;
       */
      public Builder clearQuotaReserved() {
        bitField0_ = (bitField0_ & ~0x00000002);
        quotaReserved_ = 0L;
        onChanged();
        return this;
      }

      private long lastModified_ ;
      /**
       * optional uint64 LastModified = 3;
       */
      public boolean hasLastModified() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint64 LastModified = 3;
       */
      public long getLastModified() {
        return lastModified_;
      }
      /**
       * optional uint64 LastModified = 3;
       */
      public Builder setLastModified(long value) {
        bitField0_ |= 0x00000004;
        lastModified_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 LastModified = 3;
       */
      public Builder clearLastModified() {
        bitField0_ = (bitField0_ & ~0x00000004);
        lastModified_ = 0L;
        onChanged();
        return this;
      }

      private com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributesOrBuilder> attributesBuilder_;
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
       */
      public boolean hasAttributes() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes getAttributes() {
        if (attributesBuilder_ == null) {
          return attributes_;
        } else {
          return attributesBuilder_.getMessage();
        }
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
       */
      public Builder setAttributes(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes value) {
        if (attributesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributes_ = value;
          onChanged();
        } else {
          attributesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
       */
      public Builder setAttributes(
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.Builder builderForValue) {
        if (attributesBuilder_ == null) {
          attributes_ = builderForValue.build();
          onChanged();
        } else {
          attributesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
       */
      public Builder mergeAttributes(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes value) {
        if (attributesBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              attributes_ != com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.getDefaultInstance()) {
            attributes_ =
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.newBuilder(attributes_).mergeFrom(value).buildPartial();
          } else {
            attributes_ = value;
          }
          onChanged();
        } else {
          attributesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
       */
      public Builder clearAttributes() {
        if (attributesBuilder_ == null) {
          attributes_ = com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.getDefaultInstance();
          onChanged();
        } else {
          attributesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.Builder getAttributesBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getAttributesFieldBuilder().getBuilder();
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributesOrBuilder getAttributesOrBuilder() {
        if (attributesBuilder_ != null) {
          return attributesBuilder_.getMessageOrBuilder();
        } else {
          return attributes_;
        }
      }
      /**
       * optional .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes Attributes = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributesOrBuilder>
          getAttributesFieldBuilder() {
        if (attributesBuilder_ == null) {
          attributesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributesOrBuilder>(
                  getAttributes(),
                  getParentForChildren(),
                  isClean());
          attributes_ = null;
        }
        return attributesBuilder_;
      }

      private long committed_ ;
      /**
       * optional uint64 Committed = 6;
       */
      public boolean hasCommitted() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint64 Committed = 6;
       */
      public long getCommitted() {
        return committed_;
      }
      /**
       * optional uint64 Committed = 6;
       */
      public Builder setCommitted(long value) {
        bitField0_ |= 0x00000010;
        committed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 Committed = 6;
       */
      public Builder clearCommitted() {
        bitField0_ = (bitField0_ & ~0x00000010);
        committed_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshot)
  }

  public interface MBSSnapshotAttributesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string DeviceName = 1;
     */
    boolean hasDeviceName();
    /**
     * optional string DeviceName = 1;
     */
    java.lang.String getDeviceName();
    /**
     * optional string DeviceName = 1;
     */
    com.google.protobuf.ByteString
        getDeviceNameBytes();

    /**
     * optional string ProductVersion = 2;
     */
    boolean hasProductVersion();
    /**
     * optional string ProductVersion = 2;
     */
    java.lang.String getProductVersion();
    /**
     * optional string ProductVersion = 2;
     */
    com.google.protobuf.ByteString
        getProductVersionBytes();

    /**
     * optional string BuildVersion = 3;
     */
    boolean hasBuildVersion();
    /**
     * optional string BuildVersion = 3;
     */
    java.lang.String getBuildVersion();
    /**
     * optional string BuildVersion = 3;
     */
    com.google.protobuf.ByteString
        getBuildVersionBytes();

    /**
     * optional uint32 KeybagID = 4;
     */
    boolean hasKeybagID();
    /**
     * optional uint32 KeybagID = 4;
     */
    int getKeybagID();

    /**
     * optional bytes KeybagUUID = 5;
     */
    boolean hasKeybagUUID();
    /**
     * optional bytes KeybagUUID = 5;
     */
    com.google.protobuf.ByteString getKeybagUUID();

    /**
     * optional int32 BackupReason = 6;
     */
    boolean hasBackupReason();
    /**
     * optional int32 BackupReason = 6;
     */
    int getBackupReason();

    /**
     * optional int32 BackupType = 7;
     */
    boolean hasBackupType();
    /**
     * optional int32 BackupType = 7;
     */
    int getBackupType();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes}
   */
  public static final class MBSSnapshotAttributes extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes)
      MBSSnapshotAttributesOrBuilder {
    // Use MBSSnapshotAttributes.newBuilder() to construct.
    private MBSSnapshotAttributes(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSSnapshotAttributes(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSSnapshotAttributes getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSSnapshotAttributes(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              deviceName_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              productVersion_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              buildVersion_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              keybagID_ = input.readUInt32();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000010;
              keybagUUID_ = input.readBytes();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              backupReason_ = input.readInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              backupType_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotAttributes_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotAttributes_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSSnapshotAttributes> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DEVICENAME_FIELD_NUMBER = 1;
    private java.lang.Object deviceName_;
    /**
     * optional string DeviceName = 1;
     */
    public boolean hasDeviceName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string DeviceName = 1;
     */
    public java.lang.String getDeviceName() {
      java.lang.Object ref = deviceName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          deviceName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string DeviceName = 1;
     */
    public com.google.protobuf.ByteString
        getDeviceNameBytes() {
      java.lang.Object ref = deviceName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PRODUCTVERSION_FIELD_NUMBER = 2;
    private java.lang.Object productVersion_;
    /**
     * optional string ProductVersion = 2;
     */
    public boolean hasProductVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string ProductVersion = 2;
     */
    public java.lang.String getProductVersion() {
      java.lang.Object ref = productVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          productVersion_ = s;
        }
        return s;
      }
    }
    /**
     * optional string ProductVersion = 2;
     */
    public com.google.protobuf.ByteString
        getProductVersionBytes() {
      java.lang.Object ref = productVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        productVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BUILDVERSION_FIELD_NUMBER = 3;
    private java.lang.Object buildVersion_;
    /**
     * optional string BuildVersion = 3;
     */
    public boolean hasBuildVersion() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string BuildVersion = 3;
     */
    public java.lang.String getBuildVersion() {
      java.lang.Object ref = buildVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          buildVersion_ = s;
        }
        return s;
      }
    }
    /**
     * optional string BuildVersion = 3;
     */
    public com.google.protobuf.ByteString
        getBuildVersionBytes() {
      java.lang.Object ref = buildVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        buildVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KEYBAGID_FIELD_NUMBER = 4;
    private int keybagID_;
    /**
     * optional uint32 KeybagID = 4;
     */
    public boolean hasKeybagID() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 KeybagID = 4;
     */
    public int getKeybagID() {
      return keybagID_;
    }

    public static final int KEYBAGUUID_FIELD_NUMBER = 5;
    private com.google.protobuf.ByteString keybagUUID_;
    /**
     * optional bytes KeybagUUID = 5;
     */
    public boolean hasKeybagUUID() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bytes KeybagUUID = 5;
     */
    public com.google.protobuf.ByteString getKeybagUUID() {
      return keybagUUID_;
    }

    public static final int BACKUPREASON_FIELD_NUMBER = 6;
    private int backupReason_;
    /**
     * optional int32 BackupReason = 6;
     */
    public boolean hasBackupReason() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 BackupReason = 6;
     */
    public int getBackupReason() {
      return backupReason_;
    }

    public static final int BACKUPTYPE_FIELD_NUMBER = 7;
    private int backupType_;
    /**
     * optional int32 BackupType = 7;
     */
    public boolean hasBackupType() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional int32 BackupType = 7;
     */
    public int getBackupType() {
      return backupType_;
    }

    private void initFields() {
      deviceName_ = "";
      productVersion_ = "";
      buildVersion_ = "";
      keybagID_ = 0;
      keybagUUID_ = com.google.protobuf.ByteString.EMPTY;
      backupReason_ = 0;
      backupType_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getDeviceNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getProductVersionBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getBuildVersionBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, keybagID_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, keybagUUID_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, backupReason_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(7, backupType_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getDeviceNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getProductVersionBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getBuildVersionBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, keybagID_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, keybagUUID_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, backupReason_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, backupType_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotAttributes_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotAttributes_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        deviceName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        productVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        buildVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        keybagID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        keybagUUID_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        backupReason_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        backupType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotAttributes_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.deviceName_ = deviceName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.productVersion_ = productVersion_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.buildVersion_ = buildVersion_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.keybagID_ = keybagID_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.keybagUUID_ = keybagUUID_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.backupReason_ = backupReason_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.backupType_ = backupType_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes.getDefaultInstance()) return this;
        if (other.hasDeviceName()) {
          bitField0_ |= 0x00000001;
          deviceName_ = other.deviceName_;
          onChanged();
        }
        if (other.hasProductVersion()) {
          bitField0_ |= 0x00000002;
          productVersion_ = other.productVersion_;
          onChanged();
        }
        if (other.hasBuildVersion()) {
          bitField0_ |= 0x00000004;
          buildVersion_ = other.buildVersion_;
          onChanged();
        }
        if (other.hasKeybagID()) {
          setKeybagID(other.getKeybagID());
        }
        if (other.hasKeybagUUID()) {
          setKeybagUUID(other.getKeybagUUID());
        }
        if (other.hasBackupReason()) {
          setBackupReason(other.getBackupReason());
        }
        if (other.hasBackupType()) {
          setBackupType(other.getBackupType());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotAttributes) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object deviceName_ = "";
      /**
       * optional string DeviceName = 1;
       */
      public boolean hasDeviceName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string DeviceName = 1;
       */
      public java.lang.String getDeviceName() {
        java.lang.Object ref = deviceName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            deviceName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string DeviceName = 1;
       */
      public com.google.protobuf.ByteString
          getDeviceNameBytes() {
        java.lang.Object ref = deviceName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string DeviceName = 1;
       */
      public Builder setDeviceName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        deviceName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string DeviceName = 1;
       */
      public Builder clearDeviceName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        deviceName_ = getDefaultInstance().getDeviceName();
        onChanged();
        return this;
      }
      /**
       * optional string DeviceName = 1;
       */
      public Builder setDeviceNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        deviceName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object productVersion_ = "";
      /**
       * optional string ProductVersion = 2;
       */
      public boolean hasProductVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string ProductVersion = 2;
       */
      public java.lang.String getProductVersion() {
        java.lang.Object ref = productVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            productVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string ProductVersion = 2;
       */
      public com.google.protobuf.ByteString
          getProductVersionBytes() {
        java.lang.Object ref = productVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          productVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string ProductVersion = 2;
       */
      public Builder setProductVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        productVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string ProductVersion = 2;
       */
      public Builder clearProductVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        productVersion_ = getDefaultInstance().getProductVersion();
        onChanged();
        return this;
      }
      /**
       * optional string ProductVersion = 2;
       */
      public Builder setProductVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        productVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object buildVersion_ = "";
      /**
       * optional string BuildVersion = 3;
       */
      public boolean hasBuildVersion() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string BuildVersion = 3;
       */
      public java.lang.String getBuildVersion() {
        java.lang.Object ref = buildVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            buildVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string BuildVersion = 3;
       */
      public com.google.protobuf.ByteString
          getBuildVersionBytes() {
        java.lang.Object ref = buildVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          buildVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string BuildVersion = 3;
       */
      public Builder setBuildVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        buildVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string BuildVersion = 3;
       */
      public Builder clearBuildVersion() {
        bitField0_ = (bitField0_ & ~0x00000004);
        buildVersion_ = getDefaultInstance().getBuildVersion();
        onChanged();
        return this;
      }
      /**
       * optional string BuildVersion = 3;
       */
      public Builder setBuildVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        buildVersion_ = value;
        onChanged();
        return this;
      }

      private int keybagID_ ;
      /**
       * optional uint32 KeybagID = 4;
       */
      public boolean hasKeybagID() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 KeybagID = 4;
       */
      public int getKeybagID() {
        return keybagID_;
      }
      /**
       * optional uint32 KeybagID = 4;
       */
      public Builder setKeybagID(int value) {
        bitField0_ |= 0x00000008;
        keybagID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 KeybagID = 4;
       */
      public Builder clearKeybagID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        keybagID_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString keybagUUID_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes KeybagUUID = 5;
       */
      public boolean hasKeybagUUID() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bytes KeybagUUID = 5;
       */
      public com.google.protobuf.ByteString getKeybagUUID() {
        return keybagUUID_;
      }
      /**
       * optional bytes KeybagUUID = 5;
       */
      public Builder setKeybagUUID(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        keybagUUID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes KeybagUUID = 5;
       */
      public Builder clearKeybagUUID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        keybagUUID_ = getDefaultInstance().getKeybagUUID();
        onChanged();
        return this;
      }

      private int backupReason_ ;
      /**
       * optional int32 BackupReason = 6;
       */
      public boolean hasBackupReason() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 BackupReason = 6;
       */
      public int getBackupReason() {
        return backupReason_;
      }
      /**
       * optional int32 BackupReason = 6;
       */
      public Builder setBackupReason(int value) {
        bitField0_ |= 0x00000020;
        backupReason_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 BackupReason = 6;
       */
      public Builder clearBackupReason() {
        bitField0_ = (bitField0_ & ~0x00000020);
        backupReason_ = 0;
        onChanged();
        return this;
      }

      private int backupType_ ;
      /**
       * optional int32 BackupType = 7;
       */
      public boolean hasBackupType() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional int32 BackupType = 7;
       */
      public int getBackupType() {
        return backupType_;
      }
      /**
       * optional int32 BackupType = 7;
       */
      public Builder setBackupType(int value) {
        bitField0_ |= 0x00000040;
        backupType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 BackupType = 7;
       */
      public Builder clearBackupType() {
        bitField0_ = (bitField0_ & ~0x00000040);
        backupType_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotAttributes)
  }

  public interface MBSSnapshotIDOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotID)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 SnapshotID = 1;
     */
    boolean hasSnapshotID();
    /**
     * optional uint32 SnapshotID = 1;
     */
    int getSnapshotID();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotID}
   */
  public static final class MBSSnapshotID extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotID)
      MBSSnapshotIDOrBuilder {
    // Use MBSSnapshotID.newBuilder() to construct.
    private MBSSnapshotID(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSSnapshotID(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSSnapshotID getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSSnapshotID(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              snapshotID_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotID_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotID_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSSnapshotID> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SNAPSHOTID_FIELD_NUMBER = 1;
    private int snapshotID_;
    /**
     * optional uint32 SnapshotID = 1;
     */
    public boolean hasSnapshotID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 SnapshotID = 1;
     */
    public int getSnapshotID() {
      return snapshotID_;
    }

    private void initFields() {
      snapshotID_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, snapshotID_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, snapshotID_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotID}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotID)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotIDOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotID_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotID_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

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

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotID_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.snapshotID_ = snapshotID_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID.getDefaultInstance()) return this;
        if (other.hasSnapshotID()) {
          setSnapshotID(other.getSnapshotID());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSSnapshotID) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int snapshotID_ ;
      /**
       * optional uint32 SnapshotID = 1;
       */
      public boolean hasSnapshotID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 SnapshotID = 1;
       */
      public int getSnapshotID() {
        return snapshotID_;
      }
      /**
       * optional uint32 SnapshotID = 1;
       */
      public Builder setSnapshotID(int value) {
        bitField0_ |= 0x00000001;
        snapshotID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 SnapshotID = 1;
       */
      public Builder clearSnapshotID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        snapshotID_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotID)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSSnapshotID)
  }

  public interface MBSFileAuthTokenOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required bytes FileID = 1;
     */
    boolean hasFileID();
    /**
     * required bytes FileID = 1;
     */
    com.google.protobuf.ByteString getFileID();

    /**
     * optional string AuthToken = 2;
     */
    boolean hasAuthToken();
    /**
     * optional string AuthToken = 2;
     */
    java.lang.String getAuthToken();
    /**
     * optional string AuthToken = 2;
     */
    com.google.protobuf.ByteString
        getAuthTokenBytes();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken}
   */
  public static final class MBSFileAuthToken extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken)
      MBSFileAuthTokenOrBuilder {
    // Use MBSFileAuthToken.newBuilder() to construct.
    private MBSFileAuthToken(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSFileAuthToken(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSFileAuthToken getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSFileAuthToken(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              fileID_ = input.readBytes();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              authToken_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthToken_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthToken_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSFileAuthToken> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int FILEID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString fileID_;
    /**
     * required bytes FileID = 1;
     */
    public boolean hasFileID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required bytes FileID = 1;
     */
    public com.google.protobuf.ByteString getFileID() {
      return fileID_;
    }

    public static final int AUTHTOKEN_FIELD_NUMBER = 2;
    private java.lang.Object authToken_;
    /**
     * optional string AuthToken = 2;
     */
    public boolean hasAuthToken() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string AuthToken = 2;
     */
    public java.lang.String getAuthToken() {
      java.lang.Object ref = authToken_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          authToken_ = s;
        }
        return s;
      }
    }
    /**
     * optional string AuthToken = 2;
     */
    public com.google.protobuf.ByteString
        getAuthTokenBytes() {
      java.lang.Object ref = authToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        authToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      fileID_ = com.google.protobuf.ByteString.EMPTY;
      authToken_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, fileID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getAuthTokenBytes());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, fileID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getAuthTokenBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokenOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthToken_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthToken_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        fileID_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        authToken_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthToken_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.fileID_ = fileID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.authToken_ = authToken_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.getDefaultInstance()) return this;
        if (other.hasFileID()) {
          setFileID(other.getFileID());
        }
        if (other.hasAuthToken()) {
          bitField0_ |= 0x00000002;
          authToken_ = other.authToken_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasFileID()) {

          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString fileID_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * required bytes FileID = 1;
       */
      public boolean hasFileID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required bytes FileID = 1;
       */
      public com.google.protobuf.ByteString getFileID() {
        return fileID_;
      }
      /**
       * required bytes FileID = 1;
       */
      public Builder setFileID(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        fileID_ = value;
        onChanged();
        return this;
      }
      /**
       * required bytes FileID = 1;
       */
      public Builder clearFileID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        fileID_ = getDefaultInstance().getFileID();
        onChanged();
        return this;
      }

      private java.lang.Object authToken_ = "";
      /**
       * optional string AuthToken = 2;
       */
      public boolean hasAuthToken() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string AuthToken = 2;
       */
      public java.lang.String getAuthToken() {
        java.lang.Object ref = authToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            authToken_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string AuthToken = 2;
       */
      public com.google.protobuf.ByteString
          getAuthTokenBytes() {
        java.lang.Object ref = authToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          authToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string AuthToken = 2;
       */
      public Builder setAuthToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        authToken_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string AuthToken = 2;
       */
      public Builder clearAuthToken() {
        bitField0_ = (bitField0_ & ~0x00000002);
        authToken_ = getDefaultInstance().getAuthToken();
        onChanged();
        return this;
      }
      /**
       * optional string AuthToken = 2;
       */
      public Builder setAuthTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        authToken_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken)
  }

  public interface MBSFileAuthTokensOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthTokens)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
     */
    java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken>
        getTokensList();
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken getTokens(int index);
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
     */
    int getTokensCount();
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
     */
    java.util.List<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokenOrBuilder>
        getTokensOrBuilderList();
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokenOrBuilder getTokensOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthTokens}
   */
  public static final class MBSFileAuthTokens extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthTokens)
      MBSFileAuthTokensOrBuilder {
    // Use MBSFileAuthTokens.newBuilder() to construct.
    private MBSFileAuthTokens(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSFileAuthTokens(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSFileAuthTokens getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSFileAuthTokens(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                tokens_ = new java.util.ArrayList<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken>();
                mutable_bitField0_ |= 0x00000001;
              }
              tokens_.add(input.readMessage(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          tokens_ = java.util.Collections.unmodifiableList(tokens_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthTokens_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthTokens_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSFileAuthTokens> getParserForType() {
      return PARSER;
    }

    public static final int TOKENS_FIELD_NUMBER = 1;
    private java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken> tokens_;
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
     */
    public java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken> getTokensList() {
      return tokens_;
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
     */
    public java.util.List<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokenOrBuilder>
        getTokensOrBuilderList() {
      return tokens_;
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
     */
    public int getTokensCount() {
      return tokens_.size();
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken getTokens(int index) {
      return tokens_.get(index);
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokenOrBuilder getTokensOrBuilder(
        int index) {
      return tokens_.get(index);
    }

    private void initFields() {
      tokens_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getTokensCount(); i++) {
        if (!getTokens(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < tokens_.size(); i++) {
        output.writeMessage(1, tokens_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < tokens_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, tokens_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthTokens}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthTokens)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokensOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthTokens_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthTokens_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (tokensBuilder_ == null) {
          tokens_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          tokensBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthTokens_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens(this);
        int from_bitField0_ = bitField0_;
        if (tokensBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            tokens_ = java.util.Collections.unmodifiableList(tokens_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.tokens_ = tokens_;
        } else {
          result.tokens_ = tokensBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens.getDefaultInstance()) return this;
        if (tokensBuilder_ == null) {
          if (!other.tokens_.isEmpty()) {
            if (tokens_.isEmpty()) {
              tokens_ = other.tokens_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureTokensIsMutable();
              tokens_.addAll(other.tokens_);
            }
            onChanged();
          }
        } else {
          if (!other.tokens_.isEmpty()) {
            if (tokensBuilder_.isEmpty()) {
              tokensBuilder_.dispose();
              tokensBuilder_ = null;
              tokens_ = other.tokens_;
              bitField0_ = (bitField0_ & ~0x00000001);
              tokensBuilder_ =
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getTokensFieldBuilder() : null;
            } else {
              tokensBuilder_.addAllMessages(other.tokens_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getTokensCount(); i++) {
          if (!getTokens(i).isInitialized()) {

            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokens) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken> tokens_ =
        java.util.Collections.emptyList();
      private void ensureTokensIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          tokens_ = new java.util.ArrayList<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken>(tokens_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokenOrBuilder> tokensBuilder_;

      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken> getTokensList() {
        if (tokensBuilder_ == null) {
          return java.util.Collections.unmodifiableList(tokens_);
        } else {
          return tokensBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public int getTokensCount() {
        if (tokensBuilder_ == null) {
          return tokens_.size();
        } else {
          return tokensBuilder_.getCount();
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken getTokens(int index) {
        if (tokensBuilder_ == null) {
          return tokens_.get(index);
        } else {
          return tokensBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public Builder setTokens(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken value) {
        if (tokensBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTokensIsMutable();
          tokens_.set(index, value);
          onChanged();
        } else {
          tokensBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public Builder setTokens(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder builderForValue) {
        if (tokensBuilder_ == null) {
          ensureTokensIsMutable();
          tokens_.set(index, builderForValue.build());
          onChanged();
        } else {
          tokensBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public Builder addTokens(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken value) {
        if (tokensBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTokensIsMutable();
          tokens_.add(value);
          onChanged();
        } else {
          tokensBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public Builder addTokens(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken value) {
        if (tokensBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTokensIsMutable();
          tokens_.add(index, value);
          onChanged();
        } else {
          tokensBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public Builder addTokens(
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder builderForValue) {
        if (tokensBuilder_ == null) {
          ensureTokensIsMutable();
          tokens_.add(builderForValue.build());
          onChanged();
        } else {
          tokensBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public Builder addTokens(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder builderForValue) {
        if (tokensBuilder_ == null) {
          ensureTokensIsMutable();
          tokens_.add(index, builderForValue.build());
          onChanged();
        } else {
          tokensBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public Builder addAllTokens(
          java.lang.Iterable<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken> values) {
        if (tokensBuilder_ == null) {
          ensureTokensIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, tokens_);
          onChanged();
        } else {
          tokensBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public Builder clearTokens() {
        if (tokensBuilder_ == null) {
          tokens_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          tokensBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public Builder removeTokens(int index) {
        if (tokensBuilder_ == null) {
          ensureTokensIsMutable();
          tokens_.remove(index);
          onChanged();
        } else {
          tokensBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder getTokensBuilder(
          int index) {
        return getTokensFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokenOrBuilder getTokensOrBuilder(
          int index) {
        if (tokensBuilder_ == null) {
          return tokens_.get(index);  } else {
          return tokensBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public java.util.List<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokenOrBuilder>
           getTokensOrBuilderList() {
        if (tokensBuilder_ != null) {
          return tokensBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(tokens_);
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder addTokensBuilder() {
        return getTokensFieldBuilder().addBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.getDefaultInstance());
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder addTokensBuilder(
          int index) {
        return getTokensFieldBuilder().addBuilder(index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.getDefaultInstance());
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthToken tokens = 1;
       */
      public java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder>
           getTokensBuilderList() {
        return getTokensFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokenOrBuilder>
          getTokensFieldBuilder() {
        if (tokensBuilder_ == null) {
          tokensBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthToken.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileAuthTokenOrBuilder>(
                  tokens_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          tokens_ = null;
        }
        return tokensBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthTokens)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileAuthTokens)
  }

  public interface MBSFileIDOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileID)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required bytes FileID = 1;
     */
    boolean hasFileID();
    /**
     * required bytes FileID = 1;
     */
    com.google.protobuf.ByteString getFileID();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileID}
   */
  public static final class MBSFileID extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileID)
      MBSFileIDOrBuilder {
    // Use MBSFileID.newBuilder() to construct.
    private MBSFileID(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSFileID(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSFileID getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileID_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSFileID> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int FILEID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString fileID_;
    /**
     * required bytes FileID = 1;
     */
    public boolean hasFileID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required bytes FileID = 1;
     */
    public com.google.protobuf.ByteString getFileID() {
      return fileID_;
    }

    private void initFields() {
      fileID_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

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

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

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

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileID}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileID)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileIDOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileID_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileID_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        fileID_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileID_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.fileID_ = fileID_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID.getDefaultInstance()) return this;
        if (other.hasFileID()) {
          setFileID(other.getFileID());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasFileID()) {

          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileID) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString fileID_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * required bytes FileID = 1;
       */
      public boolean hasFileID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required bytes FileID = 1;
       */
      public com.google.protobuf.ByteString getFileID() {
        return fileID_;
      }
      /**
       * required bytes FileID = 1;
       */
      public Builder setFileID(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        fileID_ = value;
        onChanged();
        return this;
      }
      /**
       * required bytes FileID = 1;
       */
      public Builder clearFileID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        fileID_ = getDefaultInstance().getFileID();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileID)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileID)
  }

  public interface MBSKeyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 KeyID = 1;
     */
    boolean hasKeyID();
    /**
     * optional uint32 KeyID = 1;
     */
    int getKeyID();

    /**
     * optional bytes KeyData = 2;
     */
    boolean hasKeyData();
    /**
     * optional bytes KeyData = 2;
     */
    com.google.protobuf.ByteString getKeyData();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey}
   */
  public static final class MBSKey extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey)
      MBSKeyOrBuilder {
    // Use MBSKey.newBuilder() to construct.
    private MBSKey(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSKey(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSKey getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSKey(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              keyID_ = input.readUInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              keyData_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKey_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKey_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSKey> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int KEYID_FIELD_NUMBER = 1;
    private int keyID_;
    /**
     * optional uint32 KeyID = 1;
     */
    public boolean hasKeyID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 KeyID = 1;
     */
    public int getKeyID() {
      return keyID_;
    }

    public static final int KEYDATA_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString keyData_;
    /**
     * optional bytes KeyData = 2;
     */
    public boolean hasKeyData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bytes KeyData = 2;
     */
    public com.google.protobuf.ByteString getKeyData() {
      return keyData_;
    }

    private void initFields() {
      keyID_ = 0;
      keyData_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, keyID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, keyData_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, keyID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, keyData_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKey_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKey_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        keyID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        keyData_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKey_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.keyID_ = keyID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.keyData_ = keyData_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.getDefaultInstance()) return this;
        if (other.hasKeyID()) {
          setKeyID(other.getKeyID());
        }
        if (other.hasKeyData()) {
          setKeyData(other.getKeyData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int keyID_ ;
      /**
       * optional uint32 KeyID = 1;
       */
      public boolean hasKeyID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 KeyID = 1;
       */
      public int getKeyID() {
        return keyID_;
      }
      /**
       * optional uint32 KeyID = 1;
       */
      public Builder setKeyID(int value) {
        bitField0_ |= 0x00000001;
        keyID_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 KeyID = 1;
       */
      public Builder clearKeyID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        keyID_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString keyData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes KeyData = 2;
       */
      public boolean hasKeyData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bytes KeyData = 2;
       */
      public com.google.protobuf.ByteString getKeyData() {
        return keyData_;
      }
      /**
       * optional bytes KeyData = 2;
       */
      public Builder setKeyData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        keyData_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes KeyData = 2;
       */
      public Builder clearKeyData() {
        bitField0_ = (bitField0_ & ~0x00000002);
        keyData_ = getDefaultInstance().getKeyData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey)
  }

  public interface MBSKeySetOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKeySet)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
     */
    java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey>
        getKeyList();
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey getKey(int index);
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
     */
    int getKeyCount();
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
     */
    java.util.List<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeyOrBuilder>
        getKeyOrBuilderList();
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
     */
    com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeyOrBuilder getKeyOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKeySet}
   */
  public static final class MBSKeySet extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKeySet)
      MBSKeySetOrBuilder {
    // Use MBSKeySet.newBuilder() to construct.
    private MBSKeySet(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSKeySet(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSKeySet getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSKeySet(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                key_ = new java.util.ArrayList<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey>();
                mutable_bitField0_ |= 0x00000001;
              }
              key_.add(input.readMessage(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          key_ = java.util.Collections.unmodifiableList(key_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKeySet_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKeySet_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSKeySet> getParserForType() {
      return PARSER;
    }

    public static final int KEY_FIELD_NUMBER = 1;
    private java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey> key_;
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
     */
    public java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey> getKeyList() {
      return key_;
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
     */
    public java.util.List<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeyOrBuilder>
        getKeyOrBuilderList() {
      return key_;
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
     */
    public int getKeyCount() {
      return key_.size();
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey getKey(int index) {
      return key_.get(index);
    }
    /**
     * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
     */
    public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeyOrBuilder getKeyOrBuilder(
        int index) {
      return key_.get(index);
    }

    private void initFields() {
      key_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < key_.size(); i++) {
        output.writeMessage(1, key_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < key_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, key_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKeySet}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKeySet)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySetOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKeySet_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKeySet_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          keyBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKeySet_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet(this);
        int from_bitField0_ = bitField0_;
        if (keyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            key_ = java.util.Collections.unmodifiableList(key_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet.getDefaultInstance()) return this;
        if (keyBuilder_ == null) {
          if (!other.key_.isEmpty()) {
            if (key_.isEmpty()) {
              key_ = other.key_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureKeyIsMutable();
              key_.addAll(other.key_);
            }
            onChanged();
          }
        } else {
          if (!other.key_.isEmpty()) {
            if (keyBuilder_.isEmpty()) {
              keyBuilder_.dispose();
              keyBuilder_ = null;
              key_ = other.key_;
              bitField0_ = (bitField0_ & ~0x00000001);
              keyBuilder_ =
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getKeyFieldBuilder() : null;
            } else {
              keyBuilder_.addAllMessages(other.key_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeySet) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey> key_ =
        java.util.Collections.emptyList();
      private void ensureKeyIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          key_ = new java.util.ArrayList<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey>(key_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeyOrBuilder> keyBuilder_;

      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey> getKeyList() {
        if (keyBuilder_ == null) {
          return java.util.Collections.unmodifiableList(key_);
        } else {
          return keyBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public int getKeyCount() {
        if (keyBuilder_ == null) {
          return key_.size();
        } else {
          return keyBuilder_.getCount();
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey getKey(int index) {
        if (keyBuilder_ == null) {
          return key_.get(index);
        } else {
          return keyBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public Builder setKey(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKeyIsMutable();
          key_.set(index, value);
          onChanged();
        } else {
          keyBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public Builder setKey(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder builderForValue) {
        if (keyBuilder_ == null) {
          ensureKeyIsMutable();
          key_.set(index, builderForValue.build());
          onChanged();
        } else {
          keyBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public Builder addKey(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKeyIsMutable();
          key_.add(value);
          onChanged();
        } else {
          keyBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public Builder addKey(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKeyIsMutable();
          key_.add(index, value);
          onChanged();
        } else {
          keyBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public Builder addKey(
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder builderForValue) {
        if (keyBuilder_ == null) {
          ensureKeyIsMutable();
          key_.add(builderForValue.build());
          onChanged();
        } else {
          keyBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public Builder addKey(
          int index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder builderForValue) {
        if (keyBuilder_ == null) {
          ensureKeyIsMutable();
          key_.add(index, builderForValue.build());
          onChanged();
        } else {
          keyBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public Builder addAllKey(
          java.lang.Iterable<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey> values) {
        if (keyBuilder_ == null) {
          ensureKeyIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, key_);
          onChanged();
        } else {
          keyBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          keyBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public Builder removeKey(int index) {
        if (keyBuilder_ == null) {
          ensureKeyIsMutable();
          key_.remove(index);
          onChanged();
        } else {
          keyBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder getKeyBuilder(
          int index) {
        return getKeyFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeyOrBuilder getKeyOrBuilder(
          int index) {
        if (keyBuilder_ == null) {
          return key_.get(index);  } else {
          return keyBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public java.util.List<? extends com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeyOrBuilder>
           getKeyOrBuilderList() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(key_);
        }
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder addKeyBuilder() {
        return getKeyFieldBuilder().addBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.getDefaultInstance());
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder addKeyBuilder(
          int index) {
        return getKeyFieldBuilder().addBuilder(index, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.getDefaultInstance());
      }
      /**
       * repeated .com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKey Key = 1;
       */
      public java.util.List<com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder>
           getKeyBuilderList() {
        return getKeyFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeyOrBuilder>
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKey.Builder, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSKeyOrBuilder>(
                  key_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKeySet)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSKeySet)
  }

  public interface MBSFileExtendedAttributeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string Name = 1;
     */
    boolean hasName();
    /**
     * optional string Name = 1;
     */
    java.lang.String getName();
    /**
     * optional string Name = 1;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * optional bytes Value = 2;
     */
    boolean hasValue();
    /**
     * optional bytes Value = 2;
     */
    com.google.protobuf.ByteString getValue();
  }
  /**
   * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute}
   */
  public static final class MBSFileExtendedAttribute extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute)
      MBSFileExtendedAttributeOrBuilder {
    // Use MBSFileExtendedAttribute.newBuilder() to construct.
    private MBSFileExtendedAttribute(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MBSFileExtendedAttribute(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MBSFileExtendedAttribute getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MBSFileExtendedAttribute(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              name_ = bs;
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              value_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileExtendedAttribute_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileExtendedAttribute_fieldAccessorTable
          .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.Builder.class);
    }

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

    @java.lang.Override
    public com.google.protobuf.Parser<MBSFileExtendedAttribute> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private java.lang.Object name_;
    /**
     * optional string Name = 1;
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string Name = 1;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * optional string Name = 1;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString value_;
    /**
     * optional bytes Value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bytes Value = 2;
     */
    public com.google.protobuf.ByteString getValue() {
      return value_;
    }

    private void initFields() {
      name_ = "";
      value_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, value_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, value_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute)
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttributeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileExtendedAttribute_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileExtendedAttribute_fieldAccessorTable
            .ensureFieldAccessorsInitialized(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.class, com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.Builder.class);
      }

      // Construct using com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileExtendedAttribute_descriptor;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute getDefaultInstanceForType() {
        return com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.getDefaultInstance();
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute build() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute buildPartial() {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute result = new com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute) {
          return mergeFrom((com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute other) {
        if (other == com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.github.horrorho.liquiddonkey.cloud.protobuf.ICloud.MBSFileExtendedAttribute) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * optional string Name = 1;
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string Name = 1;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string Name = 1;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string Name = 1;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string Name = 1;
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * optional string Name = 1;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes Value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bytes Value = 2;
       */
      public com.google.protobuf.ByteString getValue() {
        return value_;
      }
      /**
       * optional bytes Value = 2;
       */
      public Builder setValue(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes Value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute)
    }

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

    // @@protoc_insertion_point(class_scope:com.github.horrorho.liquiddonkey.cloud.protobuf.MBSFileExtendedAttribute)
  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSAccount_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSAccount_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackup_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackupAttributes_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackupAttributes_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAttributes_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAttributes_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshot_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshot_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotAttributes_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotAttributes_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotID_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotID_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthToken_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthToken_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthTokens_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthTokens_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileID_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileID_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKey_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKey_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKeySet_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKeySet_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileExtendedAttribute_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileExtendedAttribute_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\014icloud.proto\022/com.github.horrorho.liqu" +
      "iddonkey.cloud.protobuf\"3\n\nMBSAccount\022\021\n" +
      "\tAccountID\030\001 \001(\t\022\022\n\nbackupUDID\030\002 \003(\014\"\366\001\n" +
      "\tMBSBackup\022\022\n\nbackupUDID\030\001 \001(\014\022\021\n\tQuotaU" +
      "sed\030\002 \001(\004\022N\n\010Snapshot\030\003 \003(\0132<.com.github" +
      ".horrorho.liquiddonkey.cloud.protobuf.MB" +
      "SSnapshot\022X\n\nAttributes\030\004 \001(\0132D.com.gith" +
      "ub.horrorho.liquiddonkey.cloud.protobuf." +
      "MBSBackupAttributes\022\030\n\020KeysLastModified\030" +
      "\005 \001(\004\"\230\001\n\023MBSBackupAttributes\022\023\n\013DeviceC",
      "lass\030\001 \001(\t\022\023\n\013ProductType\030\002 \001(\t\022\024\n\014Seria" +
      "lNumber\030\003 \001(\t\022\023\n\013DeviceColor\030\004 \001(\t\022\025\n\rHa" +
      "rdwareModel\030\005 \001(\t\022\025\n\rMarketingName\030\006 \001(\t" +
      "\"\270\001\n\007MBSFile\022\016\n\006FileID\030\001 \001(\014\022\016\n\006Domain\030\002" +
      " \001(\t\022\024\n\014RelativePath\030\003 \001(\t\022\021\n\tSignature\030" +
      "\004 \001(\014\022\014\n\004Size\030\005 \001(\004\022V\n\nAttributes\030\006 \001(\0132" +
      "B.com.github.horrorho.liquiddonkey.cloud" +
      ".protobuf.MBSFileAttributes\"\203\003\n\021MBSFileA" +
      "ttributes\022\020\n\010KeybagID\030\001 \001(\r\022\016\n\006Target\030\002 " +
      "\001(\t\022\025\n\rEncryptionKey\030\003 \001(\014\022\023\n\013InodeNumbe",
      "r\030\004 \001(\004\022\014\n\004Mode\030\005 \001(\r\022\016\n\006UserID\030\006 \001(\r\022\017\n" +
      "\007GroupID\030\007 \001(\r\022\024\n\014LastModified\030\010 \001(\004\022\030\n\020" +
      "LastStatusChange\030\t \001(\004\022\r\n\005Birth\030\n \001(\004\022\027\n" +
      "\017ProtectionClass\030\014 \001(\r\022d\n\021ExtendedAttrib" +
      "ute\030\r \001(\0132I.com.github.horrorho.liquiddo" +
      "nkey.cloud.protobuf.MBSFileExtendedAttri" +
      "bute\022\034\n\024EncryptionKeyVersion\030\016 \001(\r\022\025\n\rDe" +
      "cryptedSize\030\017 \001(\004\"\275\001\n\013MBSSnapshot\022\022\n\nSna" +
      "pshotID\030\001 \001(\r\022\025\n\rQuotaReserved\030\002 \001(\004\022\024\n\014" +
      "LastModified\030\003 \001(\004\022Z\n\nAttributes\030\005 \001(\0132F",
      ".com.github.horrorho.liquiddonkey.cloud." +
      "protobuf.MBSSnapshotAttributes\022\021\n\tCommit" +
      "ted\030\006 \001(\004\"\251\001\n\025MBSSnapshotAttributes\022\022\n\nD" +
      "eviceName\030\001 \001(\t\022\026\n\016ProductVersion\030\002 \001(\t\022" +
      "\024\n\014BuildVersion\030\003 \001(\t\022\020\n\010KeybagID\030\004 \001(\r\022" +
      "\022\n\nKeybagUUID\030\005 \001(\014\022\024\n\014BackupReason\030\006 \001(" +
      "\005\022\022\n\nBackupType\030\007 \001(\005\"#\n\rMBSSnapshotID\022\022" +
      "\n\nSnapshotID\030\001 \001(\r\"5\n\020MBSFileAuthToken\022\016" +
      "\n\006FileID\030\001 \002(\014\022\021\n\tAuthToken\030\002 \001(\t\"f\n\021MBS" +
      "FileAuthTokens\022Q\n\006tokens\030\001 \003(\0132A.com.git",
      "hub.horrorho.liquiddonkey.cloud.protobuf" +
      ".MBSFileAuthToken\"\033\n\tMBSFileID\022\016\n\006FileID" +
      "\030\001 \002(\014\"(\n\006MBSKey\022\r\n\005KeyID\030\001 \001(\r\022\017\n\007KeyDa" +
      "ta\030\002 \001(\014\"Q\n\tMBSKeySet\022D\n\003Key\030\001 \003(\01327.com" +
      ".github.horrorho.liquiddonkey.cloud.prot" +
      "obuf.MBSKey\"7\n\030MBSFileExtendedAttribute\022" +
      "\014\n\004Name\030\001 \001(\t\022\r\n\005Value\030\002 \001(\014"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSAccount_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSAccount_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSAccount_descriptor,
        new java.lang.String[] { "AccountID", "BackupUDID", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackup_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackup_descriptor,
        new java.lang.String[] { "BackupUDID", "QuotaUsed", "Snapshot", "Attributes", "KeysLastModified", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackupAttributes_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackupAttributes_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSBackupAttributes_descriptor,
        new java.lang.String[] { "DeviceClass", "ProductType", "SerialNumber", "DeviceColor", "HardwareModel", "MarketingName", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFile_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFile_descriptor,
        new java.lang.String[] { "FileID", "Domain", "RelativePath", "Signature", "Size", "Attributes", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAttributes_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAttributes_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAttributes_descriptor,
        new java.lang.String[] { "KeybagID", "Target", "EncryptionKey", "InodeNumber", "Mode", "UserID", "GroupID", "LastModified", "LastStatusChange", "Birth", "ProtectionClass", "ExtendedAttribute", "EncryptionKeyVersion", "DecryptedSize", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshot_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshot_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshot_descriptor,
        new java.lang.String[] { "SnapshotID", "QuotaReserved", "LastModified", "Attributes", "Committed", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotAttributes_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotAttributes_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotAttributes_descriptor,
        new java.lang.String[] { "DeviceName", "ProductVersion", "BuildVersion", "KeybagID", "KeybagUUID", "BackupReason", "BackupType", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotID_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotID_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSSnapshotID_descriptor,
        new java.lang.String[] { "SnapshotID", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthToken_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthToken_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthToken_descriptor,
        new java.lang.String[] { "FileID", "AuthToken", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthTokens_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthTokens_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileAuthTokens_descriptor,
        new java.lang.String[] { "Tokens", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileID_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileID_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileID_descriptor,
        new java.lang.String[] { "FileID", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKey_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKey_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKey_descriptor,
        new java.lang.String[] { "KeyID", "KeyData", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKeySet_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKeySet_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSKeySet_descriptor,
        new java.lang.String[] { "Key", });
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileExtendedAttribute_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileExtendedAttribute_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_github_horrorho_liquiddonkey_cloud_protobuf_MBSFileExtendedAttribute_descriptor,
        new java.lang.String[] { "Name", "Value", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}