package com.knecon.fforesight.service.layoutparser.internal.api.data.redaction;

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: DocumentPage.proto
// Protobuf Java Version: 4.27.1
@SuppressWarnings("all")
public final class DocumentPageProto {

    private DocumentPageProto() {}


    static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
                /* major= */ 4,
                /* minor= */ 27,
                /* patch= */ 1,
                /* suffix= */ "", DocumentPageProto.class.getName());
    }

    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {

    }


    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {

        registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
    }


    public interface AllDocumentPagesOrBuilder extends
            // @@protoc_insertion_point(interface_extends:AllDocumentPages)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .DocumentPage documentPages = 1;</code>
         */
        java.util.List<DocumentPageProto.DocumentPage> getDocumentPagesList();


        /**
         * <code>repeated .DocumentPage documentPages = 1;</code>
         */
        DocumentPageProto.DocumentPage getDocumentPages(int index);


        /**
         * <code>repeated .DocumentPage documentPages = 1;</code>
         */
        int getDocumentPagesCount();


        /**
         * <code>repeated .DocumentPage documentPages = 1;</code>
         */
        java.util.List<? extends DocumentPageProto.DocumentPageOrBuilder> getDocumentPagesOrBuilderList();


        /**
         * <code>repeated .DocumentPage documentPages = 1;</code>
         */
        DocumentPageProto.DocumentPageOrBuilder getDocumentPagesOrBuilder(int index);

    }

    /**
     * Protobuf type {@code AllDocumentPages}
     */
    public static final class AllDocumentPages extends com.google.protobuf.GeneratedMessage implements
            // @@protoc_insertion_point(message_implements:AllDocumentPages)
            AllDocumentPagesOrBuilder {

        private static final long serialVersionUID = 0L;

        static {
            com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
                    /* major= */ 4,
                    /* minor= */ 27,
                    /* patch= */ 1,
                    /* suffix= */ "", AllDocumentPages.class.getName());
        }

        // Use AllDocumentPages.newBuilder() to construct.
        private AllDocumentPages(com.google.protobuf.GeneratedMessage.Builder<?> builder) {

            super(builder);
        }


        private AllDocumentPages() {

            documentPages_ = java.util.Collections.emptyList();
        }


        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {

            return DocumentPageProto.internal_static_AllDocumentPages_descriptor;
        }


        @java.lang.Override
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {

            return DocumentPageProto.internal_static_AllDocumentPages_fieldAccessorTable.ensureFieldAccessorsInitialized(DocumentPageProto.AllDocumentPages.class,
                                                                                                                         DocumentPageProto.AllDocumentPages.Builder.class);
        }


        public static final int DOCUMENTPAGES_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private java.util.List<DocumentPageProto.DocumentPage> documentPages_;


        /**
         * <code>repeated .DocumentPage documentPages = 1;</code>
         */
        @java.lang.Override
        public java.util.List<DocumentPageProto.DocumentPage> getDocumentPagesList() {

            return documentPages_;
        }


        /**
         * <code>repeated .DocumentPage documentPages = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends DocumentPageProto.DocumentPageOrBuilder> getDocumentPagesOrBuilderList() {

            return documentPages_;
        }


        /**
         * <code>repeated .DocumentPage documentPages = 1;</code>
         */
        @java.lang.Override
        public int getDocumentPagesCount() {

            return documentPages_.size();
        }


        /**
         * <code>repeated .DocumentPage documentPages = 1;</code>
         */
        @java.lang.Override
        public DocumentPageProto.DocumentPage getDocumentPages(int index) {

            return documentPages_.get(index);
        }


        /**
         * <code>repeated .DocumentPage documentPages = 1;</code>
         */
        @java.lang.Override
        public DocumentPageProto.DocumentPageOrBuilder getDocumentPagesOrBuilder(int index) {

            return documentPages_.get(index);
        }


        private byte memoizedIsInitialized = -1;


        @java.lang.Override
        public final boolean isInitialized() {

            byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) {
            return true;
          }
          if (isInitialized == 0) {
            return false;
          }

            memoizedIsInitialized = 1;
            return true;
        }


        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {

            for (int i = 0; i < documentPages_.size(); i++) {
                output.writeMessage(1, documentPages_.get(i));
            }
            getUnknownFields().writeTo(output);
        }


        @java.lang.Override
        public int getSerializedSize() {

            int size = memoizedSize;
          if (size != -1) {
            return size;
          }

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


        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {

            if (obj == this) {
                return true;
            }
            if (!(obj instanceof DocumentPageProto.AllDocumentPages)) {
                return super.equals(obj);
            }
            DocumentPageProto.AllDocumentPages other = (DocumentPageProto.AllDocumentPages) obj;

          if (!getDocumentPagesList().equals(other.getDocumentPagesList())) {
            return false;
          }
          if (!getUnknownFields().equals(other.getUnknownFields())) {
            return false;
          }
            return true;
        }


        @java.lang.Override
        public int hashCode() {

            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getDocumentPagesCount() > 0) {
                hash = (37 * hash) + DOCUMENTPAGES_FIELD_NUMBER;
                hash = (53 * hash) + getDocumentPagesList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }


        public static DocumentPageProto.AllDocumentPages parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static DocumentPageProto.AllDocumentPages parseFrom(java.nio.ByteBuffer data,
                                                                   com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static DocumentPageProto.AllDocumentPages parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static DocumentPageProto.AllDocumentPages parseFrom(com.google.protobuf.ByteString data,
                                                                   com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static DocumentPageProto.AllDocumentPages parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static DocumentPageProto.AllDocumentPages parseFrom(byte[] data,
                                                                   com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static DocumentPageProto.AllDocumentPages parseFrom(java.io.InputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
        }


        public static DocumentPageProto.AllDocumentPages parseFrom(java.io.InputStream input,
                                                                   com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry);
        }


        public static DocumentPageProto.AllDocumentPages parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
        }


        public static DocumentPageProto.AllDocumentPages parseDelimitedFrom(java.io.InputStream input,
                                                                            com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }


        public static DocumentPageProto.AllDocumentPages parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
        }


        public static DocumentPageProto.AllDocumentPages parseFrom(com.google.protobuf.CodedInputStream input,
                                                                   com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry);
        }


        @java.lang.Override
        public Builder newBuilderForType() {return newBuilder();}


        public static Builder newBuilder() {

            return DEFAULT_INSTANCE.toBuilder();
        }


        public static Builder newBuilder(DocumentPageProto.AllDocumentPages prototype) {

            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }


        @java.lang.Override
        public Builder toBuilder() {

            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }


        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) {

            Builder builder = new Builder(parent);
            return builder;
        }


        /**
         * Protobuf type {@code AllDocumentPages}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:AllDocumentPages)
                DocumentPageProto.AllDocumentPagesOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {

                return DocumentPageProto.internal_static_AllDocumentPages_descriptor;
            }


            @java.lang.Override
            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {

                return DocumentPageProto.internal_static_AllDocumentPages_fieldAccessorTable.ensureFieldAccessorsInitialized(DocumentPageProto.AllDocumentPages.class,
                                                                                                                             DocumentPageProto.AllDocumentPages.Builder.class);
            }


            // Construct using DocumentPageOuterClass.AllDocumentPages.newBuilder()
            private Builder() {

            }


            private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {

                super(parent);

            }


            @java.lang.Override
            public Builder clear() {

                super.clear();
                bitField0_ = 0;
                if (documentPagesBuilder_ == null) {
                    documentPages_ = java.util.Collections.emptyList();
                } else {
                    documentPages_ = null;
                    documentPagesBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000001);
                return this;
            }


            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {

                return DocumentPageProto.internal_static_AllDocumentPages_descriptor;
            }


            @java.lang.Override
            public DocumentPageProto.AllDocumentPages getDefaultInstanceForType() {

                return DocumentPageProto.AllDocumentPages.getDefaultInstance();
            }


            @java.lang.Override
            public DocumentPageProto.AllDocumentPages build() {

                DocumentPageProto.AllDocumentPages result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }


            @java.lang.Override
            public DocumentPageProto.AllDocumentPages buildPartial() {

                DocumentPageProto.AllDocumentPages result = new DocumentPageProto.AllDocumentPages(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }


            private void buildPartialRepeatedFields(DocumentPageProto.AllDocumentPages result) {

                if (documentPagesBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        documentPages_ = java.util.Collections.unmodifiableList(documentPages_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.documentPages_ = documentPages_;
                } else {
                    result.documentPages_ = documentPagesBuilder_.build();
                }
            }


            private void buildPartial0(DocumentPageProto.AllDocumentPages result) {

                int from_bitField0_ = bitField0_;
            }


            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {

                if (other instanceof DocumentPageProto.AllDocumentPages) {
                    return mergeFrom((DocumentPageProto.AllDocumentPages) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }


            public Builder mergeFrom(DocumentPageProto.AllDocumentPages other) {

              if (other == DocumentPageProto.AllDocumentPages.getDefaultInstance()) {
                return this;
              }
                if (documentPagesBuilder_ == null) {
                    if (!other.documentPages_.isEmpty()) {
                        if (documentPages_.isEmpty()) {
                            documentPages_ = other.documentPages_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureDocumentPagesIsMutable();
                            documentPages_.addAll(other.documentPages_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.documentPages_.isEmpty()) {
                        if (documentPagesBuilder_.isEmpty()) {
                            documentPagesBuilder_.dispose();
                            documentPagesBuilder_ = null;
                            documentPages_ = other.documentPages_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            documentPagesBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? getDocumentPagesFieldBuilder() : null;
                        } else {
                            documentPagesBuilder_.addAllMessages(other.documentPages_);
                        }
                    }
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }


            @java.lang.Override
            public final boolean isInitialized() {

                return true;
            }


            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                DocumentPageProto.DocumentPage m = input.readMessage(DocumentPageProto.DocumentPage.parser(), extensionRegistry);
                                if (documentPagesBuilder_ == null) {
                                    ensureDocumentPagesIsMutable();
                                    documentPages_.add(m);
                                } else {
                                    documentPagesBuilder_.addMessage(m);
                                }
                                break;
                            } // case 10
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }


            private int bitField0_;

            private java.util.List<DocumentPageProto.DocumentPage> documentPages_ = java.util.Collections.emptyList();


            private void ensureDocumentPagesIsMutable() {

                if (!((bitField0_ & 0x00000001) != 0)) {
                    documentPages_ = new java.util.ArrayList<DocumentPageProto.DocumentPage>(documentPages_);
                    bitField0_ |= 0x00000001;
                }
            }


            private com.google.protobuf.RepeatedFieldBuilder<DocumentPageProto.DocumentPage, DocumentPageProto.DocumentPage.Builder, DocumentPageProto.DocumentPageOrBuilder> documentPagesBuilder_;


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public java.util.List<DocumentPageProto.DocumentPage> getDocumentPagesList() {

                if (documentPagesBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(documentPages_);
                } else {
                    return documentPagesBuilder_.getMessageList();
                }
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public int getDocumentPagesCount() {

                if (documentPagesBuilder_ == null) {
                    return documentPages_.size();
                } else {
                    return documentPagesBuilder_.getCount();
                }
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public DocumentPageProto.DocumentPage getDocumentPages(int index) {

                if (documentPagesBuilder_ == null) {
                    return documentPages_.get(index);
                } else {
                    return documentPagesBuilder_.getMessage(index);
                }
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public Builder setDocumentPages(int index, DocumentPageProto.DocumentPage value) {

                if (documentPagesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDocumentPagesIsMutable();
                    documentPages_.set(index, value);
                    onChanged();
                } else {
                    documentPagesBuilder_.setMessage(index, value);
                }
                return this;
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public Builder setDocumentPages(int index, DocumentPageProto.DocumentPage.Builder builderForValue) {

                if (documentPagesBuilder_ == null) {
                    ensureDocumentPagesIsMutable();
                    documentPages_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    documentPagesBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public Builder addDocumentPages(DocumentPageProto.DocumentPage value) {

                if (documentPagesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDocumentPagesIsMutable();
                    documentPages_.add(value);
                    onChanged();
                } else {
                    documentPagesBuilder_.addMessage(value);
                }
                return this;
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public Builder addDocumentPages(int index, DocumentPageProto.DocumentPage value) {

                if (documentPagesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDocumentPagesIsMutable();
                    documentPages_.add(index, value);
                    onChanged();
                } else {
                    documentPagesBuilder_.addMessage(index, value);
                }
                return this;
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public Builder addDocumentPages(DocumentPageProto.DocumentPage.Builder builderForValue) {

                if (documentPagesBuilder_ == null) {
                    ensureDocumentPagesIsMutable();
                    documentPages_.add(builderForValue.build());
                    onChanged();
                } else {
                    documentPagesBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public Builder addDocumentPages(int index, DocumentPageProto.DocumentPage.Builder builderForValue) {

                if (documentPagesBuilder_ == null) {
                    ensureDocumentPagesIsMutable();
                    documentPages_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    documentPagesBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public Builder addAllDocumentPages(java.lang.Iterable<? extends DocumentPageProto.DocumentPage> values) {

                if (documentPagesBuilder_ == null) {
                    ensureDocumentPagesIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, documentPages_);
                    onChanged();
                } else {
                    documentPagesBuilder_.addAllMessages(values);
                }
                return this;
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public Builder clearDocumentPages() {

                if (documentPagesBuilder_ == null) {
                    documentPages_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    documentPagesBuilder_.clear();
                }
                return this;
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public Builder removeDocumentPages(int index) {

                if (documentPagesBuilder_ == null) {
                    ensureDocumentPagesIsMutable();
                    documentPages_.remove(index);
                    onChanged();
                } else {
                    documentPagesBuilder_.remove(index);
                }
                return this;
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public DocumentPageProto.DocumentPage.Builder getDocumentPagesBuilder(int index) {

                return getDocumentPagesFieldBuilder().getBuilder(index);
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public DocumentPageProto.DocumentPageOrBuilder getDocumentPagesOrBuilder(int index) {

                if (documentPagesBuilder_ == null) {
                    return documentPages_.get(index);
                } else {
                    return documentPagesBuilder_.getMessageOrBuilder(index);
                }
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public java.util.List<? extends DocumentPageProto.DocumentPageOrBuilder> getDocumentPagesOrBuilderList() {

                if (documentPagesBuilder_ != null) {
                    return documentPagesBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(documentPages_);
                }
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public DocumentPageProto.DocumentPage.Builder addDocumentPagesBuilder() {

                return getDocumentPagesFieldBuilder().addBuilder(DocumentPageProto.DocumentPage.getDefaultInstance());
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public DocumentPageProto.DocumentPage.Builder addDocumentPagesBuilder(int index) {

                return getDocumentPagesFieldBuilder().addBuilder(index, DocumentPageProto.DocumentPage.getDefaultInstance());
            }


            /**
             * <code>repeated .DocumentPage documentPages = 1;</code>
             */
            public java.util.List<DocumentPageProto.DocumentPage.Builder> getDocumentPagesBuilderList() {

                return getDocumentPagesFieldBuilder().getBuilderList();
            }


            private com.google.protobuf.RepeatedFieldBuilder<DocumentPageProto.DocumentPage, DocumentPageProto.DocumentPage.Builder, DocumentPageProto.DocumentPageOrBuilder> getDocumentPagesFieldBuilder() {

                if (documentPagesBuilder_ == null) {
                    documentPagesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<DocumentPageProto.DocumentPage, DocumentPageProto.DocumentPage.Builder, DocumentPageProto.DocumentPageOrBuilder>(
                            documentPages_,
                            ((bitField0_ & 0x00000001) != 0),
                            getParentForChildren(),
                            isClean());
                    documentPages_ = null;
                }
                return documentPagesBuilder_;
            }

            // @@protoc_insertion_point(builder_scope:AllDocumentPages)
        }

        // @@protoc_insertion_point(class_scope:AllDocumentPages)
        private static final DocumentPageProto.AllDocumentPages DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new DocumentPageProto.AllDocumentPages();
        }

        public static DocumentPageProto.AllDocumentPages getDefaultInstance() {

            return DEFAULT_INSTANCE;
        }


        private static final com.google.protobuf.Parser<AllDocumentPages> PARSER = new com.google.protobuf.AbstractParser<AllDocumentPages>() {
            @java.lang.Override
            public AllDocumentPages parsePartialFrom(com.google.protobuf.CodedInputStream input,
                                                     com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };


        public static com.google.protobuf.Parser<AllDocumentPages> parser() {

            return PARSER;
        }


        @java.lang.Override
        public com.google.protobuf.Parser<AllDocumentPages> getParserForType() {

            return PARSER;
        }


        @java.lang.Override
        public DocumentPageProto.AllDocumentPages getDefaultInstanceForType() {

            return DEFAULT_INSTANCE;
        }

    }

    public interface DocumentPageOrBuilder extends
            // @@protoc_insertion_point(interface_extends:DocumentPage)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * The page number, starting with 1.
         * </pre>
         *
         * <code>int32 number = 1;</code>
         *
         * @return The number.
         */
        int getNumber();


        /**
         * <pre>
         * The page height in PDF user units.
         * </pre>
         *
         * <code>int32 height = 2;</code>
         *
         * @return The height.
         */
        int getHeight();


        /**
         * <pre>
         * The page width in PDF user units.
         * </pre>
         *
         * <code>int32 width = 3;</code>
         *
         * @return The width.
         */
        int getWidth();


        /**
         * <pre>
         * The page rotation as specified by the PDF.
         * </pre>
         *
         * <code>int32 rotation = 4;</code>
         *
         * @return The rotation.
         */
        int getRotation();

    }

    /**
     * Protobuf type {@code DocumentPage}
     */
    public static final class DocumentPage extends com.google.protobuf.GeneratedMessage implements
            // @@protoc_insertion_point(message_implements:DocumentPage)
            DocumentPageOrBuilder {

        private static final long serialVersionUID = 0L;

        static {
            com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
                    /* major= */ 4,
                    /* minor= */ 27,
                    /* patch= */ 1,
                    /* suffix= */ "", DocumentPage.class.getName());
        }

        // Use DocumentPage.newBuilder() to construct.
        private DocumentPage(com.google.protobuf.GeneratedMessage.Builder<?> builder) {

            super(builder);
        }


        private DocumentPage() {

        }


        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {

            return DocumentPageProto.internal_static_DocumentPage_descriptor;
        }


        @java.lang.Override
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {

            return DocumentPageProto.internal_static_DocumentPage_fieldAccessorTable.ensureFieldAccessorsInitialized(DocumentPageProto.DocumentPage.class,
                                                                                                                     DocumentPageProto.DocumentPage.Builder.class);
        }


        public static final int NUMBER_FIELD_NUMBER = 1;
        private int number_ = 0;


        /**
         * <pre>
         * The page number, starting with 1.
         * </pre>
         *
         * <code>int32 number = 1;</code>
         *
         * @return The number.
         */
        @java.lang.Override
        public int getNumber() {

            return number_;
        }


        public static final int HEIGHT_FIELD_NUMBER = 2;
        private int height_ = 0;


        /**
         * <pre>
         * The page height in PDF user units.
         * </pre>
         *
         * <code>int32 height = 2;</code>
         *
         * @return The height.
         */
        @java.lang.Override
        public int getHeight() {

            return height_;
        }


        public static final int WIDTH_FIELD_NUMBER = 3;
        private int width_ = 0;


        /**
         * <pre>
         * The page width in PDF user units.
         * </pre>
         *
         * <code>int32 width = 3;</code>
         *
         * @return The width.
         */
        @java.lang.Override
        public int getWidth() {

            return width_;
        }


        public static final int ROTATION_FIELD_NUMBER = 4;
        private int rotation_ = 0;


        /**
         * <pre>
         * The page rotation as specified by the PDF.
         * </pre>
         *
         * <code>int32 rotation = 4;</code>
         *
         * @return The rotation.
         */
        @java.lang.Override
        public int getRotation() {

            return rotation_;
        }


        private byte memoizedIsInitialized = -1;


        @java.lang.Override
        public final boolean isInitialized() {

            byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) {
            return true;
          }
          if (isInitialized == 0) {
            return false;
          }

            memoizedIsInitialized = 1;
            return true;
        }


        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {

            if (number_ != 0) {
                output.writeInt32(1, number_);
            }
            if (height_ != 0) {
                output.writeInt32(2, height_);
            }
            if (width_ != 0) {
                output.writeInt32(3, width_);
            }
            if (rotation_ != 0) {
                output.writeInt32(4, rotation_);
            }
            getUnknownFields().writeTo(output);
        }


        @java.lang.Override
        public int getSerializedSize() {

            int size = memoizedSize;
          if (size != -1) {
            return size;
          }

            size = 0;
            if (number_ != 0) {
                size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, number_);
            }
            if (height_ != 0) {
                size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, height_);
            }
            if (width_ != 0) {
                size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, width_);
            }
            if (rotation_ != 0) {
                size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, rotation_);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }


        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {

            if (obj == this) {
                return true;
            }
            if (!(obj instanceof DocumentPageProto.DocumentPage)) {
                return super.equals(obj);
            }
            DocumentPageProto.DocumentPage other = (DocumentPageProto.DocumentPage) obj;

          if (getNumber() != other.getNumber()) {
            return false;
          }
          if (getHeight() != other.getHeight()) {
            return false;
          }
          if (getWidth() != other.getWidth()) {
            return false;
          }
          if (getRotation() != other.getRotation()) {
            return false;
          }
          if (!getUnknownFields().equals(other.getUnknownFields())) {
            return false;
          }
            return true;
        }


        @java.lang.Override
        public int hashCode() {

            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + NUMBER_FIELD_NUMBER;
            hash = (53 * hash) + getNumber();
            hash = (37 * hash) + HEIGHT_FIELD_NUMBER;
            hash = (53 * hash) + getHeight();
            hash = (37 * hash) + WIDTH_FIELD_NUMBER;
            hash = (53 * hash) + getWidth();
            hash = (37 * hash) + ROTATION_FIELD_NUMBER;
            hash = (53 * hash) + getRotation();
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }


        public static DocumentPageProto.DocumentPage parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static DocumentPageProto.DocumentPage parseFrom(java.nio.ByteBuffer data,
                                                               com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static DocumentPageProto.DocumentPage parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static DocumentPageProto.DocumentPage parseFrom(com.google.protobuf.ByteString data,
                                                               com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static DocumentPageProto.DocumentPage parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static DocumentPageProto.DocumentPage parseFrom(byte[] data,
                                                               com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static DocumentPageProto.DocumentPage parseFrom(java.io.InputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
        }


        public static DocumentPageProto.DocumentPage parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry);
        }


        public static DocumentPageProto.DocumentPage parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
        }


        public static DocumentPageProto.DocumentPage parseDelimitedFrom(java.io.InputStream input,
                                                                        com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }


        public static DocumentPageProto.DocumentPage parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
        }


        public static DocumentPageProto.DocumentPage parseFrom(com.google.protobuf.CodedInputStream input,
                                                               com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry);
        }


        @java.lang.Override
        public Builder newBuilderForType() {return newBuilder();}


        public static Builder newBuilder() {

            return DEFAULT_INSTANCE.toBuilder();
        }


        public static Builder newBuilder(DocumentPageProto.DocumentPage prototype) {

            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }


        @java.lang.Override
        public Builder toBuilder() {

            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }


        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) {

            Builder builder = new Builder(parent);
            return builder;
        }


        /**
         * Protobuf type {@code DocumentPage}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:DocumentPage)
                DocumentPageProto.DocumentPageOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {

                return DocumentPageProto.internal_static_DocumentPage_descriptor;
            }


            @java.lang.Override
            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {

                return DocumentPageProto.internal_static_DocumentPage_fieldAccessorTable.ensureFieldAccessorsInitialized(DocumentPageProto.DocumentPage.class,
                                                                                                                         DocumentPageProto.DocumentPage.Builder.class);
            }


            // Construct using DocumentPageOuterClass.DocumentPage.newBuilder()
            private Builder() {

            }


            private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {

                super(parent);

            }


            @java.lang.Override
            public Builder clear() {

                super.clear();
                bitField0_ = 0;
                number_ = 0;
                height_ = 0;
                width_ = 0;
                rotation_ = 0;
                return this;
            }


            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {

                return DocumentPageProto.internal_static_DocumentPage_descriptor;
            }


            @java.lang.Override
            public DocumentPageProto.DocumentPage getDefaultInstanceForType() {

                return DocumentPageProto.DocumentPage.getDefaultInstance();
            }


            @java.lang.Override
            public DocumentPageProto.DocumentPage build() {

                DocumentPageProto.DocumentPage result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }


            @java.lang.Override
            public DocumentPageProto.DocumentPage buildPartial() {

                DocumentPageProto.DocumentPage result = new DocumentPageProto.DocumentPage(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }


            private void buildPartial0(DocumentPageProto.DocumentPage result) {

                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.number_ = number_;
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.height_ = height_;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.width_ = width_;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.rotation_ = rotation_;
                }
            }


            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {

                if (other instanceof DocumentPageProto.DocumentPage) {
                    return mergeFrom((DocumentPageProto.DocumentPage) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }


            public Builder mergeFrom(DocumentPageProto.DocumentPage other) {

              if (other == DocumentPageProto.DocumentPage.getDefaultInstance()) {
                return this;
              }
                if (other.getNumber() != 0) {
                    setNumber(other.getNumber());
                }
                if (other.getHeight() != 0) {
                    setHeight(other.getHeight());
                }
                if (other.getWidth() != 0) {
                    setWidth(other.getWidth());
                }
                if (other.getRotation() != 0) {
                    setRotation(other.getRotation());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }


            @java.lang.Override
            public final boolean isInitialized() {

                return true;
            }


            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 8: {
                                number_ = input.readInt32();
                                bitField0_ |= 0x00000001;
                                break;
                            } // case 8
                            case 16: {
                                height_ = input.readInt32();
                                bitField0_ |= 0x00000002;
                                break;
                            } // case 16
                            case 24: {
                                width_ = input.readInt32();
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 24
                            case 32: {
                                rotation_ = input.readInt32();
                                bitField0_ |= 0x00000008;
                                break;
                            } // case 32
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }


            private int bitField0_;

            private int number_;


            /**
             * <pre>
             * The page number, starting with 1.
             * </pre>
             *
             * <code>int32 number = 1;</code>
             *
             * @return The number.
             */
            @java.lang.Override
            public int getNumber() {

                return number_;
            }


            /**
             * <pre>
             * The page number, starting with 1.
             * </pre>
             *
             * <code>int32 number = 1;</code>
             *
             * @param value The number to set.
             * @return This builder for chaining.
             */
            public Builder setNumber(int value) {

                number_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The page number, starting with 1.
             * </pre>
             *
             * <code>int32 number = 1;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearNumber() {

                bitField0_ = (bitField0_ & ~0x00000001);
                number_ = 0;
                onChanged();
                return this;
            }


            private int height_;


            /**
             * <pre>
             * The page height in PDF user units.
             * </pre>
             *
             * <code>int32 height = 2;</code>
             *
             * @return The height.
             */
            @java.lang.Override
            public int getHeight() {

                return height_;
            }


            /**
             * <pre>
             * The page height in PDF user units.
             * </pre>
             *
             * <code>int32 height = 2;</code>
             *
             * @param value The height to set.
             * @return This builder for chaining.
             */
            public Builder setHeight(int value) {

                height_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The page height in PDF user units.
             * </pre>
             *
             * <code>int32 height = 2;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearHeight() {

                bitField0_ = (bitField0_ & ~0x00000002);
                height_ = 0;
                onChanged();
                return this;
            }


            private int width_;


            /**
             * <pre>
             * The page width in PDF user units.
             * </pre>
             *
             * <code>int32 width = 3;</code>
             *
             * @return The width.
             */
            @java.lang.Override
            public int getWidth() {

                return width_;
            }


            /**
             * <pre>
             * The page width in PDF user units.
             * </pre>
             *
             * <code>int32 width = 3;</code>
             *
             * @param value The width to set.
             * @return This builder for chaining.
             */
            public Builder setWidth(int value) {

                width_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The page width in PDF user units.
             * </pre>
             *
             * <code>int32 width = 3;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearWidth() {

                bitField0_ = (bitField0_ & ~0x00000004);
                width_ = 0;
                onChanged();
                return this;
            }


            private int rotation_;


            /**
             * <pre>
             * The page rotation as specified by the PDF.
             * </pre>
             *
             * <code>int32 rotation = 4;</code>
             *
             * @return The rotation.
             */
            @java.lang.Override
            public int getRotation() {

                return rotation_;
            }


            /**
             * <pre>
             * The page rotation as specified by the PDF.
             * </pre>
             *
             * <code>int32 rotation = 4;</code>
             *
             * @param value The rotation to set.
             * @return This builder for chaining.
             */
            public Builder setRotation(int value) {

                rotation_ = value;
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The page rotation as specified by the PDF.
             * </pre>
             *
             * <code>int32 rotation = 4;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearRotation() {

                bitField0_ = (bitField0_ & ~0x00000008);
                rotation_ = 0;
                onChanged();
                return this;
            }

            // @@protoc_insertion_point(builder_scope:DocumentPage)
        }

        // @@protoc_insertion_point(class_scope:DocumentPage)
        private static final DocumentPageProto.DocumentPage DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new DocumentPageProto.DocumentPage();
        }

        public static DocumentPageProto.DocumentPage getDefaultInstance() {

            return DEFAULT_INSTANCE;
        }


        private static final com.google.protobuf.Parser<DocumentPage> PARSER = new com.google.protobuf.AbstractParser<DocumentPage>() {
            @java.lang.Override
            public DocumentPage parsePartialFrom(com.google.protobuf.CodedInputStream input,
                                                 com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };


        public static com.google.protobuf.Parser<DocumentPage> parser() {

            return PARSER;
        }


        @java.lang.Override
        public com.google.protobuf.Parser<DocumentPage> getParserForType() {

            return PARSER;
        }


        @java.lang.Override
        public DocumentPageProto.DocumentPage getDefaultInstanceForType() {

            return DEFAULT_INSTANCE;
        }

    }

    private static final com.google.protobuf.Descriptors.Descriptor internal_static_AllDocumentPages_descriptor;
    private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_AllDocumentPages_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_DocumentPage_descriptor;
    private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_DocumentPage_fieldAccessorTable;


    public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {

        return descriptor;
    }


    private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

    static {
        java.lang.String[] descriptorData = {"\n\022DocumentPage.proto\"8\n\020AllDocumentPages"
                                             + "\022$\n\rdocumentPages\030\001 \003(\0132\r.DocumentPage\"O"
                                             + "\n\014DocumentPage\022\016\n\006number\030\001 \001(\005\022\016\n\006height"
                                             + "\030\002 \001(\005\022\r\n\005width\030\003 \001(\005\022\020\n\010rotation\030\004 \001(\005b"
                                             + "\006proto3"};
        descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[]{});
        internal_static_AllDocumentPages_descriptor = getDescriptor().getMessageTypes()
                .get(0);
        internal_static_AllDocumentPages_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_AllDocumentPages_descriptor,
                                                                                                                          new java.lang.String[]{"DocumentPages",});
        internal_static_DocumentPage_descriptor = getDescriptor().getMessageTypes()
                .get(1);
        internal_static_DocumentPage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_DocumentPage_descriptor,
                                                                                                                      new java.lang.String[]{"Number", "Height", "Width", "Rotation",});
        descriptor.resolveAllFeaturesImmutable();
    }

    // @@protoc_insertion_point(outer_class_scope)
}
