content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // NO CHECKED-IN PROTOBUF GENCODE
  // source: messages.proto
  // Protobuf Java Version: 4.28.2
  
  package finsky.protos;
  
  /**
   * Protobuf type {@code finsky.protos.Details}
   */
  public  final class Details extends
      com.google.protobuf.GeneratedMessageLite<
          Details, Details.Builder> implements
      // @@protoc_insertion_point(message_implements:finsky.protos.Details)
      DetailsOrBuilder {
    private Details() {
    }
    public interface DetailsResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:finsky.protos.Details.DetailsResponse)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * optional DocV1 docV1 = 1;
       * optional string analyticsCookie = 2;
       * optional Review userReview = 3;
       * </pre>
       *
       * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
       * @return Whether the docV2 field is set.
       */
      boolean hasDocV2();
      /**
       * <pre>
       * optional DocV1 docV1 = 1;
       * optional string analyticsCookie = 2;
       * optional Review userReview = 3;
       * </pre>
       *
       * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
       * @return The docV2.
       */
      finsky.protos.DocV2 getDocV2();
  
      /**
       * <code>optional string footerHtml = 5;</code>
       * @return Whether the footerHtml field is set.
       */
      boolean hasFooterHtml();
      /**
       * <code>optional string footerHtml = 5;</code>
       * @return The footerHtml.
       */
      java.lang.String getFooterHtml();
      /**
       * <code>optional string footerHtml = 5;</code>
       * @return The bytes for footerHtml.
       */
      com.google.protobuf.ByteString
          getFooterHtmlBytes();
    }
    /**
     * Protobuf type {@code finsky.protos.Details.DetailsResponse}
     */
    public  static final class DetailsResponse extends
        com.google.protobuf.GeneratedMessageLite<
            DetailsResponse, DetailsResponse.Builder> implements
        // @@protoc_insertion_point(message_implements:finsky.protos.Details.DetailsResponse)
        DetailsResponseOrBuilder {
      private DetailsResponse() {
        footerHtml_ = "";
      }
      private int bitField0_;
      public static final int DOCV2_FIELD_NUMBER = 4;
      private finsky.protos.DocV2 docV2_;
      /**
       * <pre>
       * optional DocV1 docV1 = 1;
       * optional string analyticsCookie = 2;
       * optional Review userReview = 3;
       * </pre>
       *
       * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
       */
      @java.lang.Override
      public boolean hasDocV2() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * optional DocV1 docV1 = 1;
       * optional string analyticsCookie = 2;
       * optional Review userReview = 3;
       * </pre>
       *
       * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
       */
      @java.lang.Override
      public finsky.protos.DocV2 getDocV2() {
        return docV2_ == null ? finsky.protos.DocV2.getDefaultInstance() : docV2_;
      }
      /**
       * <pre>
       * optional DocV1 docV1 = 1;
       * optional string analyticsCookie = 2;
       * optional Review userReview = 3;
       * </pre>
       *
       * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
       */
      private void setDocV2(finsky.protos.DocV2 value) {
        value.getClass();
    docV2_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * optional DocV1 docV1 = 1;
       * optional string analyticsCookie = 2;
       * optional Review userReview = 3;
       * </pre>
       *
       * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeDocV2(finsky.protos.DocV2 value) {
        value.getClass();
    if (docV2_ != null &&
            docV2_ != finsky.protos.DocV2.getDefaultInstance()) {
          docV2_ =
            finsky.protos.DocV2.newBuilder(docV2_).mergeFrom(value).buildPartial();
        } else {
          docV2_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * optional DocV1 docV1 = 1;
       * optional string analyticsCookie = 2;
       * optional Review userReview = 3;
       * </pre>
       *
       * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
       */
      private void clearDocV2() {  docV2_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int FOOTERHTML_FIELD_NUMBER = 5;
      private java.lang.String footerHtml_;
      /**
       * <code>optional string footerHtml = 5;</code>
       * @return Whether the footerHtml field is set.
       */
      @java.lang.Override
      public boolean hasFooterHtml() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string footerHtml = 5;</code>
       * @return The footerHtml.
       */
      @java.lang.Override
      public java.lang.String getFooterHtml() {
        return footerHtml_;
      }
      /**
       * <code>optional string footerHtml = 5;</code>
       * @return The bytes for footerHtml.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getFooterHtmlBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(footerHtml_);
      }
      /**
       * <code>optional string footerHtml = 5;</code>
       * @param value The footerHtml to set.
       */
      private void setFooterHtml(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000002;
        footerHtml_ = value;
      }
      /**
       * <code>optional string footerHtml = 5;</code>
       */
      private void clearFooterHtml() {
        bitField0_ = (bitField0_ & ~0x00000002);
        footerHtml_ = getDefaultInstance().getFooterHtml();
      }
      /**
       * <code>optional string footerHtml = 5;</code>
       * @param value The bytes for footerHtml to set.
       */
      private void setFooterHtmlBytes(
          com.google.protobuf.ByteString value) {
        footerHtml_ = value.toStringUtf8();
        bitField0_ |= 0x00000002;
      }
  
      public static finsky.protos.Details.DetailsResponse parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.DetailsResponse parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.DetailsResponse parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.DetailsResponse parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.DetailsResponse parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.DetailsResponse parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.DetailsResponse parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.DetailsResponse parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static finsky.protos.Details.DetailsResponse parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static finsky.protos.Details.DetailsResponse parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static finsky.protos.Details.DetailsResponse parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.DetailsResponse parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(finsky.protos.Details.DetailsResponse prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code finsky.protos.Details.DetailsResponse}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            finsky.protos.Details.DetailsResponse, Builder> implements
          // @@protoc_insertion_point(builder_implements:finsky.protos.Details.DetailsResponse)
          finsky.protos.Details.DetailsResponseOrBuilder {
        // Construct using finsky.protos.Details.DetailsResponse.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * optional DocV1 docV1 = 1;
         * optional string analyticsCookie = 2;
         * optional Review userReview = 3;
         * </pre>
         *
         * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
         */
        @java.lang.Override
        public boolean hasDocV2() {
          return instance.hasDocV2();
        }
        /**
         * <pre>
         * optional DocV1 docV1 = 1;
         * optional string analyticsCookie = 2;
         * optional Review userReview = 3;
         * </pre>
         *
         * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
         */
        @java.lang.Override
        public finsky.protos.DocV2 getDocV2() {
          return instance.getDocV2();
        }
        /**
         * <pre>
         * optional DocV1 docV1 = 1;
         * optional string analyticsCookie = 2;
         * optional Review userReview = 3;
         * </pre>
         *
         * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
         */
        public Builder setDocV2(finsky.protos.DocV2 value) {
          copyOnWrite();
          instance.setDocV2(value);
          return this;
          }
        /**
         * <pre>
         * optional DocV1 docV1 = 1;
         * optional string analyticsCookie = 2;
         * optional Review userReview = 3;
         * </pre>
         *
         * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
         */
        public Builder setDocV2(
            finsky.protos.DocV2.Builder builderForValue) {
          copyOnWrite();
          instance.setDocV2(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * optional DocV1 docV1 = 1;
         * optional string analyticsCookie = 2;
         * optional Review userReview = 3;
         * </pre>
         *
         * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
         */
        public Builder mergeDocV2(finsky.protos.DocV2 value) {
          copyOnWrite();
          instance.mergeDocV2(value);
          return this;
        }
        /**
         * <pre>
         * optional DocV1 docV1 = 1;
         * optional string analyticsCookie = 2;
         * optional Review userReview = 3;
         * </pre>
         *
         * <code>optional .finsky.protos.DocV2 docV2 = 4;</code>
         */
        public Builder clearDocV2() {  copyOnWrite();
          instance.clearDocV2();
          return this;
        }
  
        /**
         * <code>optional string footerHtml = 5;</code>
         * @return Whether the footerHtml field is set.
         */
        @java.lang.Override
        public boolean hasFooterHtml() {
          return instance.hasFooterHtml();
        }
        /**
         * <code>optional string footerHtml = 5;</code>
         * @return The footerHtml.
         */
        @java.lang.Override
        public java.lang.String getFooterHtml() {
          return instance.getFooterHtml();
        }
        /**
         * <code>optional string footerHtml = 5;</code>
         * @return The bytes for footerHtml.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getFooterHtmlBytes() {
          return instance.getFooterHtmlBytes();
        }
        /**
         * <code>optional string footerHtml = 5;</code>
         * @param value The footerHtml to set.
         * @return This builder for chaining.
         */
        public Builder setFooterHtml(
            java.lang.String value) {
          copyOnWrite();
          instance.setFooterHtml(value);
          return this;
        }
        /**
         * <code>optional string footerHtml = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearFooterHtml() {
          copyOnWrite();
          instance.clearFooterHtml();
          return this;
        }
        /**
         * <code>optional string footerHtml = 5;</code>
         * @param value The bytes for footerHtml to set.
         * @return This builder for chaining.
         */
        public Builder setFooterHtmlBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setFooterHtmlBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:finsky.protos.Details.DetailsResponse)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new finsky.protos.Details.DetailsResponse();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "docV2_",
                "footerHtml_",
              };
              java.lang.String info =
                  "\u0001\u0002\u0000\u0001\u0004\u0005\u0002\u0000\u0000\u0000\u0004\u1009\u0000\u0005" +
                  "\u1008\u0001";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<finsky.protos.Details.DetailsResponse> parser = PARSER;
            if (parser == null) {
              synchronized (finsky.protos.Details.DetailsResponse.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<finsky.protos.Details.DetailsResponse>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:finsky.protos.Details.DetailsResponse)
      private static final finsky.protos.Details.DetailsResponse DEFAULT_INSTANCE;
      static {
        DetailsResponse defaultInstance = new DetailsResponse();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          DetailsResponse.class, defaultInstance);
      }
  
      public static finsky.protos.Details.DetailsResponse getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<DetailsResponse> PARSER;
  
      public static com.google.protobuf.Parser<DetailsResponse> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface BulkDetailsEntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:finsky.protos.Details.BulkDetailsEntry)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional .finsky.protos.DocV2 doc = 1;</code>
       * @return Whether the doc field is set.
       */
      boolean hasDoc();
      /**
       * <code>optional .finsky.protos.DocV2 doc = 1;</code>
       * @return The doc.
       */
      finsky.protos.DocV2 getDoc();
    }
    /**
     * Protobuf type {@code finsky.protos.Details.BulkDetailsEntry}
     */
    public  static final class BulkDetailsEntry extends
        com.google.protobuf.GeneratedMessageLite<
            BulkDetailsEntry, BulkDetailsEntry.Builder> implements
        // @@protoc_insertion_point(message_implements:finsky.protos.Details.BulkDetailsEntry)
        BulkDetailsEntryOrBuilder {
      private BulkDetailsEntry() {
      }
      private int bitField0_;
      public static final int DOC_FIELD_NUMBER = 1;
      private finsky.protos.DocV2 doc_;
      /**
       * <code>optional .finsky.protos.DocV2 doc = 1;</code>
       */
      @java.lang.Override
      public boolean hasDoc() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .finsky.protos.DocV2 doc = 1;</code>
       */
      @java.lang.Override
      public finsky.protos.DocV2 getDoc() {
        return doc_ == null ? finsky.protos.DocV2.getDefaultInstance() : doc_;
      }
      /**
       * <code>optional .finsky.protos.DocV2 doc = 1;</code>
       */
      private void setDoc(finsky.protos.DocV2 value) {
        value.getClass();
    doc_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <code>optional .finsky.protos.DocV2 doc = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeDoc(finsky.protos.DocV2 value) {
        value.getClass();
    if (doc_ != null &&
            doc_ != finsky.protos.DocV2.getDefaultInstance()) {
          doc_ =
            finsky.protos.DocV2.newBuilder(doc_).mergeFrom(value).buildPartial();
        } else {
          doc_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>optional .finsky.protos.DocV2 doc = 1;</code>
       */
      private void clearDoc() {  doc_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static finsky.protos.Details.BulkDetailsEntry parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsEntry parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsEntry parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsEntry parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsEntry parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsEntry parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsEntry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.BulkDetailsEntry parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static finsky.protos.Details.BulkDetailsEntry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static finsky.protos.Details.BulkDetailsEntry parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsEntry parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.BulkDetailsEntry parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(finsky.protos.Details.BulkDetailsEntry prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code finsky.protos.Details.BulkDetailsEntry}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            finsky.protos.Details.BulkDetailsEntry, Builder> implements
          // @@protoc_insertion_point(builder_implements:finsky.protos.Details.BulkDetailsEntry)
          finsky.protos.Details.BulkDetailsEntryOrBuilder {
        // Construct using finsky.protos.Details.BulkDetailsEntry.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional .finsky.protos.DocV2 doc = 1;</code>
         */
        @java.lang.Override
        public boolean hasDoc() {
          return instance.hasDoc();
        }
        /**
         * <code>optional .finsky.protos.DocV2 doc = 1;</code>
         */
        @java.lang.Override
        public finsky.protos.DocV2 getDoc() {
          return instance.getDoc();
        }
        /**
         * <code>optional .finsky.protos.DocV2 doc = 1;</code>
         */
        public Builder setDoc(finsky.protos.DocV2 value) {
          copyOnWrite();
          instance.setDoc(value);
          return this;
          }
        /**
         * <code>optional .finsky.protos.DocV2 doc = 1;</code>
         */
        public Builder setDoc(
            finsky.protos.DocV2.Builder builderForValue) {
          copyOnWrite();
          instance.setDoc(builderForValue.build());
          return this;
        }
        /**
         * <code>optional .finsky.protos.DocV2 doc = 1;</code>
         */
        public Builder mergeDoc(finsky.protos.DocV2 value) {
          copyOnWrite();
          instance.mergeDoc(value);
          return this;
        }
        /**
         * <code>optional .finsky.protos.DocV2 doc = 1;</code>
         */
        public Builder clearDoc() {  copyOnWrite();
          instance.clearDoc();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:finsky.protos.Details.BulkDetailsEntry)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new finsky.protos.Details.BulkDetailsEntry();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "doc_",
              };
              java.lang.String info =
                  "\u0001\u0001\u0000\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u1009\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<finsky.protos.Details.BulkDetailsEntry> parser = PARSER;
            if (parser == null) {
              synchronized (finsky.protos.Details.BulkDetailsEntry.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<finsky.protos.Details.BulkDetailsEntry>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:finsky.protos.Details.BulkDetailsEntry)
      private static final finsky.protos.Details.BulkDetailsEntry DEFAULT_INSTANCE;
      static {
        BulkDetailsEntry defaultInstance = new BulkDetailsEntry();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          BulkDetailsEntry.class, defaultInstance);
      }
  
      public static finsky.protos.Details.BulkDetailsEntry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<BulkDetailsEntry> PARSER;
  
      public static com.google.protobuf.Parser<BulkDetailsEntry> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface BulkDetailsResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:finsky.protos.Details.BulkDetailsResponse)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      java.util.List<finsky.protos.Details.BulkDetailsEntry> 
          getEntryList();
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      finsky.protos.Details.BulkDetailsEntry getEntry(int index);
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      int getEntryCount();
    }
    /**
     * Protobuf type {@code finsky.protos.Details.BulkDetailsResponse}
     */
    public  static final class BulkDetailsResponse extends
        com.google.protobuf.GeneratedMessageLite<
            BulkDetailsResponse, BulkDetailsResponse.Builder> implements
        // @@protoc_insertion_point(message_implements:finsky.protos.Details.BulkDetailsResponse)
        BulkDetailsResponseOrBuilder {
      private BulkDetailsResponse() {
        entry_ = emptyProtobufList();
      }
      public static final int ENTRY_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<finsky.protos.Details.BulkDetailsEntry> entry_;
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.Details.BulkDetailsEntry> getEntryList() {
        return entry_;
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      public java.util.List<? extends finsky.protos.Details.BulkDetailsEntryOrBuilder> 
          getEntryOrBuilderList() {
        return entry_;
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      @java.lang.Override
      public int getEntryCount() {
        return entry_.size();
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      @java.lang.Override
      public finsky.protos.Details.BulkDetailsEntry getEntry(int index) {
        return entry_.get(index);
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      public finsky.protos.Details.BulkDetailsEntryOrBuilder getEntryOrBuilder(
          int index) {
        return entry_.get(index);
      }
      private void ensureEntryIsMutable() {
        com.google.protobuf.Internal.ProtobufList<finsky.protos.Details.BulkDetailsEntry> tmp = entry_;
        if (!tmp.isModifiable()) {
          entry_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      private void setEntry(
          int index, finsky.protos.Details.BulkDetailsEntry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.set(index, value);
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      private void addEntry(finsky.protos.Details.BulkDetailsEntry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.add(value);
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      private void addEntry(
          int index, finsky.protos.Details.BulkDetailsEntry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.add(index, value);
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      private void addAllEntry(
          java.lang.Iterable<? extends finsky.protos.Details.BulkDetailsEntry> values) {
        ensureEntryIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, entry_);
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      private void clearEntry() {
        entry_ = emptyProtobufList();
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
       */
      private void removeEntry(int index) {
        ensureEntryIsMutable();
        entry_.remove(index);
      }
  
      public static finsky.protos.Details.BulkDetailsResponse parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsResponse parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsResponse parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsResponse parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsResponse parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsResponse parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsResponse parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.BulkDetailsResponse parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static finsky.protos.Details.BulkDetailsResponse parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static finsky.protos.Details.BulkDetailsResponse parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsResponse parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.BulkDetailsResponse parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(finsky.protos.Details.BulkDetailsResponse prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code finsky.protos.Details.BulkDetailsResponse}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            finsky.protos.Details.BulkDetailsResponse, Builder> implements
          // @@protoc_insertion_point(builder_implements:finsky.protos.Details.BulkDetailsResponse)
          finsky.protos.Details.BulkDetailsResponseOrBuilder {
        // Construct using finsky.protos.Details.BulkDetailsResponse.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        @java.lang.Override
        public java.util.List<finsky.protos.Details.BulkDetailsEntry> getEntryList() {
          return java.util.Collections.unmodifiableList(
              instance.getEntryList());
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        @java.lang.Override
        public int getEntryCount() {
          return instance.getEntryCount();
        }/**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        @java.lang.Override
        public finsky.protos.Details.BulkDetailsEntry getEntry(int index) {
          return instance.getEntry(index);
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        public Builder setEntry(
            int index, finsky.protos.Details.BulkDetailsEntry value) {
          copyOnWrite();
          instance.setEntry(index, value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        public Builder setEntry(
            int index, finsky.protos.Details.BulkDetailsEntry.Builder builderForValue) {
          copyOnWrite();
          instance.setEntry(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        public Builder addEntry(finsky.protos.Details.BulkDetailsEntry value) {
          copyOnWrite();
          instance.addEntry(value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        public Builder addEntry(
            int index, finsky.protos.Details.BulkDetailsEntry value) {
          copyOnWrite();
          instance.addEntry(index, value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        public Builder addEntry(
            finsky.protos.Details.BulkDetailsEntry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        public Builder addEntry(
            int index, finsky.protos.Details.BulkDetailsEntry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        public Builder addAllEntry(
            java.lang.Iterable<? extends finsky.protos.Details.BulkDetailsEntry> values) {
          copyOnWrite();
          instance.addAllEntry(values);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        public Builder clearEntry() {
          copyOnWrite();
          instance.clearEntry();
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsEntry entry = 1;</code>
         */
        public Builder removeEntry(int index) {
          copyOnWrite();
          instance.removeEntry(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:finsky.protos.Details.BulkDetailsResponse)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new finsky.protos.Details.BulkDetailsResponse();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "entry_",
                finsky.protos.Details.BulkDetailsEntry.class,
              };
              java.lang.String info =
                  "\u0001\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<finsky.protos.Details.BulkDetailsResponse> parser = PARSER;
            if (parser == null) {
              synchronized (finsky.protos.Details.BulkDetailsResponse.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<finsky.protos.Details.BulkDetailsResponse>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:finsky.protos.Details.BulkDetailsResponse)
      private static final finsky.protos.Details.BulkDetailsResponse DEFAULT_INSTANCE;
      static {
        BulkDetailsResponse defaultInstance = new BulkDetailsResponse();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          BulkDetailsResponse.class, defaultInstance);
      }
  
      public static finsky.protos.Details.BulkDetailsResponse getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<BulkDetailsResponse> PARSER;
  
      public static com.google.protobuf.Parser<BulkDetailsResponse> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface BulkDetailsRequestDocPropertiesOrBuilder extends
        // @@protoc_insertion_point(interface_extends:finsky.protos.Details.BulkDetailsRequestDocProperties)
        com.google.protobuf.MessageLiteOrBuilder {
    }
    /**
     * Protobuf type {@code finsky.protos.Details.BulkDetailsRequestDocProperties}
     */
    public  static final class BulkDetailsRequestDocProperties extends
        com.google.protobuf.GeneratedMessageLite<
            BulkDetailsRequestDocProperties, BulkDetailsRequestDocProperties.Builder> implements
        // @@protoc_insertion_point(message_implements:finsky.protos.Details.BulkDetailsRequestDocProperties)
        BulkDetailsRequestDocPropertiesOrBuilder {
      private BulkDetailsRequestDocProperties() {
      }
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.BulkDetailsRequestDocProperties parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(finsky.protos.Details.BulkDetailsRequestDocProperties prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code finsky.protos.Details.BulkDetailsRequestDocProperties}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            finsky.protos.Details.BulkDetailsRequestDocProperties, Builder> implements
          // @@protoc_insertion_point(builder_implements:finsky.protos.Details.BulkDetailsRequestDocProperties)
          finsky.protos.Details.BulkDetailsRequestDocPropertiesOrBuilder {
        // Construct using finsky.protos.Details.BulkDetailsRequestDocProperties.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        // @@protoc_insertion_point(builder_scope:finsky.protos.Details.BulkDetailsRequestDocProperties)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new finsky.protos.Details.BulkDetailsRequestDocProperties();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = null;java.lang.String info =
                  "\u0001\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<finsky.protos.Details.BulkDetailsRequestDocProperties> parser = PARSER;
            if (parser == null) {
              synchronized (finsky.protos.Details.BulkDetailsRequestDocProperties.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<finsky.protos.Details.BulkDetailsRequestDocProperties>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:finsky.protos.Details.BulkDetailsRequestDocProperties)
      private static final finsky.protos.Details.BulkDetailsRequestDocProperties DEFAULT_INSTANCE;
      static {
        BulkDetailsRequestDocProperties defaultInstance = new BulkDetailsRequestDocProperties();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          BulkDetailsRequestDocProperties.class, defaultInstance);
      }
  
      public static finsky.protos.Details.BulkDetailsRequestDocProperties getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<BulkDetailsRequestDocProperties> PARSER;
  
      public static com.google.protobuf.Parser<BulkDetailsRequestDocProperties> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface BulkDetailsRequestDocOrBuilder extends
        // @@protoc_insertion_point(interface_extends:finsky.protos.Details.BulkDetailsRequestDoc)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>required string docid = 1;</code>
       * @return Whether the docid field is set.
       */
      boolean hasDocid();
      /**
       * <code>required string docid = 1;</code>
       * @return The docid.
       */
      java.lang.String getDocid();
      /**
       * <code>required string docid = 1;</code>
       * @return The bytes for docid.
       */
      com.google.protobuf.ByteString
          getDocidBytes();
  
      /**
       * <code>required int32 versionCode = 2;</code>
       * @return Whether the versionCode field is set.
       */
      boolean hasVersionCode();
      /**
       * <code>required int32 versionCode = 2;</code>
       * @return The versionCode.
       */
      int getVersionCode();
  
      /**
       * <code>required int32 num2 = 3;</code>
       * @return Whether the num2 field is set.
       */
      boolean hasNum2();
      /**
       * <code>required int32 num2 = 3;</code>
       * @return The num2.
       */
      int getNum2();
  
      /**
       * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
       * @return Whether the properties field is set.
       */
      boolean hasProperties();
      /**
       * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
       * @return The properties.
       */
      finsky.protos.Details.BulkDetailsRequestDocProperties getProperties();
    }
    /**
     * Protobuf type {@code finsky.protos.Details.BulkDetailsRequestDoc}
     */
    public  static final class BulkDetailsRequestDoc extends
        com.google.protobuf.GeneratedMessageLite<
            BulkDetailsRequestDoc, BulkDetailsRequestDoc.Builder> implements
        // @@protoc_insertion_point(message_implements:finsky.protos.Details.BulkDetailsRequestDoc)
        BulkDetailsRequestDocOrBuilder {
      private BulkDetailsRequestDoc() {
        docid_ = "";
      }
      private int bitField0_;
      public static final int DOCID_FIELD_NUMBER = 1;
      private java.lang.String docid_;
      /**
       * <code>required string docid = 1;</code>
       * @return Whether the docid field is set.
       */
      @java.lang.Override
      public boolean hasDocid() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string docid = 1;</code>
       * @return The docid.
       */
      @java.lang.Override
      public java.lang.String getDocid() {
        return docid_;
      }
      /**
       * <code>required string docid = 1;</code>
       * @return The bytes for docid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDocidBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(docid_);
      }
      /**
       * <code>required string docid = 1;</code>
       * @param value The docid to set.
       */
      private void setDocid(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000001;
        docid_ = value;
      }
      /**
       * <code>required string docid = 1;</code>
       */
      private void clearDocid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        docid_ = getDefaultInstance().getDocid();
      }
      /**
       * <code>required string docid = 1;</code>
       * @param value The bytes for docid to set.
       */
      private void setDocidBytes(
          com.google.protobuf.ByteString value) {
        docid_ = value.toStringUtf8();
        bitField0_ |= 0x00000001;
      }
  
      public static final int VERSIONCODE_FIELD_NUMBER = 2;
      private int versionCode_;
      /**
       * <code>required int32 versionCode = 2;</code>
       * @return Whether the versionCode field is set.
       */
      @java.lang.Override
      public boolean hasVersionCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int32 versionCode = 2;</code>
       * @return The versionCode.
       */
      @java.lang.Override
      public int getVersionCode() {
        return versionCode_;
      }
      /**
       * <code>required int32 versionCode = 2;</code>
       * @param value The versionCode to set.
       */
      private void setVersionCode(int value) {
        bitField0_ |= 0x00000002;
        versionCode_ = value;
      }
      /**
       * <code>required int32 versionCode = 2;</code>
       */
      private void clearVersionCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        versionCode_ = 0;
      }
  
      public static final int NUM2_FIELD_NUMBER = 3;
      private int num2_;
      /**
       * <code>required int32 num2 = 3;</code>
       * @return Whether the num2 field is set.
       */
      @java.lang.Override
      public boolean hasNum2() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required int32 num2 = 3;</code>
       * @return The num2.
       */
      @java.lang.Override
      public int getNum2() {
        return num2_;
      }
      /**
       * <code>required int32 num2 = 3;</code>
       * @param value The num2 to set.
       */
      private void setNum2(int value) {
        bitField0_ |= 0x00000004;
        num2_ = value;
      }
      /**
       * <code>required int32 num2 = 3;</code>
       */
      private void clearNum2() {
        bitField0_ = (bitField0_ & ~0x00000004);
        num2_ = 0;
      }
  
      public static final int PROPERTIES_FIELD_NUMBER = 7;
      private finsky.protos.Details.BulkDetailsRequestDocProperties properties_;
      /**
       * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
       */
      @java.lang.Override
      public boolean hasProperties() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
       */
      @java.lang.Override
      public finsky.protos.Details.BulkDetailsRequestDocProperties getProperties() {
        return properties_ == null ? finsky.protos.Details.BulkDetailsRequestDocProperties.getDefaultInstance() : properties_;
      }
      /**
       * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
       */
      private void setProperties(finsky.protos.Details.BulkDetailsRequestDocProperties value) {
        value.getClass();
    properties_ = value;
        bitField0_ |= 0x00000008;
        }
      /**
       * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeProperties(finsky.protos.Details.BulkDetailsRequestDocProperties value) {
        value.getClass();
    if (properties_ != null &&
            properties_ != finsky.protos.Details.BulkDetailsRequestDocProperties.getDefaultInstance()) {
          properties_ =
            finsky.protos.Details.BulkDetailsRequestDocProperties.newBuilder(properties_).mergeFrom(value).buildPartial();
        } else {
          properties_ = value;
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
       */
      private void clearProperties() {  properties_ = null;
        bitField0_ = (bitField0_ & ~0x00000008);
      }
  
      public static finsky.protos.Details.BulkDetailsRequestDoc parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsRequestDoc parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequestDoc parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsRequestDoc parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequestDoc parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsRequestDoc parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequestDoc parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.BulkDetailsRequestDoc parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static finsky.protos.Details.BulkDetailsRequestDoc parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static finsky.protos.Details.BulkDetailsRequestDoc parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequestDoc parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.BulkDetailsRequestDoc parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(finsky.protos.Details.BulkDetailsRequestDoc prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code finsky.protos.Details.BulkDetailsRequestDoc}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            finsky.protos.Details.BulkDetailsRequestDoc, Builder> implements
          // @@protoc_insertion_point(builder_implements:finsky.protos.Details.BulkDetailsRequestDoc)
          finsky.protos.Details.BulkDetailsRequestDocOrBuilder {
        // Construct using finsky.protos.Details.BulkDetailsRequestDoc.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>required string docid = 1;</code>
         * @return Whether the docid field is set.
         */
        @java.lang.Override
        public boolean hasDocid() {
          return instance.hasDocid();
        }
        /**
         * <code>required string docid = 1;</code>
         * @return The docid.
         */
        @java.lang.Override
        public java.lang.String getDocid() {
          return instance.getDocid();
        }
        /**
         * <code>required string docid = 1;</code>
         * @return The bytes for docid.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getDocidBytes() {
          return instance.getDocidBytes();
        }
        /**
         * <code>required string docid = 1;</code>
         * @param value The docid to set.
         * @return This builder for chaining.
         */
        public Builder setDocid(
            java.lang.String value) {
          copyOnWrite();
          instance.setDocid(value);
          return this;
        }
        /**
         * <code>required string docid = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearDocid() {
          copyOnWrite();
          instance.clearDocid();
          return this;
        }
        /**
         * <code>required string docid = 1;</code>
         * @param value The bytes for docid to set.
         * @return This builder for chaining.
         */
        public Builder setDocidBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setDocidBytes(value);
          return this;
        }
  
        /**
         * <code>required int32 versionCode = 2;</code>
         * @return Whether the versionCode field is set.
         */
        @java.lang.Override
        public boolean hasVersionCode() {
          return instance.hasVersionCode();
        }
        /**
         * <code>required int32 versionCode = 2;</code>
         * @return The versionCode.
         */
        @java.lang.Override
        public int getVersionCode() {
          return instance.getVersionCode();
        }
        /**
         * <code>required int32 versionCode = 2;</code>
         * @param value The versionCode to set.
         * @return This builder for chaining.
         */
        public Builder setVersionCode(int value) {
          copyOnWrite();
          instance.setVersionCode(value);
          return this;
        }
        /**
         * <code>required int32 versionCode = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearVersionCode() {
          copyOnWrite();
          instance.clearVersionCode();
          return this;
        }
  
        /**
         * <code>required int32 num2 = 3;</code>
         * @return Whether the num2 field is set.
         */
        @java.lang.Override
        public boolean hasNum2() {
          return instance.hasNum2();
        }
        /**
         * <code>required int32 num2 = 3;</code>
         * @return The num2.
         */
        @java.lang.Override
        public int getNum2() {
          return instance.getNum2();
        }
        /**
         * <code>required int32 num2 = 3;</code>
         * @param value The num2 to set.
         * @return This builder for chaining.
         */
        public Builder setNum2(int value) {
          copyOnWrite();
          instance.setNum2(value);
          return this;
        }
        /**
         * <code>required int32 num2 = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearNum2() {
          copyOnWrite();
          instance.clearNum2();
          return this;
        }
  
        /**
         * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
         */
        @java.lang.Override
        public boolean hasProperties() {
          return instance.hasProperties();
        }
        /**
         * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
         */
        @java.lang.Override
        public finsky.protos.Details.BulkDetailsRequestDocProperties getProperties() {
          return instance.getProperties();
        }
        /**
         * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
         */
        public Builder setProperties(finsky.protos.Details.BulkDetailsRequestDocProperties value) {
          copyOnWrite();
          instance.setProperties(value);
          return this;
          }
        /**
         * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
         */
        public Builder setProperties(
            finsky.protos.Details.BulkDetailsRequestDocProperties.Builder builderForValue) {
          copyOnWrite();
          instance.setProperties(builderForValue.build());
          return this;
        }
        /**
         * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
         */
        public Builder mergeProperties(finsky.protos.Details.BulkDetailsRequestDocProperties value) {
          copyOnWrite();
          instance.mergeProperties(value);
          return this;
        }
        /**
         * <code>required .finsky.protos.Details.BulkDetailsRequestDocProperties properties = 7;</code>
         */
        public Builder clearProperties() {  copyOnWrite();
          instance.clearProperties();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:finsky.protos.Details.BulkDetailsRequestDoc)
      }
      private byte memoizedIsInitialized = 2;
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new finsky.protos.Details.BulkDetailsRequestDoc();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "docid_",
                "versionCode_",
                "num2_",
                "properties_",
              };
              java.lang.String info =
                  "\u0001\u0004\u0000\u0001\u0001\u0007\u0004\u0000\u0000\u0004\u0001\u1508\u0000\u0002" +
                  "\u1504\u0001\u0003\u1504\u0002\u0007\u1509\u0003";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<finsky.protos.Details.BulkDetailsRequestDoc> parser = PARSER;
            if (parser == null) {
              synchronized (finsky.protos.Details.BulkDetailsRequestDoc.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<finsky.protos.Details.BulkDetailsRequestDoc>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return memoizedIsInitialized;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          memoizedIsInitialized = (byte) (arg0 == null ? 0 : 1);
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:finsky.protos.Details.BulkDetailsRequestDoc)
      private static final finsky.protos.Details.BulkDetailsRequestDoc DEFAULT_INSTANCE;
      static {
        BulkDetailsRequestDoc defaultInstance = new BulkDetailsRequestDoc();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          BulkDetailsRequestDoc.class, defaultInstance);
      }
  
      public static finsky.protos.Details.BulkDetailsRequestDoc getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<BulkDetailsRequestDoc> PARSER;
  
      public static com.google.protobuf.Parser<BulkDetailsRequestDoc> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface BulkDetailsRequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:finsky.protos.Details.BulkDetailsRequest)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>repeated string docid = 1;</code>
       * @return A list containing the docid.
       */
      java.util.List<java.lang.String>
          getDocidList();
      /**
       * <code>repeated string docid = 1;</code>
       * @return The count of docid.
       */
      int getDocidCount();
      /**
       * <code>repeated string docid = 1;</code>
       * @param index The index of the element to return.
       * @return The docid at the given index.
       */
      java.lang.String getDocid(int index);
      /**
       * <code>repeated string docid = 1;</code>
       * @param index The index of the element to return.
       * @return The docid at the given index.
       */
      com.google.protobuf.ByteString
          getDocidBytes(int index);
  
      /**
       * <code>optional bool includeChildDocs = 2;</code>
       * @return Whether the includeChildDocs field is set.
       */
      boolean hasIncludeChildDocs();
      /**
       * <code>optional bool includeChildDocs = 2;</code>
       * @return The includeChildDocs.
       */
      boolean getIncludeChildDocs();
  
      /**
       * <code>required bool includeDetails = 3;</code>
       * @return Whether the includeDetails field is set.
       */
      boolean hasIncludeDetails();
      /**
       * <code>required bool includeDetails = 3;</code>
       * @return The includeDetails.
       */
      boolean getIncludeDetails();
  
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      java.util.List<finsky.protos.Details.BulkDetailsRequestDoc> 
          getDocsList();
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      finsky.protos.Details.BulkDetailsRequestDoc getDocs(int index);
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      int getDocsCount();
    }
    /**
     * Protobuf type {@code finsky.protos.Details.BulkDetailsRequest}
     */
    public  static final class BulkDetailsRequest extends
        com.google.protobuf.GeneratedMessageLite<
            BulkDetailsRequest, BulkDetailsRequest.Builder> implements
        // @@protoc_insertion_point(message_implements:finsky.protos.Details.BulkDetailsRequest)
        BulkDetailsRequestOrBuilder {
      private BulkDetailsRequest() {
        docid_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
        docs_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int DOCID_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<java.lang.String> docid_;
      /**
       * <code>repeated string docid = 1;</code>
       * @return A list containing the docid.
       */
      @java.lang.Override
      public java.util.List<java.lang.String> getDocidList() {
        return docid_;
      }
      /**
       * <code>repeated string docid = 1;</code>
       * @return The count of docid.
       */
      @java.lang.Override
      public int getDocidCount() {
        return docid_.size();
      }
      /**
       * <code>repeated string docid = 1;</code>
       * @param index The index of the element to return.
       * @return The docid at the given index.
       */
      @java.lang.Override
      public java.lang.String getDocid(int index) {
        return docid_.get(index);
      }
      /**
       * <code>repeated string docid = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the docid at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDocidBytes(int index) {
        return com.google.protobuf.ByteString.copyFromUtf8(
            docid_.get(index));
      }
      private void ensureDocidIsMutable() {
        com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
            docid_;  if (!tmp.isModifiable()) {
          docid_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
      /**
       * <code>repeated string docid = 1;</code>
       * @param index The index to set the value at.
       * @param value The docid to set.
       */
      private void setDocid(
          int index, java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    ensureDocidIsMutable();
        docid_.set(index, value);
      }
      /**
       * <code>repeated string docid = 1;</code>
       * @param value The docid to add.
       */
      private void addDocid(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    ensureDocidIsMutable();
        docid_.add(value);
      }
      /**
       * <code>repeated string docid = 1;</code>
       * @param values The docid to add.
       */
      private void addAllDocid(
          java.lang.Iterable<java.lang.String> values) {
        ensureDocidIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, docid_);
      }
      /**
       * <code>repeated string docid = 1;</code>
       */
      private void clearDocid() {
        docid_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
      }
      /**
       * <code>repeated string docid = 1;</code>
       * @param value The bytes of the docid to add.
       */
      private void addDocidBytes(
          com.google.protobuf.ByteString value) {
        ensureDocidIsMutable();
        docid_.add(value.toStringUtf8());
      }
  
      public static final int INCLUDECHILDDOCS_FIELD_NUMBER = 2;
      private boolean includeChildDocs_;
      /**
       * <code>optional bool includeChildDocs = 2;</code>
       * @return Whether the includeChildDocs field is set.
       */
      @java.lang.Override
      public boolean hasIncludeChildDocs() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional bool includeChildDocs = 2;</code>
       * @return The includeChildDocs.
       */
      @java.lang.Override
      public boolean getIncludeChildDocs() {
        return includeChildDocs_;
      }
      /**
       * <code>optional bool includeChildDocs = 2;</code>
       * @param value The includeChildDocs to set.
       */
      private void setIncludeChildDocs(boolean value) {
        bitField0_ |= 0x00000001;
        includeChildDocs_ = value;
      }
      /**
       * <code>optional bool includeChildDocs = 2;</code>
       */
      private void clearIncludeChildDocs() {
        bitField0_ = (bitField0_ & ~0x00000001);
        includeChildDocs_ = false;
      }
  
      public static final int INCLUDEDETAILS_FIELD_NUMBER = 3;
      private boolean includeDetails_;
      /**
       * <code>required bool includeDetails = 3;</code>
       * @return Whether the includeDetails field is set.
       */
      @java.lang.Override
      public boolean hasIncludeDetails() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bool includeDetails = 3;</code>
       * @return The includeDetails.
       */
      @java.lang.Override
      public boolean getIncludeDetails() {
        return includeDetails_;
      }
      /**
       * <code>required bool includeDetails = 3;</code>
       * @param value The includeDetails to set.
       */
      private void setIncludeDetails(boolean value) {
        bitField0_ |= 0x00000002;
        includeDetails_ = value;
      }
      /**
       * <code>required bool includeDetails = 3;</code>
       */
      private void clearIncludeDetails() {
        bitField0_ = (bitField0_ & ~0x00000002);
        includeDetails_ = false;
      }
  
      public static final int DOCS_FIELD_NUMBER = 8;
      private com.google.protobuf.Internal.ProtobufList<finsky.protos.Details.BulkDetailsRequestDoc> docs_;
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.Details.BulkDetailsRequestDoc> getDocsList() {
        return docs_;
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      public java.util.List<? extends finsky.protos.Details.BulkDetailsRequestDocOrBuilder> 
          getDocsOrBuilderList() {
        return docs_;
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      @java.lang.Override
      public int getDocsCount() {
        return docs_.size();
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      @java.lang.Override
      public finsky.protos.Details.BulkDetailsRequestDoc getDocs(int index) {
        return docs_.get(index);
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      public finsky.protos.Details.BulkDetailsRequestDocOrBuilder getDocsOrBuilder(
          int index) {
        return docs_.get(index);
      }
      private void ensureDocsIsMutable() {
        com.google.protobuf.Internal.ProtobufList<finsky.protos.Details.BulkDetailsRequestDoc> tmp = docs_;
        if (!tmp.isModifiable()) {
          docs_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      private void setDocs(
          int index, finsky.protos.Details.BulkDetailsRequestDoc value) {
        value.getClass();
    ensureDocsIsMutable();
        docs_.set(index, value);
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      private void addDocs(finsky.protos.Details.BulkDetailsRequestDoc value) {
        value.getClass();
    ensureDocsIsMutable();
        docs_.add(value);
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      private void addDocs(
          int index, finsky.protos.Details.BulkDetailsRequestDoc value) {
        value.getClass();
    ensureDocsIsMutable();
        docs_.add(index, value);
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      private void addAllDocs(
          java.lang.Iterable<? extends finsky.protos.Details.BulkDetailsRequestDoc> values) {
        ensureDocsIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, docs_);
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      private void clearDocs() {
        docs_ = emptyProtobufList();
      }
      /**
       * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
       */
      private void removeDocs(int index) {
        ensureDocsIsMutable();
        docs_.remove(index);
      }
  
      public static finsky.protos.Details.BulkDetailsRequest parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsRequest parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequest parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsRequest parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequest parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Details.BulkDetailsRequest parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequest parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.BulkDetailsRequest parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static finsky.protos.Details.BulkDetailsRequest parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static finsky.protos.Details.BulkDetailsRequest parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static finsky.protos.Details.BulkDetailsRequest parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Details.BulkDetailsRequest parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(finsky.protos.Details.BulkDetailsRequest prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code finsky.protos.Details.BulkDetailsRequest}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            finsky.protos.Details.BulkDetailsRequest, Builder> implements
          // @@protoc_insertion_point(builder_implements:finsky.protos.Details.BulkDetailsRequest)
          finsky.protos.Details.BulkDetailsRequestOrBuilder {
        // Construct using finsky.protos.Details.BulkDetailsRequest.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>repeated string docid = 1;</code>
         * @return A list containing the docid.
         */
        @java.lang.Override
        public java.util.List<java.lang.String>
            getDocidList() {
          return java.util.Collections.unmodifiableList(
              instance.getDocidList());
        }
        /**
         * <code>repeated string docid = 1;</code>
         * @return The count of docid.
         */
        @java.lang.Override
        public int getDocidCount() {
          return instance.getDocidCount();
        }
        /**
         * <code>repeated string docid = 1;</code>
         * @param index The index of the element to return.
         * @return The docid at the given index.
         */
        @java.lang.Override
        public java.lang.String getDocid(int index) {
          return instance.getDocid(index);
        }
        /**
         * <code>repeated string docid = 1;</code>
         * @param index The index of the value to return.
         * @return The bytes of the docid at the given index.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getDocidBytes(int index) {
          return instance.getDocidBytes(index);
        }
        /**
         * <code>repeated string docid = 1;</code>
         * @param index The index to set the value at.
         * @param value The docid to set.
         * @return This builder for chaining.
         */
        public Builder setDocid(
            int index, java.lang.String value) {
          copyOnWrite();
          instance.setDocid(index, value);
          return this;
        }
        /**
         * <code>repeated string docid = 1;</code>
         * @param value The docid to add.
         * @return This builder for chaining.
         */
        public Builder addDocid(
            java.lang.String value) {
          copyOnWrite();
          instance.addDocid(value);
          return this;
        }
        /**
         * <code>repeated string docid = 1;</code>
         * @param values The docid to add.
         * @return This builder for chaining.
         */
        public Builder addAllDocid(
            java.lang.Iterable<java.lang.String> values) {
          copyOnWrite();
          instance.addAllDocid(values);
          return this;
        }
        /**
         * <code>repeated string docid = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearDocid() {
          copyOnWrite();
          instance.clearDocid();
          return this;
        }
        /**
         * <code>repeated string docid = 1;</code>
         * @param value The bytes of the docid to add.
         * @return This builder for chaining.
         */
        public Builder addDocidBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.addDocidBytes(value);
          return this;
        }
  
        /**
         * <code>optional bool includeChildDocs = 2;</code>
         * @return Whether the includeChildDocs field is set.
         */
        @java.lang.Override
        public boolean hasIncludeChildDocs() {
          return instance.hasIncludeChildDocs();
        }
        /**
         * <code>optional bool includeChildDocs = 2;</code>
         * @return The includeChildDocs.
         */
        @java.lang.Override
        public boolean getIncludeChildDocs() {
          return instance.getIncludeChildDocs();
        }
        /**
         * <code>optional bool includeChildDocs = 2;</code>
         * @param value The includeChildDocs to set.
         * @return This builder for chaining.
         */
        public Builder setIncludeChildDocs(boolean value) {
          copyOnWrite();
          instance.setIncludeChildDocs(value);
          return this;
        }
        /**
         * <code>optional bool includeChildDocs = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearIncludeChildDocs() {
          copyOnWrite();
          instance.clearIncludeChildDocs();
          return this;
        }
  
        /**
         * <code>required bool includeDetails = 3;</code>
         * @return Whether the includeDetails field is set.
         */
        @java.lang.Override
        public boolean hasIncludeDetails() {
          return instance.hasIncludeDetails();
        }
        /**
         * <code>required bool includeDetails = 3;</code>
         * @return The includeDetails.
         */
        @java.lang.Override
        public boolean getIncludeDetails() {
          return instance.getIncludeDetails();
        }
        /**
         * <code>required bool includeDetails = 3;</code>
         * @param value The includeDetails to set.
         * @return This builder for chaining.
         */
        public Builder setIncludeDetails(boolean value) {
          copyOnWrite();
          instance.setIncludeDetails(value);
          return this;
        }
        /**
         * <code>required bool includeDetails = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearIncludeDetails() {
          copyOnWrite();
          instance.clearIncludeDetails();
          return this;
        }
  
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        @java.lang.Override
        public java.util.List<finsky.protos.Details.BulkDetailsRequestDoc> getDocsList() {
          return java.util.Collections.unmodifiableList(
              instance.getDocsList());
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        @java.lang.Override
        public int getDocsCount() {
          return instance.getDocsCount();
        }/**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        @java.lang.Override
        public finsky.protos.Details.BulkDetailsRequestDoc getDocs(int index) {
          return instance.getDocs(index);
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        public Builder setDocs(
            int index, finsky.protos.Details.BulkDetailsRequestDoc value) {
          copyOnWrite();
          instance.setDocs(index, value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        public Builder setDocs(
            int index, finsky.protos.Details.BulkDetailsRequestDoc.Builder builderForValue) {
          copyOnWrite();
          instance.setDocs(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        public Builder addDocs(finsky.protos.Details.BulkDetailsRequestDoc value) {
          copyOnWrite();
          instance.addDocs(value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        public Builder addDocs(
            int index, finsky.protos.Details.BulkDetailsRequestDoc value) {
          copyOnWrite();
          instance.addDocs(index, value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        public Builder addDocs(
            finsky.protos.Details.BulkDetailsRequestDoc.Builder builderForValue) {
          copyOnWrite();
          instance.addDocs(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        public Builder addDocs(
            int index, finsky.protos.Details.BulkDetailsRequestDoc.Builder builderForValue) {
          copyOnWrite();
          instance.addDocs(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        public Builder addAllDocs(
            java.lang.Iterable<? extends finsky.protos.Details.BulkDetailsRequestDoc> values) {
          copyOnWrite();
          instance.addAllDocs(values);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        public Builder clearDocs() {
          copyOnWrite();
          instance.clearDocs();
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Details.BulkDetailsRequestDoc docs = 8;</code>
         */
        public Builder removeDocs(int index) {
          copyOnWrite();
          instance.removeDocs(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:finsky.protos.Details.BulkDetailsRequest)
      }
      private byte memoizedIsInitialized = 2;
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new finsky.protos.Details.BulkDetailsRequest();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "docid_",
                "includeChildDocs_",
                "includeDetails_",
                "docs_",
                finsky.protos.Details.BulkDetailsRequestDoc.class,
              };
              java.lang.String info =
                  "\u0001\u0004\u0000\u0001\u0001\b\u0004\u0000\u0002\u0002\u0001\u001a\u0002\u1007" +
                  "\u0000\u0003\u1507\u0001\b\u041b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<finsky.protos.Details.BulkDetailsRequest> parser = PARSER;
            if (parser == null) {
              synchronized (finsky.protos.Details.BulkDetailsRequest.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<finsky.protos.Details.BulkDetailsRequest>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return memoizedIsInitialized;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          memoizedIsInitialized = (byte) (arg0 == null ? 0 : 1);
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:finsky.protos.Details.BulkDetailsRequest)
      private static final finsky.protos.Details.BulkDetailsRequest DEFAULT_INSTANCE;
      static {
        BulkDetailsRequest defaultInstance = new BulkDetailsRequest();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          BulkDetailsRequest.class, defaultInstance);
      }
  
      public static finsky.protos.Details.BulkDetailsRequest getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<BulkDetailsRequest> PARSER;
  
      public static com.google.protobuf.Parser<BulkDetailsRequest> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public static finsky.protos.Details parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.Details parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static finsky.protos.Details parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.Details parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static finsky.protos.Details parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.Details parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static finsky.protos.Details parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.Details parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
  
    public static finsky.protos.Details parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
  
    public static finsky.protos.Details parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static finsky.protos.Details parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.Details parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
  
    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(finsky.protos.Details prototype) {
      return DEFAULT_INSTANCE.createBuilder(prototype);
    }
  
    /**
     * Protobuf type {@code finsky.protos.Details}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          finsky.protos.Details, Builder> implements
        // @@protoc_insertion_point(builder_implements:finsky.protos.Details)
        finsky.protos.DetailsOrBuilder {
      // Construct using finsky.protos.Details.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }
  
  
      // @@protoc_insertion_point(builder_scope:finsky.protos.Details)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new finsky.protos.Details();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = null;java.lang.String info =
                "\u0001\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<finsky.protos.Details> parser = PARSER;
          if (parser == null) {
            synchronized (finsky.protos.Details.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<finsky.protos.Details>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }
  
  
    // @@protoc_insertion_point(class_scope:finsky.protos.Details)
    private static final finsky.protos.Details DEFAULT_INSTANCE;
    static {
      Details defaultInstance = new Details();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Details.class, defaultInstance);
    }
  
    public static finsky.protos.Details getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
  
    private static volatile com.google.protobuf.Parser<Details> PARSER;
  
    public static com.google.protobuf.Parser<Details> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }
  
  