content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: frameworks/base/tools/aapt2/Resources.proto
  
  package com.android.aapt;
  
  public final class Resources {
    private Resources() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistryLite registry) {
    }
    public interface ConfigDescriptionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.ConfigDescription)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional bytes data = 1;</code>
       */
      boolean hasData();
      /**
       * <code>optional bytes data = 1;</code>
       */
      com.google.protobuf.ByteString getData();
  
      /**
       * <code>optional string product = 2;</code>
       */
      boolean hasProduct();
      /**
       * <code>optional string product = 2;</code>
       */
      java.lang.String getProduct();
      /**
       * <code>optional string product = 2;</code>
       */
      com.google.protobuf.ByteString
          getProductBytes();
    }
    /**
     * <pre>
     * A configuration description that wraps the binary form of the C++ class
     * aapt::ConfigDescription, with an added product definition.
     * TODO(adamlesinski): Flesh this out to be represented in proto.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.ConfigDescription}
     */
    public  static final class ConfigDescription extends
        com.google.protobuf.GeneratedMessageLite<
            ConfigDescription, ConfigDescription.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.ConfigDescription)
        ConfigDescriptionOrBuilder {
      private ConfigDescription() {
        data_ = com.google.protobuf.ByteString.EMPTY;
        product_ = "";
      }
      private int bitField0_;
      public static final int DATA_FIELD_NUMBER = 1;
      private com.google.protobuf.ByteString data_;
      /**
       * <code>optional bytes data = 1;</code>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional bytes data = 1;</code>
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * <code>optional bytes data = 1;</code>
       */
      private void setData(com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        data_ = value;
      }
      /**
       * <code>optional bytes data = 1;</code>
       */
      private void clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
      }
  
      public static final int PRODUCT_FIELD_NUMBER = 2;
      private java.lang.String product_;
      /**
       * <code>optional string product = 2;</code>
       */
      public boolean hasProduct() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string product = 2;</code>
       */
      public java.lang.String getProduct() {
        return product_;
      }
      /**
       * <code>optional string product = 2;</code>
       */
      public com.google.protobuf.ByteString
          getProductBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(product_);
      }
      /**
       * <code>optional string product = 2;</code>
       */
      private void setProduct(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        product_ = value;
      }
      /**
       * <code>optional string product = 2;</code>
       */
      private void clearProduct() {
        bitField0_ = (bitField0_ & ~0x00000002);
        product_ = getDefaultInstance().getProduct();
      }
      /**
       * <code>optional string product = 2;</code>
       */
      private void setProductBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        product_ = value.toStringUtf8();
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, data_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeString(2, getProduct());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, data_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(2, getProduct());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.ConfigDescription parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ConfigDescription 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 com.android.aapt.Resources.ConfigDescription parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ConfigDescription 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 com.android.aapt.Resources.ConfigDescription parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ConfigDescription 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 com.android.aapt.Resources.ConfigDescription parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ConfigDescription parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.ConfigDescription parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ConfigDescription 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.ConfigDescription prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A configuration description that wraps the binary form of the C++ class
       * aapt::ConfigDescription, with an added product definition.
       * TODO(adamlesinski): Flesh this out to be represented in proto.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.ConfigDescription}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.ConfigDescription, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.ConfigDescription)
          com.android.aapt.Resources.ConfigDescriptionOrBuilder {
        // Construct using com.android.aapt.Resources.ConfigDescription.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional bytes data = 1;</code>
         */
        public boolean hasData() {
          return instance.hasData();
        }
        /**
         * <code>optional bytes data = 1;</code>
         */
        public com.google.protobuf.ByteString getData() {
          return instance.getData();
        }
        /**
         * <code>optional bytes data = 1;</code>
         */
        public Builder setData(com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setData(value);
          return this;
        }
        /**
         * <code>optional bytes data = 1;</code>
         */
        public Builder clearData() {
          copyOnWrite();
          instance.clearData();
          return this;
        }
  
        /**
         * <code>optional string product = 2;</code>
         */
        public boolean hasProduct() {
          return instance.hasProduct();
        }
        /**
         * <code>optional string product = 2;</code>
         */
        public java.lang.String getProduct() {
          return instance.getProduct();
        }
        /**
         * <code>optional string product = 2;</code>
         */
        public com.google.protobuf.ByteString
            getProductBytes() {
          return instance.getProductBytes();
        }
        /**
         * <code>optional string product = 2;</code>
         */
        public Builder setProduct(
            java.lang.String value) {
          copyOnWrite();
          instance.setProduct(value);
          return this;
        }
        /**
         * <code>optional string product = 2;</code>
         */
        public Builder clearProduct() {
          copyOnWrite();
          instance.clearProduct();
          return this;
        }
        /**
         * <code>optional string product = 2;</code>
         */
        public Builder setProductBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setProductBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.ConfigDescription)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.ConfigDescription();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.ConfigDescription other = (com.android.aapt.Resources.ConfigDescription) arg1;
            data_ = visitor.visitByteString(
                hasData(), data_,
                other.hasData(), other.data_);
            product_ = visitor.visitString(
                hasProduct(), product_,
                other.hasProduct(), other.product_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    bitField0_ |= 0x00000001;
                    data_ = input.readBytes();
                    break;
                  }
                  case 18: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000002;
                    product_ = s;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.ConfigDescription.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.ConfigDescription)
      private static final com.android.aapt.Resources.ConfigDescription DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ConfigDescription();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.ConfigDescription getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<ConfigDescription> PARSER;
  
      public static com.google.protobuf.Parser<ConfigDescription> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StringPoolOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.StringPool)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional bytes data = 1;</code>
       */
      boolean hasData();
      /**
       * <code>optional bytes data = 1;</code>
       */
      com.google.protobuf.ByteString getData();
    }
    /**
     * <pre>
     * A string pool that wraps the binary form of the C++ class android::ResStringPool.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.StringPool}
     */
    public  static final class StringPool extends
        com.google.protobuf.GeneratedMessageLite<
            StringPool, StringPool.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.StringPool)
        StringPoolOrBuilder {
      private StringPool() {
        data_ = com.google.protobuf.ByteString.EMPTY;
      }
      private int bitField0_;
      public static final int DATA_FIELD_NUMBER = 1;
      private com.google.protobuf.ByteString data_;
      /**
       * <code>optional bytes data = 1;</code>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional bytes data = 1;</code>
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * <code>optional bytes data = 1;</code>
       */
      private void setData(com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        data_ = value;
      }
      /**
       * <code>optional bytes data = 1;</code>
       */
      private void clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, data_);
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, data_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.StringPool parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StringPool 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 com.android.aapt.Resources.StringPool parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StringPool 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 com.android.aapt.Resources.StringPool parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StringPool 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 com.android.aapt.Resources.StringPool parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StringPool parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.StringPool parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StringPool 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.StringPool prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A string pool that wraps the binary form of the C++ class android::ResStringPool.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.StringPool}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.StringPool, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.StringPool)
          com.android.aapt.Resources.StringPoolOrBuilder {
        // Construct using com.android.aapt.Resources.StringPool.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional bytes data = 1;</code>
         */
        public boolean hasData() {
          return instance.hasData();
        }
        /**
         * <code>optional bytes data = 1;</code>
         */
        public com.google.protobuf.ByteString getData() {
          return instance.getData();
        }
        /**
         * <code>optional bytes data = 1;</code>
         */
        public Builder setData(com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setData(value);
          return this;
        }
        /**
         * <code>optional bytes data = 1;</code>
         */
        public Builder clearData() {
          copyOnWrite();
          instance.clearData();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.StringPool)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.StringPool();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.StringPool other = (com.android.aapt.Resources.StringPool) arg1;
            data_ = visitor.visitByteString(
                hasData(), data_,
                other.hasData(), other.data_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    bitField0_ |= 0x00000001;
                    data_ = input.readBytes();
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.StringPool.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.StringPool)
      private static final com.android.aapt.Resources.StringPool DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new StringPool();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.StringPool getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<StringPool> PARSER;
  
      public static com.google.protobuf.Parser<StringPool> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface SourcePositionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.SourcePosition)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional uint32 line_number = 1;</code>
       */
      boolean hasLineNumber();
      /**
       * <code>optional uint32 line_number = 1;</code>
       */
      int getLineNumber();
  
      /**
       * <code>optional uint32 column_number = 2;</code>
       */
      boolean hasColumnNumber();
      /**
       * <code>optional uint32 column_number = 2;</code>
       */
      int getColumnNumber();
    }
    /**
     * <pre>
     * The position of a declared entity within a file.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.SourcePosition}
     */
    public  static final class SourcePosition extends
        com.google.protobuf.GeneratedMessageLite<
            SourcePosition, SourcePosition.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.SourcePosition)
        SourcePositionOrBuilder {
      private SourcePosition() {
      }
      private int bitField0_;
      public static final int LINE_NUMBER_FIELD_NUMBER = 1;
      private int lineNumber_;
      /**
       * <code>optional uint32 line_number = 1;</code>
       */
      public boolean hasLineNumber() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional uint32 line_number = 1;</code>
       */
      public int getLineNumber() {
        return lineNumber_;
      }
      /**
       * <code>optional uint32 line_number = 1;</code>
       */
      private void setLineNumber(int value) {
        bitField0_ |= 0x00000001;
        lineNumber_ = value;
      }
      /**
       * <code>optional uint32 line_number = 1;</code>
       */
      private void clearLineNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        lineNumber_ = 0;
      }
  
      public static final int COLUMN_NUMBER_FIELD_NUMBER = 2;
      private int columnNumber_;
      /**
       * <code>optional uint32 column_number = 2;</code>
       */
      public boolean hasColumnNumber() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional uint32 column_number = 2;</code>
       */
      public int getColumnNumber() {
        return columnNumber_;
      }
      /**
       * <code>optional uint32 column_number = 2;</code>
       */
      private void setColumnNumber(int value) {
        bitField0_ |= 0x00000002;
        columnNumber_ = value;
      }
      /**
       * <code>optional uint32 column_number = 2;</code>
       */
      private void clearColumnNumber() {
        bitField0_ = (bitField0_ & ~0x00000002);
        columnNumber_ = 0;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, lineNumber_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, columnNumber_);
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, lineNumber_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, columnNumber_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.SourcePosition parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.SourcePosition 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 com.android.aapt.Resources.SourcePosition parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.SourcePosition 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 com.android.aapt.Resources.SourcePosition parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.SourcePosition 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 com.android.aapt.Resources.SourcePosition parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.SourcePosition parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.SourcePosition parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.SourcePosition 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.SourcePosition prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * The position of a declared entity within a file.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.SourcePosition}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.SourcePosition, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.SourcePosition)
          com.android.aapt.Resources.SourcePositionOrBuilder {
        // Construct using com.android.aapt.Resources.SourcePosition.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional uint32 line_number = 1;</code>
         */
        public boolean hasLineNumber() {
          return instance.hasLineNumber();
        }
        /**
         * <code>optional uint32 line_number = 1;</code>
         */
        public int getLineNumber() {
          return instance.getLineNumber();
        }
        /**
         * <code>optional uint32 line_number = 1;</code>
         */
        public Builder setLineNumber(int value) {
          copyOnWrite();
          instance.setLineNumber(value);
          return this;
        }
        /**
         * <code>optional uint32 line_number = 1;</code>
         */
        public Builder clearLineNumber() {
          copyOnWrite();
          instance.clearLineNumber();
          return this;
        }
  
        /**
         * <code>optional uint32 column_number = 2;</code>
         */
        public boolean hasColumnNumber() {
          return instance.hasColumnNumber();
        }
        /**
         * <code>optional uint32 column_number = 2;</code>
         */
        public int getColumnNumber() {
          return instance.getColumnNumber();
        }
        /**
         * <code>optional uint32 column_number = 2;</code>
         */
        public Builder setColumnNumber(int value) {
          copyOnWrite();
          instance.setColumnNumber(value);
          return this;
        }
        /**
         * <code>optional uint32 column_number = 2;</code>
         */
        public Builder clearColumnNumber() {
          copyOnWrite();
          instance.clearColumnNumber();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.SourcePosition)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.SourcePosition();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.SourcePosition other = (com.android.aapt.Resources.SourcePosition) arg1;
            lineNumber_ = visitor.visitInt(
                hasLineNumber(), lineNumber_,
                other.hasLineNumber(), other.lineNumber_);
            columnNumber_ = visitor.visitInt(
                hasColumnNumber(), columnNumber_,
                other.hasColumnNumber(), other.columnNumber_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    bitField0_ |= 0x00000001;
                    lineNumber_ = input.readUInt32();
                    break;
                  }
                  case 16: {
                    bitField0_ |= 0x00000002;
                    columnNumber_ = input.readUInt32();
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.SourcePosition.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.SourcePosition)
      private static final com.android.aapt.Resources.SourcePosition DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new SourcePosition();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.SourcePosition getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<SourcePosition> PARSER;
  
      public static com.google.protobuf.Parser<SourcePosition> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface SourceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Source)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The index of the string path within the source string pool of a ResourceTable.
       * </pre>
       *
       * <code>optional uint32 path_idx = 1;</code>
       */
      boolean hasPathIdx();
      /**
       * <pre>
       * The index of the string path within the source string pool of a ResourceTable.
       * </pre>
       *
       * <code>optional uint32 path_idx = 1;</code>
       */
      int getPathIdx();
  
      /**
       * <code>optional .aapt.pb.SourcePosition position = 2;</code>
       */
      boolean hasPosition();
      /**
       * <code>optional .aapt.pb.SourcePosition position = 2;</code>
       */
      com.android.aapt.Resources.SourcePosition getPosition();
    }
    /**
     * <pre>
     * Developer friendly source file information for an entity in the resource table.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Source}
     */
    public  static final class Source extends
        com.google.protobuf.GeneratedMessageLite<
            Source, Source.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Source)
        SourceOrBuilder {
      private Source() {
      }
      private int bitField0_;
      public static final int PATH_IDX_FIELD_NUMBER = 1;
      private int pathIdx_;
      /**
       * <pre>
       * The index of the string path within the source string pool of a ResourceTable.
       * </pre>
       *
       * <code>optional uint32 path_idx = 1;</code>
       */
      public boolean hasPathIdx() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The index of the string path within the source string pool of a ResourceTable.
       * </pre>
       *
       * <code>optional uint32 path_idx = 1;</code>
       */
      public int getPathIdx() {
        return pathIdx_;
      }
      /**
       * <pre>
       * The index of the string path within the source string pool of a ResourceTable.
       * </pre>
       *
       * <code>optional uint32 path_idx = 1;</code>
       */
      private void setPathIdx(int value) {
        bitField0_ |= 0x00000001;
        pathIdx_ = value;
      }
      /**
       * <pre>
       * The index of the string path within the source string pool of a ResourceTable.
       * </pre>
       *
       * <code>optional uint32 path_idx = 1;</code>
       */
      private void clearPathIdx() {
        bitField0_ = (bitField0_ & ~0x00000001);
        pathIdx_ = 0;
      }
  
      public static final int POSITION_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.SourcePosition position_;
      /**
       * <code>optional .aapt.pb.SourcePosition position = 2;</code>
       */
      public boolean hasPosition() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .aapt.pb.SourcePosition position = 2;</code>
       */
      public com.android.aapt.Resources.SourcePosition getPosition() {
        return position_ == null ? com.android.aapt.Resources.SourcePosition.getDefaultInstance() : position_;
      }
      /**
       * <code>optional .aapt.pb.SourcePosition position = 2;</code>
       */
      private void setPosition(com.android.aapt.Resources.SourcePosition value) {
        if (value == null) {
          throw new NullPointerException();
        }
        position_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <code>optional .aapt.pb.SourcePosition position = 2;</code>
       */
      private void setPosition(
          com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
        position_ = builderForValue.build();
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>optional .aapt.pb.SourcePosition position = 2;</code>
       */
      private void mergePosition(com.android.aapt.Resources.SourcePosition value) {
        if (position_ != null &&
            position_ != com.android.aapt.Resources.SourcePosition.getDefaultInstance()) {
          position_ =
            com.android.aapt.Resources.SourcePosition.newBuilder(position_).mergeFrom(value).buildPartial();
        } else {
          position_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>optional .aapt.pb.SourcePosition position = 2;</code>
       */
      private void clearPosition() {  position_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, pathIdx_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, getPosition());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, pathIdx_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getPosition());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Source parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Source 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 com.android.aapt.Resources.Source parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Source 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 com.android.aapt.Resources.Source parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Source 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 com.android.aapt.Resources.Source parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Source parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Source parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Source 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Source prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * Developer friendly source file information for an entity in the resource table.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Source}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Source, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Source)
          com.android.aapt.Resources.SourceOrBuilder {
        // Construct using com.android.aapt.Resources.Source.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The index of the string path within the source string pool of a ResourceTable.
         * </pre>
         *
         * <code>optional uint32 path_idx = 1;</code>
         */
        public boolean hasPathIdx() {
          return instance.hasPathIdx();
        }
        /**
         * <pre>
         * The index of the string path within the source string pool of a ResourceTable.
         * </pre>
         *
         * <code>optional uint32 path_idx = 1;</code>
         */
        public int getPathIdx() {
          return instance.getPathIdx();
        }
        /**
         * <pre>
         * The index of the string path within the source string pool of a ResourceTable.
         * </pre>
         *
         * <code>optional uint32 path_idx = 1;</code>
         */
        public Builder setPathIdx(int value) {
          copyOnWrite();
          instance.setPathIdx(value);
          return this;
        }
        /**
         * <pre>
         * The index of the string path within the source string pool of a ResourceTable.
         * </pre>
         *
         * <code>optional uint32 path_idx = 1;</code>
         */
        public Builder clearPathIdx() {
          copyOnWrite();
          instance.clearPathIdx();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.SourcePosition position = 2;</code>
         */
        public boolean hasPosition() {
          return instance.hasPosition();
        }
        /**
         * <code>optional .aapt.pb.SourcePosition position = 2;</code>
         */
        public com.android.aapt.Resources.SourcePosition getPosition() {
          return instance.getPosition();
        }
        /**
         * <code>optional .aapt.pb.SourcePosition position = 2;</code>
         */
        public Builder setPosition(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.setPosition(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.SourcePosition position = 2;</code>
         */
        public Builder setPosition(
            com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
          copyOnWrite();
          instance.setPosition(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.SourcePosition position = 2;</code>
         */
        public Builder mergePosition(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.mergePosition(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.SourcePosition position = 2;</code>
         */
        public Builder clearPosition() {  copyOnWrite();
          instance.clearPosition();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Source)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Source();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Source other = (com.android.aapt.Resources.Source) arg1;
            pathIdx_ = visitor.visitInt(
                hasPathIdx(), pathIdx_,
                other.hasPathIdx(), other.pathIdx_);
            position_ = visitor.visitMessage(position_, other.position_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    bitField0_ |= 0x00000001;
                    pathIdx_ = input.readUInt32();
                    break;
                  }
                  case 18: {
                    com.android.aapt.Resources.SourcePosition.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000002) == 0x00000002)) {
                      subBuilder = position_.toBuilder();
                    }
                    position_ = input.readMessage(com.android.aapt.Resources.SourcePosition.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(position_);
                      position_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000002;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Source.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Source)
      private static final com.android.aapt.Resources.Source DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Source();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Source getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Source> PARSER;
  
      public static com.google.protobuf.Parser<Source> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ResourceTableOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.ResourceTable)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
       */
      boolean hasSourcePool();
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
       */
      com.android.aapt.Resources.StringPool getSourcePool();
  
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      java.util.List<com.android.aapt.Resources.Package> 
          getPackageList();
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      com.android.aapt.Resources.Package getPackage(int index);
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      int getPackageCount();
    }
    /**
     * <pre>
     * Top level message representing a resource table.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.ResourceTable}
     */
    public  static final class ResourceTable extends
        com.google.protobuf.GeneratedMessageLite<
            ResourceTable, ResourceTable.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.ResourceTable)
        ResourceTableOrBuilder {
      private ResourceTable() {
        package_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int SOURCE_POOL_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.StringPool sourcePool_;
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
       */
      public boolean hasSourcePool() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
       */
      public com.android.aapt.Resources.StringPool getSourcePool() {
        return sourcePool_ == null ? com.android.aapt.Resources.StringPool.getDefaultInstance() : sourcePool_;
      }
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
       */
      private void setSourcePool(com.android.aapt.Resources.StringPool value) {
        if (value == null) {
          throw new NullPointerException();
        }
        sourcePool_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
       */
      private void setSourcePool(
          com.android.aapt.Resources.StringPool.Builder builderForValue) {
        sourcePool_ = builderForValue.build();
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
       */
      private void mergeSourcePool(com.android.aapt.Resources.StringPool value) {
        if (sourcePool_ != null &&
            sourcePool_ != com.android.aapt.Resources.StringPool.getDefaultInstance()) {
          sourcePool_ =
            com.android.aapt.Resources.StringPool.newBuilder(sourcePool_).mergeFrom(value).buildPartial();
        } else {
          sourcePool_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
       */
      private void clearSourcePool() {  sourcePool_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int PACKAGE_FIELD_NUMBER = 2;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Package> package_;
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      public java.util.List<com.android.aapt.Resources.Package> getPackageList() {
        return package_;
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.PackageOrBuilder> 
          getPackageOrBuilderList() {
        return package_;
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      public int getPackageCount() {
        return package_.size();
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      public com.android.aapt.Resources.Package getPackage(int index) {
        return package_.get(index);
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      public com.android.aapt.Resources.PackageOrBuilder getPackageOrBuilder(
          int index) {
        return package_.get(index);
      }
      private void ensurePackageIsMutable() {
        if (!package_.isModifiable()) {
          package_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(package_);
         }
      }
  
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      private void setPackage(
          int index, com.android.aapt.Resources.Package value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePackageIsMutable();
        package_.set(index, value);
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      private void setPackage(
          int index, com.android.aapt.Resources.Package.Builder builderForValue) {
        ensurePackageIsMutable();
        package_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      private void addPackage(com.android.aapt.Resources.Package value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePackageIsMutable();
        package_.add(value);
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      private void addPackage(
          int index, com.android.aapt.Resources.Package value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePackageIsMutable();
        package_.add(index, value);
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      private void addPackage(
          com.android.aapt.Resources.Package.Builder builderForValue) {
        ensurePackageIsMutable();
        package_.add(builderForValue.build());
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      private void addPackage(
          int index, com.android.aapt.Resources.Package.Builder builderForValue) {
        ensurePackageIsMutable();
        package_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      private void addAllPackage(
          java.lang.Iterable<? extends com.android.aapt.Resources.Package> values) {
        ensurePackageIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, package_);
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      private void clearPackage() {
        package_ = emptyProtobufList();
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Package package = 2;</code>
       */
      private void removePackage(int index) {
        ensurePackageIsMutable();
        package_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, getSourcePool());
        }
        for (int i = 0; i < package_.size(); i++) {
          output.writeMessage(2, package_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getSourcePool());
        }
        for (int i = 0; i < package_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, package_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.ResourceTable parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ResourceTable 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 com.android.aapt.Resources.ResourceTable parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ResourceTable 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 com.android.aapt.Resources.ResourceTable parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ResourceTable 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 com.android.aapt.Resources.ResourceTable parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ResourceTable parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.ResourceTable parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ResourceTable 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.ResourceTable prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * Top level message representing a resource table.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.ResourceTable}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.ResourceTable, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.ResourceTable)
          com.android.aapt.Resources.ResourceTableOrBuilder {
        // Construct using com.android.aapt.Resources.ResourceTable.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
         */
        public boolean hasSourcePool() {
          return instance.hasSourcePool();
        }
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
         */
        public com.android.aapt.Resources.StringPool getSourcePool() {
          return instance.getSourcePool();
        }
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
         */
        public Builder setSourcePool(com.android.aapt.Resources.StringPool value) {
          copyOnWrite();
          instance.setSourcePool(value);
          return this;
          }
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
         */
        public Builder setSourcePool(
            com.android.aapt.Resources.StringPool.Builder builderForValue) {
          copyOnWrite();
          instance.setSourcePool(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
         */
        public Builder mergeSourcePool(com.android.aapt.Resources.StringPool value) {
          copyOnWrite();
          instance.mergeSourcePool(value);
          return this;
        }
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>optional .aapt.pb.StringPool source_pool = 1;</code>
         */
        public Builder clearSourcePool() {  copyOnWrite();
          instance.clearSourcePool();
          return this;
        }
  
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public java.util.List<com.android.aapt.Resources.Package> getPackageList() {
          return java.util.Collections.unmodifiableList(
              instance.getPackageList());
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public int getPackageCount() {
          return instance.getPackageCount();
        }/**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public com.android.aapt.Resources.Package getPackage(int index) {
          return instance.getPackage(index);
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public Builder setPackage(
            int index, com.android.aapt.Resources.Package value) {
          copyOnWrite();
          instance.setPackage(index, value);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public Builder setPackage(
            int index, com.android.aapt.Resources.Package.Builder builderForValue) {
          copyOnWrite();
          instance.setPackage(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public Builder addPackage(com.android.aapt.Resources.Package value) {
          copyOnWrite();
          instance.addPackage(value);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public Builder addPackage(
            int index, com.android.aapt.Resources.Package value) {
          copyOnWrite();
          instance.addPackage(index, value);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public Builder addPackage(
            com.android.aapt.Resources.Package.Builder builderForValue) {
          copyOnWrite();
          instance.addPackage(builderForValue);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public Builder addPackage(
            int index, com.android.aapt.Resources.Package.Builder builderForValue) {
          copyOnWrite();
          instance.addPackage(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public Builder addAllPackage(
            java.lang.Iterable<? extends com.android.aapt.Resources.Package> values) {
          copyOnWrite();
          instance.addAllPackage(values);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public Builder clearPackage() {
          copyOnWrite();
          instance.clearPackage();
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Package package = 2;</code>
         */
        public Builder removePackage(int index) {
          copyOnWrite();
          instance.removePackage(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.ResourceTable)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.ResourceTable();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            package_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.ResourceTable other = (com.android.aapt.Resources.ResourceTable) arg1;
            sourcePool_ = visitor.visitMessage(sourcePool_, other.sourcePool_);
            package_= visitor.visitList(package_, other.package_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    com.android.aapt.Resources.StringPool.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000001) == 0x00000001)) {
                      subBuilder = sourcePool_.toBuilder();
                    }
                    sourcePool_ = input.readMessage(com.android.aapt.Resources.StringPool.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(sourcePool_);
                      sourcePool_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000001;
                    break;
                  }
                  case 18: {
                    if (!package_.isModifiable()) {
                      package_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(package_);
                    }
                    package_.add(
                        input.readMessage(com.android.aapt.Resources.Package.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.ResourceTable.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.ResourceTable)
      private static final com.android.aapt.Resources.ResourceTable DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ResourceTable();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.ResourceTable getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<ResourceTable> PARSER;
  
      public static com.google.protobuf.Parser<ResourceTable> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface PackageOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Package)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * The ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * The ID 0x01 is reserved for the 'android' package (framework).
       * The ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * The ID 0x7f is reserved for the application package.
       * IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * </pre>
       *
       * <code>optional uint32 package_id = 1;</code>
       */
      boolean hasPackageId();
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * The ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * The ID 0x01 is reserved for the 'android' package (framework).
       * The ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * The ID 0x7f is reserved for the application package.
       * IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * </pre>
       *
       * <code>optional uint32 package_id = 1;</code>
       */
      int getPackageId();
  
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>optional string package_name = 2;</code>
       */
      boolean hasPackageName();
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>optional string package_name = 2;</code>
       */
      java.lang.String getPackageName();
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>optional string package_name = 2;</code>
       */
      com.google.protobuf.ByteString
          getPackageNameBytes();
  
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      java.util.List<com.android.aapt.Resources.Type> 
          getTypeList();
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      com.android.aapt.Resources.Type getType(int index);
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      int getTypeCount();
    }
    /**
     * <pre>
     * Defines resources for an Android package.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Package}
     */
    public  static final class Package extends
        com.google.protobuf.GeneratedMessageLite<
            Package, Package.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Package)
        PackageOrBuilder {
      private Package() {
        packageName_ = "";
        type_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int PACKAGE_ID_FIELD_NUMBER = 1;
      private int packageId_;
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * The ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * The ID 0x01 is reserved for the 'android' package (framework).
       * The ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * The ID 0x7f is reserved for the application package.
       * IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * </pre>
       *
       * <code>optional uint32 package_id = 1;</code>
       */
      public boolean hasPackageId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * The ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * The ID 0x01 is reserved for the 'android' package (framework).
       * The ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * The ID 0x7f is reserved for the application package.
       * IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * </pre>
       *
       * <code>optional uint32 package_id = 1;</code>
       */
      public int getPackageId() {
        return packageId_;
      }
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * The ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * The ID 0x01 is reserved for the 'android' package (framework).
       * The ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * The ID 0x7f is reserved for the application package.
       * IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * </pre>
       *
       * <code>optional uint32 package_id = 1;</code>
       */
      private void setPackageId(int value) {
        bitField0_ |= 0x00000001;
        packageId_ = value;
      }
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * The ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * The ID 0x01 is reserved for the 'android' package (framework).
       * The ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * The ID 0x7f is reserved for the application package.
       * IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * </pre>
       *
       * <code>optional uint32 package_id = 1;</code>
       */
      private void clearPackageId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        packageId_ = 0;
      }
  
      public static final int PACKAGE_NAME_FIELD_NUMBER = 2;
      private java.lang.String packageName_;
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>optional string package_name = 2;</code>
       */
      public boolean hasPackageName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>optional string package_name = 2;</code>
       */
      public java.lang.String getPackageName() {
        return packageName_;
      }
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>optional string package_name = 2;</code>
       */
      public com.google.protobuf.ByteString
          getPackageNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(packageName_);
      }
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>optional string package_name = 2;</code>
       */
      private void setPackageName(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        packageName_ = value;
      }
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>optional string package_name = 2;</code>
       */
      private void clearPackageName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        packageName_ = getDefaultInstance().getPackageName();
      }
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>optional string package_name = 2;</code>
       */
      private void setPackageNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        packageName_ = value.toStringUtf8();
      }
  
      public static final int TYPE_FIELD_NUMBER = 3;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Type> type_;
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      public java.util.List<com.android.aapt.Resources.Type> getTypeList() {
        return type_;
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.TypeOrBuilder> 
          getTypeOrBuilderList() {
        return type_;
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      public int getTypeCount() {
        return type_.size();
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      public com.android.aapt.Resources.Type getType(int index) {
        return type_.get(index);
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      public com.android.aapt.Resources.TypeOrBuilder getTypeOrBuilder(
          int index) {
        return type_.get(index);
      }
      private void ensureTypeIsMutable() {
        if (!type_.isModifiable()) {
          type_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(type_);
         }
      }
  
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      private void setType(
          int index, com.android.aapt.Resources.Type value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureTypeIsMutable();
        type_.set(index, value);
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      private void setType(
          int index, com.android.aapt.Resources.Type.Builder builderForValue) {
        ensureTypeIsMutable();
        type_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      private void addType(com.android.aapt.Resources.Type value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureTypeIsMutable();
        type_.add(value);
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      private void addType(
          int index, com.android.aapt.Resources.Type value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureTypeIsMutable();
        type_.add(index, value);
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      private void addType(
          com.android.aapt.Resources.Type.Builder builderForValue) {
        ensureTypeIsMutable();
        type_.add(builderForValue.build());
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      private void addType(
          int index, com.android.aapt.Resources.Type.Builder builderForValue) {
        ensureTypeIsMutable();
        type_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      private void addAllType(
          java.lang.Iterable<? extends com.android.aapt.Resources.Type> values) {
        ensureTypeIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, type_);
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      private void clearType() {
        type_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .aapt.pb.Type type = 3;</code>
       */
      private void removeType(int index) {
        ensureTypeIsMutable();
        type_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, packageId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeString(2, getPackageName());
        }
        for (int i = 0; i < type_.size(); i++) {
          output.writeMessage(3, type_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, packageId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(2, getPackageName());
        }
        for (int i = 0; i < type_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, type_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Package parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Package 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 com.android.aapt.Resources.Package parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Package 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 com.android.aapt.Resources.Package parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Package 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 com.android.aapt.Resources.Package parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Package parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Package parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Package 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Package prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * Defines resources for an Android package.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Package}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Package, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Package)
          com.android.aapt.Resources.PackageOrBuilder {
        // Construct using com.android.aapt.Resources.Package.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The package ID of this package, in the range [0x00, 0xff].
         * The ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
         * The ID 0x01 is reserved for the 'android' package (framework).
         * The ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
         * The ID 0x7f is reserved for the application package.
         * IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
         * </pre>
         *
         * <code>optional uint32 package_id = 1;</code>
         */
        public boolean hasPackageId() {
          return instance.hasPackageId();
        }
        /**
         * <pre>
         * The package ID of this package, in the range [0x00, 0xff].
         * The ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
         * The ID 0x01 is reserved for the 'android' package (framework).
         * The ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
         * The ID 0x7f is reserved for the application package.
         * IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
         * </pre>
         *
         * <code>optional uint32 package_id = 1;</code>
         */
        public int getPackageId() {
          return instance.getPackageId();
        }
        /**
         * <pre>
         * The package ID of this package, in the range [0x00, 0xff].
         * The ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
         * The ID 0x01 is reserved for the 'android' package (framework).
         * The ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
         * The ID 0x7f is reserved for the application package.
         * IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
         * </pre>
         *
         * <code>optional uint32 package_id = 1;</code>
         */
        public Builder setPackageId(int value) {
          copyOnWrite();
          instance.setPackageId(value);
          return this;
        }
        /**
         * <pre>
         * The package ID of this package, in the range [0x00, 0xff].
         * The ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
         * The ID 0x01 is reserved for the 'android' package (framework).
         * The ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
         * The ID 0x7f is reserved for the application package.
         * IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
         * </pre>
         *
         * <code>optional uint32 package_id = 1;</code>
         */
        public Builder clearPackageId() {
          copyOnWrite();
          instance.clearPackageId();
          return this;
        }
  
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>optional string package_name = 2;</code>
         */
        public boolean hasPackageName() {
          return instance.hasPackageName();
        }
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>optional string package_name = 2;</code>
         */
        public java.lang.String getPackageName() {
          return instance.getPackageName();
        }
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>optional string package_name = 2;</code>
         */
        public com.google.protobuf.ByteString
            getPackageNameBytes() {
          return instance.getPackageNameBytes();
        }
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>optional string package_name = 2;</code>
         */
        public Builder setPackageName(
            java.lang.String value) {
          copyOnWrite();
          instance.setPackageName(value);
          return this;
        }
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>optional string package_name = 2;</code>
         */
        public Builder clearPackageName() {
          copyOnWrite();
          instance.clearPackageName();
          return this;
        }
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>optional string package_name = 2;</code>
         */
        public Builder setPackageNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setPackageNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public java.util.List<com.android.aapt.Resources.Type> getTypeList() {
          return java.util.Collections.unmodifiableList(
              instance.getTypeList());
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public int getTypeCount() {
          return instance.getTypeCount();
        }/**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public com.android.aapt.Resources.Type getType(int index) {
          return instance.getType(index);
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public Builder setType(
            int index, com.android.aapt.Resources.Type value) {
          copyOnWrite();
          instance.setType(index, value);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public Builder setType(
            int index, com.android.aapt.Resources.Type.Builder builderForValue) {
          copyOnWrite();
          instance.setType(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public Builder addType(com.android.aapt.Resources.Type value) {
          copyOnWrite();
          instance.addType(value);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public Builder addType(
            int index, com.android.aapt.Resources.Type value) {
          copyOnWrite();
          instance.addType(index, value);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public Builder addType(
            com.android.aapt.Resources.Type.Builder builderForValue) {
          copyOnWrite();
          instance.addType(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public Builder addType(
            int index, com.android.aapt.Resources.Type.Builder builderForValue) {
          copyOnWrite();
          instance.addType(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public Builder addAllType(
            java.lang.Iterable<? extends com.android.aapt.Resources.Type> values) {
          copyOnWrite();
          instance.addAllType(values);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public Builder clearType() {
          copyOnWrite();
          instance.clearType();
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .aapt.pb.Type type = 3;</code>
         */
        public Builder removeType(int index) {
          copyOnWrite();
          instance.removeType(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Package)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Package();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            type_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Package other = (com.android.aapt.Resources.Package) arg1;
            packageId_ = visitor.visitInt(
                hasPackageId(), packageId_,
                other.hasPackageId(), other.packageId_);
            packageName_ = visitor.visitString(
                hasPackageName(), packageName_,
                other.hasPackageName(), other.packageName_);
            type_= visitor.visitList(type_, other.type_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    bitField0_ |= 0x00000001;
                    packageId_ = input.readUInt32();
                    break;
                  }
                  case 18: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000002;
                    packageName_ = s;
                    break;
                  }
                  case 26: {
                    if (!type_.isModifiable()) {
                      type_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(type_);
                    }
                    type_.add(
                        input.readMessage(com.android.aapt.Resources.Type.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Package.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Package)
      private static final com.android.aapt.Resources.Package DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Package();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Package getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Package> PARSER;
  
      public static com.google.protobuf.Parser<Package> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface TypeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Type)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The ID of the type. This may be 0, which indicates no ID is set.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      boolean hasId();
      /**
       * <pre>
       * The ID of the type. This may be 0, which indicates no ID is set.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      int getId();
  
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      boolean hasName();
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      java.lang.String getName();
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      java.util.List<com.android.aapt.Resources.Entry> 
          getEntryList();
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      com.android.aapt.Resources.Entry getEntry(int index);
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      int getEntryCount();
    }
    /**
     * <pre>
     * A set of resources grouped under a common type. Such types include string, layout, xml, dimen,
     * attr, etc. This maps to the second part of a resource identifier in Java (R.type.entry).
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Type}
     */
    public  static final class Type extends
        com.google.protobuf.GeneratedMessageLite<
            Type, Type.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Type)
        TypeOrBuilder {
      private Type() {
        name_ = "";
        entry_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int ID_FIELD_NUMBER = 1;
      private int id_;
      /**
       * <pre>
       * The ID of the type. This may be 0, which indicates no ID is set.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The ID of the type. This may be 0, which indicates no ID is set.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      public int getId() {
        return id_;
      }
      /**
       * <pre>
       * The ID of the type. This may be 0, which indicates no ID is set.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      private void setId(int value) {
        bitField0_ |= 0x00000001;
        id_ = value;
      }
      /**
       * <pre>
       * The ID of the type. This may be 0, which indicates no ID is set.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      private void clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
      }
  
      public static final int NAME_FIELD_NUMBER = 2;
      private java.lang.String name_;
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      private void setName(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        name_ = value;
      }
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      private void clearName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = getDefaultInstance().getName();
      }
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        name_ = value.toStringUtf8();
      }
  
      public static final int ENTRY_FIELD_NUMBER = 3;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Entry> entry_;
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      public java.util.List<com.android.aapt.Resources.Entry> getEntryList() {
        return entry_;
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.EntryOrBuilder> 
          getEntryOrBuilderList() {
        return entry_;
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      public int getEntryCount() {
        return entry_.size();
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      public com.android.aapt.Resources.Entry getEntry(int index) {
        return entry_.get(index);
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      public com.android.aapt.Resources.EntryOrBuilder getEntryOrBuilder(
          int index) {
        return entry_.get(index);
      }
      private void ensureEntryIsMutable() {
        if (!entry_.isModifiable()) {
          entry_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(entry_);
         }
      }
  
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.set(index, value);
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      private void addEntry(com.android.aapt.Resources.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.add(value);
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.add(index, value);
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      private void addEntry(
          com.android.aapt.Resources.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.add(builderForValue.build());
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      private void addAllEntry(
          java.lang.Iterable<? extends com.android.aapt.Resources.Entry> values) {
        ensureEntryIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, entry_);
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      private void clearEntry() {
        entry_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .aapt.pb.Entry entry = 3;</code>
       */
      private void removeEntry(int index) {
        ensureEntryIsMutable();
        entry_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, id_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeString(2, getName());
        }
        for (int i = 0; i < entry_.size(); i++) {
          output.writeMessage(3, entry_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, id_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(2, getName());
        }
        for (int i = 0; i < entry_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, entry_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Type parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Type 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 com.android.aapt.Resources.Type parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Type 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 com.android.aapt.Resources.Type parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Type 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 com.android.aapt.Resources.Type parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Type parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Type parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Type 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Type prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A set of resources grouped under a common type. Such types include string, layout, xml, dimen,
       * attr, etc. This maps to the second part of a resource identifier in Java (R.type.entry).
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Type}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Type, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Type)
          com.android.aapt.Resources.TypeOrBuilder {
        // Construct using com.android.aapt.Resources.Type.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The ID of the type. This may be 0, which indicates no ID is set.
         * </pre>
         *
         * <code>optional uint32 id = 1;</code>
         */
        public boolean hasId() {
          return instance.hasId();
        }
        /**
         * <pre>
         * The ID of the type. This may be 0, which indicates no ID is set.
         * </pre>
         *
         * <code>optional uint32 id = 1;</code>
         */
        public int getId() {
          return instance.getId();
        }
        /**
         * <pre>
         * The ID of the type. This may be 0, which indicates no ID is set.
         * </pre>
         *
         * <code>optional uint32 id = 1;</code>
         */
        public Builder setId(int value) {
          copyOnWrite();
          instance.setId(value);
          return this;
        }
        /**
         * <pre>
         * The ID of the type. This may be 0, which indicates no ID is set.
         * </pre>
         *
         * <code>optional uint32 id = 1;</code>
         */
        public Builder clearId() {
          copyOnWrite();
          instance.clearId();
          return this;
        }
  
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public boolean hasName() {
          return instance.hasName();
        }
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public java.util.List<com.android.aapt.Resources.Entry> getEntryList() {
          return java.util.Collections.unmodifiableList(
              instance.getEntryList());
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public int getEntryCount() {
          return instance.getEntryCount();
        }/**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public com.android.aapt.Resources.Entry getEntry(int index) {
          return instance.getEntry(index);
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Entry value) {
          copyOnWrite();
          instance.setEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.setEntry(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public Builder addEntry(com.android.aapt.Resources.Entry value) {
          copyOnWrite();
          instance.addEntry(value);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Entry value) {
          copyOnWrite();
          instance.addEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public Builder addEntry(
            com.android.aapt.Resources.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public Builder addAllEntry(
            java.lang.Iterable<? extends com.android.aapt.Resources.Entry> values) {
          copyOnWrite();
          instance.addAllEntry(values);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public Builder clearEntry() {
          copyOnWrite();
          instance.clearEntry();
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .aapt.pb.Entry entry = 3;</code>
         */
        public Builder removeEntry(int index) {
          copyOnWrite();
          instance.removeEntry(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Type)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Type();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            entry_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Type other = (com.android.aapt.Resources.Type) arg1;
            id_ = visitor.visitInt(
                hasId(), id_,
                other.hasId(), other.id_);
            name_ = visitor.visitString(
                hasName(), name_,
                other.hasName(), other.name_);
            entry_= visitor.visitList(entry_, other.entry_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    bitField0_ |= 0x00000001;
                    id_ = input.readUInt32();
                    break;
                  }
                  case 18: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000002;
                    name_ = s;
                    break;
                  }
                  case 26: {
                    if (!entry_.isModifiable()) {
                      entry_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(entry_);
                    }
                    entry_.add(
                        input.readMessage(com.android.aapt.Resources.Entry.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Type.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Type)
      private static final com.android.aapt.Resources.Type DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Type();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Type getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Type> PARSER;
  
      public static com.google.protobuf.Parser<Type> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface SymbolStatusOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.SymbolStatus)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional .aapt.pb.SymbolStatus.Visibility visibility = 1;</code>
       */
      boolean hasVisibility();
      /**
       * <code>optional .aapt.pb.SymbolStatus.Visibility visibility = 1;</code>
       */
      com.android.aapt.Resources.SymbolStatus.Visibility getVisibility();
  
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 2;</code>
       */
      boolean hasSource();
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 2;</code>
       */
      com.android.aapt.Resources.Source getSource();
  
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>optional string comment = 3;</code>
       */
      boolean hasComment();
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>optional string comment = 3;</code>
       */
      java.lang.String getComment();
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>optional string comment = 3;</code>
       */
      com.google.protobuf.ByteString
          getCommentBytes();
  
      /**
       * <pre>
       * Whether the symbol can be merged into another resource table without there being an existing
       * definition to override. Used for overlays and set to true when &lt;add-resource&gt; is specified.
       * </pre>
       *
       * <code>optional bool allow_new = 4;</code>
       */
      boolean hasAllowNew();
      /**
       * <pre>
       * Whether the symbol can be merged into another resource table without there being an existing
       * definition to override. Used for overlays and set to true when &lt;add-resource&gt; is specified.
       * </pre>
       *
       * <code>optional bool allow_new = 4;</code>
       */
      boolean getAllowNew();
    }
    /**
     * <pre>
     * The status of a symbol/entry. This contains information like visibility (public/private),
     * comments, and whether the entry can be overridden.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.SymbolStatus}
     */
    public  static final class SymbolStatus extends
        com.google.protobuf.GeneratedMessageLite<
            SymbolStatus, SymbolStatus.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.SymbolStatus)
        SymbolStatusOrBuilder {
      private SymbolStatus() {
        comment_ = "";
      }
      /**
       * <pre>
       * The visibility of the resource outside of its package.
       * </pre>
       *
       * Protobuf enum {@code aapt.pb.SymbolStatus.Visibility}
       */
      public enum Visibility
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <pre>
         * No visibility was explicitly specified. This is typically treated as private.
         * The distinction is important when two separate R.java files are generated: a public and
         * private one. An unknown visibility, in this case, would cause the resource to be omitted
         * from either R.java.
         * </pre>
         *
         * <code>UNKNOWN = 0;</code>
         */
        UNKNOWN(0),
        /**
         * <pre>
         * A resource was explicitly marked as private. This means the resource can not be accessed
         * outside of its package unless the &#64;*package:type/entry notation is used (the asterisk being
         * the private accessor). If two R.java files are generated (private + public), the resource
         * will only be emitted to the private R.java file.
         * </pre>
         *
         * <code>PRIVATE = 1;</code>
         */
        PRIVATE(1),
        /**
         * <pre>
         * A resource was explicitly marked as public. This means the resource can be accessed
         * from any package, and is emitted into all R.java files, public and private.
         * </pre>
         *
         * <code>PUBLIC = 2;</code>
         */
        PUBLIC(2),
        ;
  
        /**
         * <pre>
         * No visibility was explicitly specified. This is typically treated as private.
         * The distinction is important when two separate R.java files are generated: a public and
         * private one. An unknown visibility, in this case, would cause the resource to be omitted
         * from either R.java.
         * </pre>
         *
         * <code>UNKNOWN = 0;</code>
         */
        public static final int UNKNOWN_VALUE = 0;
        /**
         * <pre>
         * A resource was explicitly marked as private. This means the resource can not be accessed
         * outside of its package unless the &#64;*package:type/entry notation is used (the asterisk being
         * the private accessor). If two R.java files are generated (private + public), the resource
         * will only be emitted to the private R.java file.
         * </pre>
         *
         * <code>PRIVATE = 1;</code>
         */
        public static final int PRIVATE_VALUE = 1;
        /**
         * <pre>
         * A resource was explicitly marked as public. This means the resource can be accessed
         * from any package, and is emitted into all R.java files, public and private.
         * </pre>
         *
         * <code>PUBLIC = 2;</code>
         */
        public static final int PUBLIC_VALUE = 2;
  
  
        public final int getNumber() {
          return value;
        }
  
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static Visibility valueOf(int value) {
          return forNumber(value);
        }
  
        public static Visibility forNumber(int value) {
          switch (value) {
            case 0: return UNKNOWN;
            case 1: return PRIVATE;
            case 2: return PUBLIC;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<Visibility>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            Visibility> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Visibility>() {
                public Visibility findValueByNumber(int number) {
                  return Visibility.forNumber(number);
                }
              };
  
        private final int value;
  
        private Visibility(int value) {
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:aapt.pb.SymbolStatus.Visibility)
      }
  
      private int bitField0_;
      public static final int VISIBILITY_FIELD_NUMBER = 1;
      private int visibility_;
      /**
       * <code>optional .aapt.pb.SymbolStatus.Visibility visibility = 1;</code>
       */
      public boolean hasVisibility() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .aapt.pb.SymbolStatus.Visibility visibility = 1;</code>
       */
      public com.android.aapt.Resources.SymbolStatus.Visibility getVisibility() {
        com.android.aapt.Resources.SymbolStatus.Visibility result = com.android.aapt.Resources.SymbolStatus.Visibility.forNumber(visibility_);
        return result == null ? com.android.aapt.Resources.SymbolStatus.Visibility.UNKNOWN : result;
      }
      /**
       * <code>optional .aapt.pb.SymbolStatus.Visibility visibility = 1;</code>
       */
      private void setVisibility(com.android.aapt.Resources.SymbolStatus.Visibility value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        visibility_ = value.getNumber();
      }
      /**
       * <code>optional .aapt.pb.SymbolStatus.Visibility visibility = 1;</code>
       */
      private void clearVisibility() {
        bitField0_ = (bitField0_ & ~0x00000001);
        visibility_ = 0;
      }
  
      public static final int SOURCE_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.Source source_;
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 2;</code>
       */
      public boolean hasSource() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 2;</code>
       */
      public com.android.aapt.Resources.Source getSource() {
        return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 2;</code>
       */
      private void setSource(com.android.aapt.Resources.Source value) {
        if (value == null) {
          throw new NullPointerException();
        }
        source_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 2;</code>
       */
      private void setSource(
          com.android.aapt.Resources.Source.Builder builderForValue) {
        source_ = builderForValue.build();
        bitField0_ |= 0x00000002;
      }
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 2;</code>
       */
      private void mergeSource(com.android.aapt.Resources.Source value) {
        if (source_ != null &&
            source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 2;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public static final int COMMENT_FIELD_NUMBER = 3;
      private java.lang.String comment_;
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>optional string comment = 3;</code>
       */
      public boolean hasComment() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>optional string comment = 3;</code>
       */
      public java.lang.String getComment() {
        return comment_;
      }
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>optional string comment = 3;</code>
       */
      public com.google.protobuf.ByteString
          getCommentBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(comment_);
      }
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>optional string comment = 3;</code>
       */
      private void setComment(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
        comment_ = value;
      }
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>optional string comment = 3;</code>
       */
      private void clearComment() {
        bitField0_ = (bitField0_ & ~0x00000004);
        comment_ = getDefaultInstance().getComment();
      }
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>optional string comment = 3;</code>
       */
      private void setCommentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
        comment_ = value.toStringUtf8();
      }
  
      public static final int ALLOW_NEW_FIELD_NUMBER = 4;
      private boolean allowNew_;
      /**
       * <pre>
       * Whether the symbol can be merged into another resource table without there being an existing
       * definition to override. Used for overlays and set to true when &lt;add-resource&gt; is specified.
       * </pre>
       *
       * <code>optional bool allow_new = 4;</code>
       */
      public boolean hasAllowNew() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * Whether the symbol can be merged into another resource table without there being an existing
       * definition to override. Used for overlays and set to true when &lt;add-resource&gt; is specified.
       * </pre>
       *
       * <code>optional bool allow_new = 4;</code>
       */
      public boolean getAllowNew() {
        return allowNew_;
      }
      /**
       * <pre>
       * Whether the symbol can be merged into another resource table without there being an existing
       * definition to override. Used for overlays and set to true when &lt;add-resource&gt; is specified.
       * </pre>
       *
       * <code>optional bool allow_new = 4;</code>
       */
      private void setAllowNew(boolean value) {
        bitField0_ |= 0x00000008;
        allowNew_ = value;
      }
      /**
       * <pre>
       * Whether the symbol can be merged into another resource table without there being an existing
       * definition to override. Used for overlays and set to true when &lt;add-resource&gt; is specified.
       * </pre>
       *
       * <code>optional bool allow_new = 4;</code>
       */
      private void clearAllowNew() {
        bitField0_ = (bitField0_ & ~0x00000008);
        allowNew_ = false;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, visibility_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, getSource());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeString(3, getComment());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBool(4, allowNew_);
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, visibility_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getSource());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(3, getComment());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(4, allowNew_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.SymbolStatus parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.SymbolStatus 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 com.android.aapt.Resources.SymbolStatus parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.SymbolStatus 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 com.android.aapt.Resources.SymbolStatus parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.SymbolStatus 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 com.android.aapt.Resources.SymbolStatus parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.SymbolStatus parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.SymbolStatus parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.SymbolStatus 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.SymbolStatus prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * The status of a symbol/entry. This contains information like visibility (public/private),
       * comments, and whether the entry can be overridden.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.SymbolStatus}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.SymbolStatus, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.SymbolStatus)
          com.android.aapt.Resources.SymbolStatusOrBuilder {
        // Construct using com.android.aapt.Resources.SymbolStatus.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional .aapt.pb.SymbolStatus.Visibility visibility = 1;</code>
         */
        public boolean hasVisibility() {
          return instance.hasVisibility();
        }
        /**
         * <code>optional .aapt.pb.SymbolStatus.Visibility visibility = 1;</code>
         */
        public com.android.aapt.Resources.SymbolStatus.Visibility getVisibility() {
          return instance.getVisibility();
        }
        /**
         * <code>optional .aapt.pb.SymbolStatus.Visibility visibility = 1;</code>
         */
        public Builder setVisibility(com.android.aapt.Resources.SymbolStatus.Visibility value) {
          copyOnWrite();
          instance.setVisibility(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.SymbolStatus.Visibility visibility = 1;</code>
         */
        public Builder clearVisibility() {
          copyOnWrite();
          instance.clearVisibility();
          return this;
        }
  
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 2;</code>
         */
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 2;</code>
         */
        public com.android.aapt.Resources.Source getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 2;</code>
         */
        public Builder setSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 2;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 2;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 2;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>optional string comment = 3;</code>
         */
        public boolean hasComment() {
          return instance.hasComment();
        }
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>optional string comment = 3;</code>
         */
        public java.lang.String getComment() {
          return instance.getComment();
        }
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>optional string comment = 3;</code>
         */
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return instance.getCommentBytes();
        }
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>optional string comment = 3;</code>
         */
        public Builder setComment(
            java.lang.String value) {
          copyOnWrite();
          instance.setComment(value);
          return this;
        }
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>optional string comment = 3;</code>
         */
        public Builder clearComment() {
          copyOnWrite();
          instance.clearComment();
          return this;
        }
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>optional string comment = 3;</code>
         */
        public Builder setCommentBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setCommentBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Whether the symbol can be merged into another resource table without there being an existing
         * definition to override. Used for overlays and set to true when &lt;add-resource&gt; is specified.
         * </pre>
         *
         * <code>optional bool allow_new = 4;</code>
         */
        public boolean hasAllowNew() {
          return instance.hasAllowNew();
        }
        /**
         * <pre>
         * Whether the symbol can be merged into another resource table without there being an existing
         * definition to override. Used for overlays and set to true when &lt;add-resource&gt; is specified.
         * </pre>
         *
         * <code>optional bool allow_new = 4;</code>
         */
        public boolean getAllowNew() {
          return instance.getAllowNew();
        }
        /**
         * <pre>
         * Whether the symbol can be merged into another resource table without there being an existing
         * definition to override. Used for overlays and set to true when &lt;add-resource&gt; is specified.
         * </pre>
         *
         * <code>optional bool allow_new = 4;</code>
         */
        public Builder setAllowNew(boolean value) {
          copyOnWrite();
          instance.setAllowNew(value);
          return this;
        }
        /**
         * <pre>
         * Whether the symbol can be merged into another resource table without there being an existing
         * definition to override. Used for overlays and set to true when &lt;add-resource&gt; is specified.
         * </pre>
         *
         * <code>optional bool allow_new = 4;</code>
         */
        public Builder clearAllowNew() {
          copyOnWrite();
          instance.clearAllowNew();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.SymbolStatus)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.SymbolStatus();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.SymbolStatus other = (com.android.aapt.Resources.SymbolStatus) arg1;
            visibility_ = visitor.visitInt(hasVisibility(), visibility_,
                other.hasVisibility(), other.visibility_);
            source_ = visitor.visitMessage(source_, other.source_);
            comment_ = visitor.visitString(
                hasComment(), comment_,
                other.hasComment(), other.comment_);
            allowNew_ = visitor.visitBoolean(
                hasAllowNew(), allowNew_,
                other.hasAllowNew(), other.allowNew_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    int rawValue = input.readEnum();
                    com.android.aapt.Resources.SymbolStatus.Visibility value = com.android.aapt.Resources.SymbolStatus.Visibility.forNumber(rawValue);
                    if (value == null) {
                      super.mergeVarintField(1, rawValue);
                    } else {
                      bitField0_ |= 0x00000001;
                      visibility_ = rawValue;
                    }
                    break;
                  }
                  case 18: {
                    com.android.aapt.Resources.Source.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000002) == 0x00000002)) {
                      subBuilder = source_.toBuilder();
                    }
                    source_ = input.readMessage(com.android.aapt.Resources.Source.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(source_);
                      source_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000002;
                    break;
                  }
                  case 26: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000004;
                    comment_ = s;
                    break;
                  }
                  case 32: {
                    bitField0_ |= 0x00000008;
                    allowNew_ = input.readBool();
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.SymbolStatus.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.SymbolStatus)
      private static final com.android.aapt.Resources.SymbolStatus DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new SymbolStatus();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.SymbolStatus getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<SymbolStatus> PARSER;
  
      public static com.google.protobuf.Parser<SymbolStatus> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface EntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Entry)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      boolean hasId();
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      int getId();
  
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      boolean hasName();
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      java.lang.String getName();
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <pre>
       * The symbol status of this entry, which includes visibility information.
       * </pre>
       *
       * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
       */
      boolean hasSymbolStatus();
      /**
       * <pre>
       * The symbol status of this entry, which includes visibility information.
       * </pre>
       *
       * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
       */
      com.android.aapt.Resources.SymbolStatus getSymbolStatus();
  
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      java.util.List<com.android.aapt.Resources.ConfigValue> 
          getConfigValueList();
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      com.android.aapt.Resources.ConfigValue getConfigValue(int index);
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      int getConfigValueCount();
    }
    /**
     * <pre>
     * An entry declaration. An entry has a full resource ID that is the combination of package ID,
     * type ID, and its own entry ID. An entry on its own has no value, but values are defined for
     * various configurations/variants.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Entry}
     */
    public  static final class Entry extends
        com.google.protobuf.GeneratedMessageLite<
            Entry, Entry.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Entry)
        EntryOrBuilder {
      private Entry() {
        name_ = "";
        configValue_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int ID_FIELD_NUMBER = 1;
      private int id_;
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      public int getId() {
        return id_;
      }
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      private void setId(int value) {
        bitField0_ |= 0x00000001;
        id_ = value;
      }
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * </pre>
       *
       * <code>optional uint32 id = 1;</code>
       */
      private void clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
      }
  
      public static final int NAME_FIELD_NUMBER = 2;
      private java.lang.String name_;
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      private void setName(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        name_ = value;
      }
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      private void clearName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = getDefaultInstance().getName();
      }
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        name_ = value.toStringUtf8();
      }
  
      public static final int SYMBOL_STATUS_FIELD_NUMBER = 3;
      private com.android.aapt.Resources.SymbolStatus symbolStatus_;
      /**
       * <pre>
       * The symbol status of this entry, which includes visibility information.
       * </pre>
       *
       * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
       */
      public boolean hasSymbolStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * The symbol status of this entry, which includes visibility information.
       * </pre>
       *
       * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
       */
      public com.android.aapt.Resources.SymbolStatus getSymbolStatus() {
        return symbolStatus_ == null ? com.android.aapt.Resources.SymbolStatus.getDefaultInstance() : symbolStatus_;
      }
      /**
       * <pre>
       * The symbol status of this entry, which includes visibility information.
       * </pre>
       *
       * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
       */
      private void setSymbolStatus(com.android.aapt.Resources.SymbolStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        symbolStatus_ = value;
        bitField0_ |= 0x00000004;
        }
      /**
       * <pre>
       * The symbol status of this entry, which includes visibility information.
       * </pre>
       *
       * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
       */
      private void setSymbolStatus(
          com.android.aapt.Resources.SymbolStatus.Builder builderForValue) {
        symbolStatus_ = builderForValue.build();
        bitField0_ |= 0x00000004;
      }
      /**
       * <pre>
       * The symbol status of this entry, which includes visibility information.
       * </pre>
       *
       * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
       */
      private void mergeSymbolStatus(com.android.aapt.Resources.SymbolStatus value) {
        if (symbolStatus_ != null &&
            symbolStatus_ != com.android.aapt.Resources.SymbolStatus.getDefaultInstance()) {
          symbolStatus_ =
            com.android.aapt.Resources.SymbolStatus.newBuilder(symbolStatus_).mergeFrom(value).buildPartial();
        } else {
          symbolStatus_ = value;
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <pre>
       * The symbol status of this entry, which includes visibility information.
       * </pre>
       *
       * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
       */
      private void clearSymbolStatus() {  symbolStatus_ = null;
        bitField0_ = (bitField0_ & ~0x00000004);
      }
  
      public static final int CONFIG_VALUE_FIELD_NUMBER = 4;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.ConfigValue> configValue_;
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      public java.util.List<com.android.aapt.Resources.ConfigValue> getConfigValueList() {
        return configValue_;
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.ConfigValueOrBuilder> 
          getConfigValueOrBuilderList() {
        return configValue_;
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      public int getConfigValueCount() {
        return configValue_.size();
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      public com.android.aapt.Resources.ConfigValue getConfigValue(int index) {
        return configValue_.get(index);
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      public com.android.aapt.Resources.ConfigValueOrBuilder getConfigValueOrBuilder(
          int index) {
        return configValue_.get(index);
      }
      private void ensureConfigValueIsMutable() {
        if (!configValue_.isModifiable()) {
          configValue_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(configValue_);
         }
      }
  
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      private void setConfigValue(
          int index, com.android.aapt.Resources.ConfigValue value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureConfigValueIsMutable();
        configValue_.set(index, value);
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      private void setConfigValue(
          int index, com.android.aapt.Resources.ConfigValue.Builder builderForValue) {
        ensureConfigValueIsMutable();
        configValue_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      private void addConfigValue(com.android.aapt.Resources.ConfigValue value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureConfigValueIsMutable();
        configValue_.add(value);
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      private void addConfigValue(
          int index, com.android.aapt.Resources.ConfigValue value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureConfigValueIsMutable();
        configValue_.add(index, value);
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      private void addConfigValue(
          com.android.aapt.Resources.ConfigValue.Builder builderForValue) {
        ensureConfigValueIsMutable();
        configValue_.add(builderForValue.build());
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      private void addConfigValue(
          int index, com.android.aapt.Resources.ConfigValue.Builder builderForValue) {
        ensureConfigValueIsMutable();
        configValue_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      private void addAllConfigValue(
          java.lang.Iterable<? extends com.android.aapt.Resources.ConfigValue> values) {
        ensureConfigValueIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, configValue_);
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      private void clearConfigValue() {
        configValue_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
       */
      private void removeConfigValue(int index) {
        ensureConfigValueIsMutable();
        configValue_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, id_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeString(2, getName());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, getSymbolStatus());
        }
        for (int i = 0; i < configValue_.size(); i++) {
          output.writeMessage(4, configValue_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, id_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(2, getName());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getSymbolStatus());
        }
        for (int i = 0; i < configValue_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, configValue_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Entry parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Entry 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 com.android.aapt.Resources.Entry parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Entry 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 com.android.aapt.Resources.Entry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Entry 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 com.android.aapt.Resources.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Entry parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Entry parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Entry 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Entry prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * An entry declaration. An entry has a full resource ID that is the combination of package ID,
       * type ID, and its own entry ID. An entry on its own has no value, but values are defined for
       * various configurations/variants.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Entry}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Entry, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Entry)
          com.android.aapt.Resources.EntryOrBuilder {
        // Construct using com.android.aapt.Resources.Entry.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
         * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
         * ID.
         * </pre>
         *
         * <code>optional uint32 id = 1;</code>
         */
        public boolean hasId() {
          return instance.hasId();
        }
        /**
         * <pre>
         * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
         * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
         * ID.
         * </pre>
         *
         * <code>optional uint32 id = 1;</code>
         */
        public int getId() {
          return instance.getId();
        }
        /**
         * <pre>
         * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
         * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
         * ID.
         * </pre>
         *
         * <code>optional uint32 id = 1;</code>
         */
        public Builder setId(int value) {
          copyOnWrite();
          instance.setId(value);
          return this;
        }
        /**
         * <pre>
         * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
         * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
         * ID.
         * </pre>
         *
         * <code>optional uint32 id = 1;</code>
         */
        public Builder clearId() {
          copyOnWrite();
          instance.clearId();
          return this;
        }
  
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public boolean hasName() {
          return instance.hasName();
        }
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>optional string name = 2;</code>
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The symbol status of this entry, which includes visibility information.
         * </pre>
         *
         * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
         */
        public boolean hasSymbolStatus() {
          return instance.hasSymbolStatus();
        }
        /**
         * <pre>
         * The symbol status of this entry, which includes visibility information.
         * </pre>
         *
         * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
         */
        public com.android.aapt.Resources.SymbolStatus getSymbolStatus() {
          return instance.getSymbolStatus();
        }
        /**
         * <pre>
         * The symbol status of this entry, which includes visibility information.
         * </pre>
         *
         * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
         */
        public Builder setSymbolStatus(com.android.aapt.Resources.SymbolStatus value) {
          copyOnWrite();
          instance.setSymbolStatus(value);
          return this;
          }
        /**
         * <pre>
         * The symbol status of this entry, which includes visibility information.
         * </pre>
         *
         * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
         */
        public Builder setSymbolStatus(
            com.android.aapt.Resources.SymbolStatus.Builder builderForValue) {
          copyOnWrite();
          instance.setSymbolStatus(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The symbol status of this entry, which includes visibility information.
         * </pre>
         *
         * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
         */
        public Builder mergeSymbolStatus(com.android.aapt.Resources.SymbolStatus value) {
          copyOnWrite();
          instance.mergeSymbolStatus(value);
          return this;
        }
        /**
         * <pre>
         * The symbol status of this entry, which includes visibility information.
         * </pre>
         *
         * <code>optional .aapt.pb.SymbolStatus symbol_status = 3;</code>
         */
        public Builder clearSymbolStatus() {  copyOnWrite();
          instance.clearSymbolStatus();
          return this;
        }
  
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public java.util.List<com.android.aapt.Resources.ConfigValue> getConfigValueList() {
          return java.util.Collections.unmodifiableList(
              instance.getConfigValueList());
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public int getConfigValueCount() {
          return instance.getConfigValueCount();
        }/**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public com.android.aapt.Resources.ConfigValue getConfigValue(int index) {
          return instance.getConfigValue(index);
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public Builder setConfigValue(
            int index, com.android.aapt.Resources.ConfigValue value) {
          copyOnWrite();
          instance.setConfigValue(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public Builder setConfigValue(
            int index, com.android.aapt.Resources.ConfigValue.Builder builderForValue) {
          copyOnWrite();
          instance.setConfigValue(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public Builder addConfigValue(com.android.aapt.Resources.ConfigValue value) {
          copyOnWrite();
          instance.addConfigValue(value);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public Builder addConfigValue(
            int index, com.android.aapt.Resources.ConfigValue value) {
          copyOnWrite();
          instance.addConfigValue(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public Builder addConfigValue(
            com.android.aapt.Resources.ConfigValue.Builder builderForValue) {
          copyOnWrite();
          instance.addConfigValue(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public Builder addConfigValue(
            int index, com.android.aapt.Resources.ConfigValue.Builder builderForValue) {
          copyOnWrite();
          instance.addConfigValue(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public Builder addAllConfigValue(
            java.lang.Iterable<? extends com.android.aapt.Resources.ConfigValue> values) {
          copyOnWrite();
          instance.addAllConfigValue(values);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public Builder clearConfigValue() {
          copyOnWrite();
          instance.clearConfigValue();
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .aapt.pb.ConfigValue config_value = 4;</code>
         */
        public Builder removeConfigValue(int index) {
          copyOnWrite();
          instance.removeConfigValue(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Entry)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Entry();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            configValue_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Entry other = (com.android.aapt.Resources.Entry) arg1;
            id_ = visitor.visitInt(
                hasId(), id_,
                other.hasId(), other.id_);
            name_ = visitor.visitString(
                hasName(), name_,
                other.hasName(), other.name_);
            symbolStatus_ = visitor.visitMessage(symbolStatus_, other.symbolStatus_);
            configValue_= visitor.visitList(configValue_, other.configValue_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    bitField0_ |= 0x00000001;
                    id_ = input.readUInt32();
                    break;
                  }
                  case 18: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000002;
                    name_ = s;
                    break;
                  }
                  case 26: {
                    com.android.aapt.Resources.SymbolStatus.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000004) == 0x00000004)) {
                      subBuilder = symbolStatus_.toBuilder();
                    }
                    symbolStatus_ = input.readMessage(com.android.aapt.Resources.SymbolStatus.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(symbolStatus_);
                      symbolStatus_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000004;
                    break;
                  }
                  case 34: {
                    if (!configValue_.isModifiable()) {
                      configValue_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(configValue_);
                    }
                    configValue_.add(
                        input.readMessage(com.android.aapt.Resources.ConfigValue.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Entry.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Entry)
      private static final com.android.aapt.Resources.Entry DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Entry();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Entry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Entry> PARSER;
  
      public static com.google.protobuf.Parser<Entry> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ConfigValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.ConfigValue)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
       */
      boolean hasConfig();
      /**
       * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
       */
      com.android.aapt.Resources.ConfigDescription getConfig();
  
      /**
       * <code>optional .aapt.pb.Value value = 2;</code>
       */
      boolean hasValue();
      /**
       * <code>optional .aapt.pb.Value value = 2;</code>
       */
      com.android.aapt.Resources.Value getValue();
    }
    /**
     * <pre>
     * A Configuration/Value pair.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.ConfigValue}
     */
    public  static final class ConfigValue extends
        com.google.protobuf.GeneratedMessageLite<
            ConfigValue, ConfigValue.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.ConfigValue)
        ConfigValueOrBuilder {
      private ConfigValue() {
      }
      private int bitField0_;
      public static final int CONFIG_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.ConfigDescription config_;
      /**
       * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
       */
      public boolean hasConfig() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
       */
      public com.android.aapt.Resources.ConfigDescription getConfig() {
        return config_ == null ? com.android.aapt.Resources.ConfigDescription.getDefaultInstance() : config_;
      }
      /**
       * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
       */
      private void setConfig(com.android.aapt.Resources.ConfigDescription value) {
        if (value == null) {
          throw new NullPointerException();
        }
        config_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
       */
      private void setConfig(
          com.android.aapt.Resources.ConfigDescription.Builder builderForValue) {
        config_ = builderForValue.build();
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
       */
      private void mergeConfig(com.android.aapt.Resources.ConfigDescription value) {
        if (config_ != null &&
            config_ != com.android.aapt.Resources.ConfigDescription.getDefaultInstance()) {
          config_ =
            com.android.aapt.Resources.ConfigDescription.newBuilder(config_).mergeFrom(value).buildPartial();
        } else {
          config_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
       */
      private void clearConfig() {  config_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int VALUE_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.Value value_;
      /**
       * <code>optional .aapt.pb.Value value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .aapt.pb.Value value = 2;</code>
       */
      public com.android.aapt.Resources.Value getValue() {
        return value_ == null ? com.android.aapt.Resources.Value.getDefaultInstance() : value_;
      }
      /**
       * <code>optional .aapt.pb.Value value = 2;</code>
       */
      private void setValue(com.android.aapt.Resources.Value value) {
        if (value == null) {
          throw new NullPointerException();
        }
        value_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <code>optional .aapt.pb.Value value = 2;</code>
       */
      private void setValue(
          com.android.aapt.Resources.Value.Builder builderForValue) {
        value_ = builderForValue.build();
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>optional .aapt.pb.Value value = 2;</code>
       */
      private void mergeValue(com.android.aapt.Resources.Value value) {
        if (value_ != null &&
            value_ != com.android.aapt.Resources.Value.getDefaultInstance()) {
          value_ =
            com.android.aapt.Resources.Value.newBuilder(value_).mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>optional .aapt.pb.Value value = 2;</code>
       */
      private void clearValue() {  value_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, getConfig());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, getValue());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getConfig());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getValue());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.ConfigValue parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ConfigValue 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 com.android.aapt.Resources.ConfigValue parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ConfigValue 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 com.android.aapt.Resources.ConfigValue parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ConfigValue 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 com.android.aapt.Resources.ConfigValue parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ConfigValue parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.ConfigValue parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ConfigValue 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.ConfigValue prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A Configuration/Value pair.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.ConfigValue}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.ConfigValue, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.ConfigValue)
          com.android.aapt.Resources.ConfigValueOrBuilder {
        // Construct using com.android.aapt.Resources.ConfigValue.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
         */
        public boolean hasConfig() {
          return instance.hasConfig();
        }
        /**
         * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
         */
        public com.android.aapt.Resources.ConfigDescription getConfig() {
          return instance.getConfig();
        }
        /**
         * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
         */
        public Builder setConfig(com.android.aapt.Resources.ConfigDescription value) {
          copyOnWrite();
          instance.setConfig(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
         */
        public Builder setConfig(
            com.android.aapt.Resources.ConfigDescription.Builder builderForValue) {
          copyOnWrite();
          instance.setConfig(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
         */
        public Builder mergeConfig(com.android.aapt.Resources.ConfigDescription value) {
          copyOnWrite();
          instance.mergeConfig(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.ConfigDescription config = 1;</code>
         */
        public Builder clearConfig() {  copyOnWrite();
          instance.clearConfig();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.Value value = 2;</code>
         */
        public boolean hasValue() {
          return instance.hasValue();
        }
        /**
         * <code>optional .aapt.pb.Value value = 2;</code>
         */
        public com.android.aapt.Resources.Value getValue() {
          return instance.getValue();
        }
        /**
         * <code>optional .aapt.pb.Value value = 2;</code>
         */
        public Builder setValue(com.android.aapt.Resources.Value value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.Value value = 2;</code>
         */
        public Builder setValue(
            com.android.aapt.Resources.Value.Builder builderForValue) {
          copyOnWrite();
          instance.setValue(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Value value = 2;</code>
         */
        public Builder mergeValue(com.android.aapt.Resources.Value value) {
          copyOnWrite();
          instance.mergeValue(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Value value = 2;</code>
         */
        public Builder clearValue() {  copyOnWrite();
          instance.clearValue();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.ConfigValue)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.ConfigValue();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.ConfigValue other = (com.android.aapt.Resources.ConfigValue) arg1;
            config_ = visitor.visitMessage(config_, other.config_);
            value_ = visitor.visitMessage(value_, other.value_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    com.android.aapt.Resources.ConfigDescription.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000001) == 0x00000001)) {
                      subBuilder = config_.toBuilder();
                    }
                    config_ = input.readMessage(com.android.aapt.Resources.ConfigDescription.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(config_);
                      config_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000001;
                    break;
                  }
                  case 18: {
                    com.android.aapt.Resources.Value.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000002) == 0x00000002)) {
                      subBuilder = value_.toBuilder();
                    }
                    value_ = input.readMessage(com.android.aapt.Resources.Value.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(value_);
                      value_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000002;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.ConfigValue.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.ConfigValue)
      private static final com.android.aapt.Resources.ConfigValue DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ConfigValue();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.ConfigValue getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<ConfigValue> PARSER;
  
      public static com.google.protobuf.Parser<ConfigValue> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Value)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 1;</code>
       */
      boolean hasSource();
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 1;</code>
       */
      com.android.aapt.Resources.Source getSource();
  
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>optional string comment = 2;</code>
       */
      boolean hasComment();
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>optional string comment = 2;</code>
       */
      java.lang.String getComment();
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>optional string comment = 2;</code>
       */
      com.google.protobuf.ByteString
          getCommentBytes();
  
      /**
       * <pre>
       * Whether the value can be overridden.
       * </pre>
       *
       * <code>optional bool weak = 3;</code>
       */
      boolean hasWeak();
      /**
       * <pre>
       * Whether the value can be overridden.
       * </pre>
       *
       * <code>optional bool weak = 3;</code>
       */
      boolean getWeak();
  
      /**
       * <pre>
       * If the value is an Item, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.Item item = 4;</code>
       */
      boolean hasItem();
      /**
       * <pre>
       * If the value is an Item, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.Item item = 4;</code>
       */
      com.android.aapt.Resources.Item getItem();
  
      /**
       * <pre>
       * If the value is a CompoundValue, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
       */
      boolean hasCompoundValue();
      /**
       * <pre>
       * If the value is a CompoundValue, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
       */
      com.android.aapt.Resources.CompoundValue getCompoundValue();
    }
    /**
     * <pre>
     * The generic meta-data for every value in a resource table.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Value}
     */
    public  static final class Value extends
        com.google.protobuf.GeneratedMessageLite<
            Value, Value.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Value)
        ValueOrBuilder {
      private Value() {
        comment_ = "";
      }
      private int bitField0_;
      public static final int SOURCE_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.Source source_;
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 1;</code>
       */
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 1;</code>
       */
      public com.android.aapt.Resources.Source getSource() {
        return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 1;</code>
       */
      private void setSource(com.android.aapt.Resources.Source value) {
        if (value == null) {
          throw new NullPointerException();
        }
        source_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 1;</code>
       */
      private void setSource(
          com.android.aapt.Resources.Source.Builder builderForValue) {
        source_ = builderForValue.build();
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 1;</code>
       */
      private void mergeSource(com.android.aapt.Resources.Source value) {
        if (source_ != null &&
            source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>optional .aapt.pb.Source source = 1;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int COMMENT_FIELD_NUMBER = 2;
      private java.lang.String comment_;
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>optional string comment = 2;</code>
       */
      public boolean hasComment() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>optional string comment = 2;</code>
       */
      public java.lang.String getComment() {
        return comment_;
      }
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>optional string comment = 2;</code>
       */
      public com.google.protobuf.ByteString
          getCommentBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(comment_);
      }
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>optional string comment = 2;</code>
       */
      private void setComment(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        comment_ = value;
      }
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>optional string comment = 2;</code>
       */
      private void clearComment() {
        bitField0_ = (bitField0_ & ~0x00000002);
        comment_ = getDefaultInstance().getComment();
      }
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>optional string comment = 2;</code>
       */
      private void setCommentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        comment_ = value.toStringUtf8();
      }
  
      public static final int WEAK_FIELD_NUMBER = 3;
      private boolean weak_;
      /**
       * <pre>
       * Whether the value can be overridden.
       * </pre>
       *
       * <code>optional bool weak = 3;</code>
       */
      public boolean hasWeak() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * Whether the value can be overridden.
       * </pre>
       *
       * <code>optional bool weak = 3;</code>
       */
      public boolean getWeak() {
        return weak_;
      }
      /**
       * <pre>
       * Whether the value can be overridden.
       * </pre>
       *
       * <code>optional bool weak = 3;</code>
       */
      private void setWeak(boolean value) {
        bitField0_ |= 0x00000004;
        weak_ = value;
      }
      /**
       * <pre>
       * Whether the value can be overridden.
       * </pre>
       *
       * <code>optional bool weak = 3;</code>
       */
      private void clearWeak() {
        bitField0_ = (bitField0_ & ~0x00000004);
        weak_ = false;
      }
  
      public static final int ITEM_FIELD_NUMBER = 4;
      private com.android.aapt.Resources.Item item_;
      /**
       * <pre>
       * If the value is an Item, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.Item item = 4;</code>
       */
      public boolean hasItem() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * If the value is an Item, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.Item item = 4;</code>
       */
      public com.android.aapt.Resources.Item getItem() {
        return item_ == null ? com.android.aapt.Resources.Item.getDefaultInstance() : item_;
      }
      /**
       * <pre>
       * If the value is an Item, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.Item item = 4;</code>
       */
      private void setItem(com.android.aapt.Resources.Item value) {
        if (value == null) {
          throw new NullPointerException();
        }
        item_ = value;
        bitField0_ |= 0x00000008;
        }
      /**
       * <pre>
       * If the value is an Item, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.Item item = 4;</code>
       */
      private void setItem(
          com.android.aapt.Resources.Item.Builder builderForValue) {
        item_ = builderForValue.build();
        bitField0_ |= 0x00000008;
      }
      /**
       * <pre>
       * If the value is an Item, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.Item item = 4;</code>
       */
      private void mergeItem(com.android.aapt.Resources.Item value) {
        if (item_ != null &&
            item_ != com.android.aapt.Resources.Item.getDefaultInstance()) {
          item_ =
            com.android.aapt.Resources.Item.newBuilder(item_).mergeFrom(value).buildPartial();
        } else {
          item_ = value;
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <pre>
       * If the value is an Item, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.Item item = 4;</code>
       */
      private void clearItem() {  item_ = null;
        bitField0_ = (bitField0_ & ~0x00000008);
      }
  
      public static final int COMPOUND_VALUE_FIELD_NUMBER = 5;
      private com.android.aapt.Resources.CompoundValue compoundValue_;
      /**
       * <pre>
       * If the value is a CompoundValue, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
       */
      public boolean hasCompoundValue() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       * If the value is a CompoundValue, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
       */
      public com.android.aapt.Resources.CompoundValue getCompoundValue() {
        return compoundValue_ == null ? com.android.aapt.Resources.CompoundValue.getDefaultInstance() : compoundValue_;
      }
      /**
       * <pre>
       * If the value is a CompoundValue, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
       */
      private void setCompoundValue(com.android.aapt.Resources.CompoundValue value) {
        if (value == null) {
          throw new NullPointerException();
        }
        compoundValue_ = value;
        bitField0_ |= 0x00000010;
        }
      /**
       * <pre>
       * If the value is a CompoundValue, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
       */
      private void setCompoundValue(
          com.android.aapt.Resources.CompoundValue.Builder builderForValue) {
        compoundValue_ = builderForValue.build();
        bitField0_ |= 0x00000010;
      }
      /**
       * <pre>
       * If the value is a CompoundValue, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
       */
      private void mergeCompoundValue(com.android.aapt.Resources.CompoundValue value) {
        if (compoundValue_ != null &&
            compoundValue_ != com.android.aapt.Resources.CompoundValue.getDefaultInstance()) {
          compoundValue_ =
            com.android.aapt.Resources.CompoundValue.newBuilder(compoundValue_).mergeFrom(value).buildPartial();
        } else {
          compoundValue_ = value;
        }
        bitField0_ |= 0x00000010;
      }
      /**
       * <pre>
       * If the value is a CompoundValue, this is set.
       * </pre>
       *
       * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
       */
      private void clearCompoundValue() {  compoundValue_ = null;
        bitField0_ = (bitField0_ & ~0x00000010);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, getSource());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeString(2, getComment());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBool(3, weak_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(4, getItem());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, getCompoundValue());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getSource());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(2, getComment());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(3, weak_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getItem());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getCompoundValue());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Value parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Value 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 com.android.aapt.Resources.Value parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Value 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 com.android.aapt.Resources.Value parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Value 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 com.android.aapt.Resources.Value parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Value parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Value parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Value 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Value prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * The generic meta-data for every value in a resource table.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Value}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Value, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Value)
          com.android.aapt.Resources.ValueOrBuilder {
        // Construct using com.android.aapt.Resources.Value.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public com.android.aapt.Resources.Source getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public Builder setSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue);
          return this;
        }
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public boolean hasComment() {
          return instance.hasComment();
        }
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public java.lang.String getComment() {
          return instance.getComment();
        }
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return instance.getCommentBytes();
        }
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public Builder setComment(
            java.lang.String value) {
          copyOnWrite();
          instance.setComment(value);
          return this;
        }
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public Builder clearComment() {
          copyOnWrite();
          instance.clearComment();
          return this;
        }
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public Builder setCommentBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setCommentBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Whether the value can be overridden.
         * </pre>
         *
         * <code>optional bool weak = 3;</code>
         */
        public boolean hasWeak() {
          return instance.hasWeak();
        }
        /**
         * <pre>
         * Whether the value can be overridden.
         * </pre>
         *
         * <code>optional bool weak = 3;</code>
         */
        public boolean getWeak() {
          return instance.getWeak();
        }
        /**
         * <pre>
         * Whether the value can be overridden.
         * </pre>
         *
         * <code>optional bool weak = 3;</code>
         */
        public Builder setWeak(boolean value) {
          copyOnWrite();
          instance.setWeak(value);
          return this;
        }
        /**
         * <pre>
         * Whether the value can be overridden.
         * </pre>
         *
         * <code>optional bool weak = 3;</code>
         */
        public Builder clearWeak() {
          copyOnWrite();
          instance.clearWeak();
          return this;
        }
  
        /**
         * <pre>
         * If the value is an Item, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        public boolean hasItem() {
          return instance.hasItem();
        }
        /**
         * <pre>
         * If the value is an Item, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        public com.android.aapt.Resources.Item getItem() {
          return instance.getItem();
        }
        /**
         * <pre>
         * If the value is an Item, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        public Builder setItem(com.android.aapt.Resources.Item value) {
          copyOnWrite();
          instance.setItem(value);
          return this;
          }
        /**
         * <pre>
         * If the value is an Item, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        public Builder setItem(
            com.android.aapt.Resources.Item.Builder builderForValue) {
          copyOnWrite();
          instance.setItem(builderForValue);
          return this;
        }
        /**
         * <pre>
         * If the value is an Item, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        public Builder mergeItem(com.android.aapt.Resources.Item value) {
          copyOnWrite();
          instance.mergeItem(value);
          return this;
        }
        /**
         * <pre>
         * If the value is an Item, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        public Builder clearItem() {  copyOnWrite();
          instance.clearItem();
          return this;
        }
  
        /**
         * <pre>
         * If the value is a CompoundValue, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
         */
        public boolean hasCompoundValue() {
          return instance.hasCompoundValue();
        }
        /**
         * <pre>
         * If the value is a CompoundValue, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
         */
        public com.android.aapt.Resources.CompoundValue getCompoundValue() {
          return instance.getCompoundValue();
        }
        /**
         * <pre>
         * If the value is a CompoundValue, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
         */
        public Builder setCompoundValue(com.android.aapt.Resources.CompoundValue value) {
          copyOnWrite();
          instance.setCompoundValue(value);
          return this;
          }
        /**
         * <pre>
         * If the value is a CompoundValue, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
         */
        public Builder setCompoundValue(
            com.android.aapt.Resources.CompoundValue.Builder builderForValue) {
          copyOnWrite();
          instance.setCompoundValue(builderForValue);
          return this;
        }
        /**
         * <pre>
         * If the value is a CompoundValue, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
         */
        public Builder mergeCompoundValue(com.android.aapt.Resources.CompoundValue value) {
          copyOnWrite();
          instance.mergeCompoundValue(value);
          return this;
        }
        /**
         * <pre>
         * If the value is a CompoundValue, this is set.
         * </pre>
         *
         * <code>optional .aapt.pb.CompoundValue compound_value = 5;</code>
         */
        public Builder clearCompoundValue() {  copyOnWrite();
          instance.clearCompoundValue();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Value)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Value();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Value other = (com.android.aapt.Resources.Value) arg1;
            source_ = visitor.visitMessage(source_, other.source_);
            comment_ = visitor.visitString(
                hasComment(), comment_,
                other.hasComment(), other.comment_);
            weak_ = visitor.visitBoolean(
                hasWeak(), weak_,
                other.hasWeak(), other.weak_);
            item_ = visitor.visitMessage(item_, other.item_);
            compoundValue_ = visitor.visitMessage(compoundValue_, other.compoundValue_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    com.android.aapt.Resources.Source.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000001) == 0x00000001)) {
                      subBuilder = source_.toBuilder();
                    }
                    source_ = input.readMessage(com.android.aapt.Resources.Source.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(source_);
                      source_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000001;
                    break;
                  }
                  case 18: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000002;
                    comment_ = s;
                    break;
                  }
                  case 24: {
                    bitField0_ |= 0x00000004;
                    weak_ = input.readBool();
                    break;
                  }
                  case 34: {
                    com.android.aapt.Resources.Item.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000008) == 0x00000008)) {
                      subBuilder = item_.toBuilder();
                    }
                    item_ = input.readMessage(com.android.aapt.Resources.Item.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(item_);
                      item_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000008;
                    break;
                  }
                  case 42: {
                    com.android.aapt.Resources.CompoundValue.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000010) == 0x00000010)) {
                      subBuilder = compoundValue_.toBuilder();
                    }
                    compoundValue_ = input.readMessage(com.android.aapt.Resources.CompoundValue.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(compoundValue_);
                      compoundValue_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000010;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Value.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Value)
      private static final com.android.aapt.Resources.Value DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Value();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Value getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Value> PARSER;
  
      public static com.google.protobuf.Parser<Value> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ItemOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Item)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional .aapt.pb.Reference ref = 1;</code>
       */
      boolean hasRef();
      /**
       * <code>optional .aapt.pb.Reference ref = 1;</code>
       */
      com.android.aapt.Resources.Reference getRef();
  
      /**
       * <code>optional .aapt.pb.String str = 2;</code>
       */
      boolean hasStr();
      /**
       * <code>optional .aapt.pb.String str = 2;</code>
       */
      com.android.aapt.Resources.String getStr();
  
      /**
       * <code>optional .aapt.pb.RawString raw_str = 3;</code>
       */
      boolean hasRawStr();
      /**
       * <code>optional .aapt.pb.RawString raw_str = 3;</code>
       */
      com.android.aapt.Resources.RawString getRawStr();
  
      /**
       * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
       */
      boolean hasStyledStr();
      /**
       * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
       */
      com.android.aapt.Resources.StyledString getStyledStr();
  
      /**
       * <code>optional .aapt.pb.FileReference file = 5;</code>
       */
      boolean hasFile();
      /**
       * <code>optional .aapt.pb.FileReference file = 5;</code>
       */
      com.android.aapt.Resources.FileReference getFile();
  
      /**
       * <code>optional .aapt.pb.Id id = 6;</code>
       */
      boolean hasId();
      /**
       * <code>optional .aapt.pb.Id id = 6;</code>
       */
      com.android.aapt.Resources.Id getId();
  
      /**
       * <code>optional .aapt.pb.Primitive prim = 7;</code>
       */
      boolean hasPrim();
      /**
       * <code>optional .aapt.pb.Primitive prim = 7;</code>
       */
      com.android.aapt.Resources.Primitive getPrim();
    }
    /**
     * <pre>
     * An Item is an abstract type. It represents a value that can appear inline in many places, such
     * as XML attribute values or on the right hand side of style attribute definitions. The concrete
     * type is one of the types below. Only one can be set.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Item}
     */
    public  static final class Item extends
        com.google.protobuf.GeneratedMessageLite<
            Item, Item.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Item)
        ItemOrBuilder {
      private Item() {
      }
      private int bitField0_;
      public static final int REF_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.Reference ref_;
      /**
       * <code>optional .aapt.pb.Reference ref = 1;</code>
       */
      public boolean hasRef() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .aapt.pb.Reference ref = 1;</code>
       */
      public com.android.aapt.Resources.Reference getRef() {
        return ref_ == null ? com.android.aapt.Resources.Reference.getDefaultInstance() : ref_;
      }
      /**
       * <code>optional .aapt.pb.Reference ref = 1;</code>
       */
      private void setRef(com.android.aapt.Resources.Reference value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ref_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <code>optional .aapt.pb.Reference ref = 1;</code>
       */
      private void setRef(
          com.android.aapt.Resources.Reference.Builder builderForValue) {
        ref_ = builderForValue.build();
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>optional .aapt.pb.Reference ref = 1;</code>
       */
      private void mergeRef(com.android.aapt.Resources.Reference value) {
        if (ref_ != null &&
            ref_ != com.android.aapt.Resources.Reference.getDefaultInstance()) {
          ref_ =
            com.android.aapt.Resources.Reference.newBuilder(ref_).mergeFrom(value).buildPartial();
        } else {
          ref_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>optional .aapt.pb.Reference ref = 1;</code>
       */
      private void clearRef() {  ref_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int STR_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.String str_;
      /**
       * <code>optional .aapt.pb.String str = 2;</code>
       */
      public boolean hasStr() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .aapt.pb.String str = 2;</code>
       */
      public com.android.aapt.Resources.String getStr() {
        return str_ == null ? com.android.aapt.Resources.String.getDefaultInstance() : str_;
      }
      /**
       * <code>optional .aapt.pb.String str = 2;</code>
       */
      private void setStr(com.android.aapt.Resources.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        str_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <code>optional .aapt.pb.String str = 2;</code>
       */
      private void setStr(
          com.android.aapt.Resources.String.Builder builderForValue) {
        str_ = builderForValue.build();
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>optional .aapt.pb.String str = 2;</code>
       */
      private void mergeStr(com.android.aapt.Resources.String value) {
        if (str_ != null &&
            str_ != com.android.aapt.Resources.String.getDefaultInstance()) {
          str_ =
            com.android.aapt.Resources.String.newBuilder(str_).mergeFrom(value).buildPartial();
        } else {
          str_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>optional .aapt.pb.String str = 2;</code>
       */
      private void clearStr() {  str_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public static final int RAW_STR_FIELD_NUMBER = 3;
      private com.android.aapt.Resources.RawString rawStr_;
      /**
       * <code>optional .aapt.pb.RawString raw_str = 3;</code>
       */
      public boolean hasRawStr() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .aapt.pb.RawString raw_str = 3;</code>
       */
      public com.android.aapt.Resources.RawString getRawStr() {
        return rawStr_ == null ? com.android.aapt.Resources.RawString.getDefaultInstance() : rawStr_;
      }
      /**
       * <code>optional .aapt.pb.RawString raw_str = 3;</code>
       */
      private void setRawStr(com.android.aapt.Resources.RawString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        rawStr_ = value;
        bitField0_ |= 0x00000004;
        }
      /**
       * <code>optional .aapt.pb.RawString raw_str = 3;</code>
       */
      private void setRawStr(
          com.android.aapt.Resources.RawString.Builder builderForValue) {
        rawStr_ = builderForValue.build();
        bitField0_ |= 0x00000004;
      }
      /**
       * <code>optional .aapt.pb.RawString raw_str = 3;</code>
       */
      private void mergeRawStr(com.android.aapt.Resources.RawString value) {
        if (rawStr_ != null &&
            rawStr_ != com.android.aapt.Resources.RawString.getDefaultInstance()) {
          rawStr_ =
            com.android.aapt.Resources.RawString.newBuilder(rawStr_).mergeFrom(value).buildPartial();
        } else {
          rawStr_ = value;
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <code>optional .aapt.pb.RawString raw_str = 3;</code>
       */
      private void clearRawStr() {  rawStr_ = null;
        bitField0_ = (bitField0_ & ~0x00000004);
      }
  
      public static final int STYLED_STR_FIELD_NUMBER = 4;
      private com.android.aapt.Resources.StyledString styledStr_;
      /**
       * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
       */
      public boolean hasStyledStr() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
       */
      public com.android.aapt.Resources.StyledString getStyledStr() {
        return styledStr_ == null ? com.android.aapt.Resources.StyledString.getDefaultInstance() : styledStr_;
      }
      /**
       * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
       */
      private void setStyledStr(com.android.aapt.Resources.StyledString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        styledStr_ = value;
        bitField0_ |= 0x00000008;
        }
      /**
       * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
       */
      private void setStyledStr(
          com.android.aapt.Resources.StyledString.Builder builderForValue) {
        styledStr_ = builderForValue.build();
        bitField0_ |= 0x00000008;
      }
      /**
       * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
       */
      private void mergeStyledStr(com.android.aapt.Resources.StyledString value) {
        if (styledStr_ != null &&
            styledStr_ != com.android.aapt.Resources.StyledString.getDefaultInstance()) {
          styledStr_ =
            com.android.aapt.Resources.StyledString.newBuilder(styledStr_).mergeFrom(value).buildPartial();
        } else {
          styledStr_ = value;
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
       */
      private void clearStyledStr() {  styledStr_ = null;
        bitField0_ = (bitField0_ & ~0x00000008);
      }
  
      public static final int FILE_FIELD_NUMBER = 5;
      private com.android.aapt.Resources.FileReference file_;
      /**
       * <code>optional .aapt.pb.FileReference file = 5;</code>
       */
      public boolean hasFile() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .aapt.pb.FileReference file = 5;</code>
       */
      public com.android.aapt.Resources.FileReference getFile() {
        return file_ == null ? com.android.aapt.Resources.FileReference.getDefaultInstance() : file_;
      }
      /**
       * <code>optional .aapt.pb.FileReference file = 5;</code>
       */
      private void setFile(com.android.aapt.Resources.FileReference value) {
        if (value == null) {
          throw new NullPointerException();
        }
        file_ = value;
        bitField0_ |= 0x00000010;
        }
      /**
       * <code>optional .aapt.pb.FileReference file = 5;</code>
       */
      private void setFile(
          com.android.aapt.Resources.FileReference.Builder builderForValue) {
        file_ = builderForValue.build();
        bitField0_ |= 0x00000010;
      }
      /**
       * <code>optional .aapt.pb.FileReference file = 5;</code>
       */
      private void mergeFile(com.android.aapt.Resources.FileReference value) {
        if (file_ != null &&
            file_ != com.android.aapt.Resources.FileReference.getDefaultInstance()) {
          file_ =
            com.android.aapt.Resources.FileReference.newBuilder(file_).mergeFrom(value).buildPartial();
        } else {
          file_ = value;
        }
        bitField0_ |= 0x00000010;
      }
      /**
       * <code>optional .aapt.pb.FileReference file = 5;</code>
       */
      private void clearFile() {  file_ = null;
        bitField0_ = (bitField0_ & ~0x00000010);
      }
  
      public static final int ID_FIELD_NUMBER = 6;
      private com.android.aapt.Resources.Id id_;
      /**
       * <code>optional .aapt.pb.Id id = 6;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional .aapt.pb.Id id = 6;</code>
       */
      public com.android.aapt.Resources.Id getId() {
        return id_ == null ? com.android.aapt.Resources.Id.getDefaultInstance() : id_;
      }
      /**
       * <code>optional .aapt.pb.Id id = 6;</code>
       */
      private void setId(com.android.aapt.Resources.Id value) {
        if (value == null) {
          throw new NullPointerException();
        }
        id_ = value;
        bitField0_ |= 0x00000020;
        }
      /**
       * <code>optional .aapt.pb.Id id = 6;</code>
       */
      private void setId(
          com.android.aapt.Resources.Id.Builder builderForValue) {
        id_ = builderForValue.build();
        bitField0_ |= 0x00000020;
      }
      /**
       * <code>optional .aapt.pb.Id id = 6;</code>
       */
      private void mergeId(com.android.aapt.Resources.Id value) {
        if (id_ != null &&
            id_ != com.android.aapt.Resources.Id.getDefaultInstance()) {
          id_ =
            com.android.aapt.Resources.Id.newBuilder(id_).mergeFrom(value).buildPartial();
        } else {
          id_ = value;
        }
        bitField0_ |= 0x00000020;
      }
      /**
       * <code>optional .aapt.pb.Id id = 6;</code>
       */
      private void clearId() {  id_ = null;
        bitField0_ = (bitField0_ & ~0x00000020);
      }
  
      public static final int PRIM_FIELD_NUMBER = 7;
      private com.android.aapt.Resources.Primitive prim_;
      /**
       * <code>optional .aapt.pb.Primitive prim = 7;</code>
       */
      public boolean hasPrim() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional .aapt.pb.Primitive prim = 7;</code>
       */
      public com.android.aapt.Resources.Primitive getPrim() {
        return prim_ == null ? com.android.aapt.Resources.Primitive.getDefaultInstance() : prim_;
      }
      /**
       * <code>optional .aapt.pb.Primitive prim = 7;</code>
       */
      private void setPrim(com.android.aapt.Resources.Primitive value) {
        if (value == null) {
          throw new NullPointerException();
        }
        prim_ = value;
        bitField0_ |= 0x00000040;
        }
      /**
       * <code>optional .aapt.pb.Primitive prim = 7;</code>
       */
      private void setPrim(
          com.android.aapt.Resources.Primitive.Builder builderForValue) {
        prim_ = builderForValue.build();
        bitField0_ |= 0x00000040;
      }
      /**
       * <code>optional .aapt.pb.Primitive prim = 7;</code>
       */
      private void mergePrim(com.android.aapt.Resources.Primitive value) {
        if (prim_ != null &&
            prim_ != com.android.aapt.Resources.Primitive.getDefaultInstance()) {
          prim_ =
            com.android.aapt.Resources.Primitive.newBuilder(prim_).mergeFrom(value).buildPartial();
        } else {
          prim_ = value;
        }
        bitField0_ |= 0x00000040;
      }
      /**
       * <code>optional .aapt.pb.Primitive prim = 7;</code>
       */
      private void clearPrim() {  prim_ = null;
        bitField0_ = (bitField0_ & ~0x00000040);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, getRef());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, getStr());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, getRawStr());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(4, getStyledStr());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, getFile());
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeMessage(6, getId());
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeMessage(7, getPrim());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getRef());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getStr());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getRawStr());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getStyledStr());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getFile());
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, getId());
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, getPrim());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Item parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Item 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 com.android.aapt.Resources.Item parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Item 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 com.android.aapt.Resources.Item parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Item 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 com.android.aapt.Resources.Item parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Item parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Item parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Item 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Item prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * An Item is an abstract type. It represents a value that can appear inline in many places, such
       * as XML attribute values or on the right hand side of style attribute definitions. The concrete
       * type is one of the types below. Only one can be set.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Item}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Item, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Item)
          com.android.aapt.Resources.ItemOrBuilder {
        // Construct using com.android.aapt.Resources.Item.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional .aapt.pb.Reference ref = 1;</code>
         */
        public boolean hasRef() {
          return instance.hasRef();
        }
        /**
         * <code>optional .aapt.pb.Reference ref = 1;</code>
         */
        public com.android.aapt.Resources.Reference getRef() {
          return instance.getRef();
        }
        /**
         * <code>optional .aapt.pb.Reference ref = 1;</code>
         */
        public Builder setRef(com.android.aapt.Resources.Reference value) {
          copyOnWrite();
          instance.setRef(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.Reference ref = 1;</code>
         */
        public Builder setRef(
            com.android.aapt.Resources.Reference.Builder builderForValue) {
          copyOnWrite();
          instance.setRef(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Reference ref = 1;</code>
         */
        public Builder mergeRef(com.android.aapt.Resources.Reference value) {
          copyOnWrite();
          instance.mergeRef(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Reference ref = 1;</code>
         */
        public Builder clearRef() {  copyOnWrite();
          instance.clearRef();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.String str = 2;</code>
         */
        public boolean hasStr() {
          return instance.hasStr();
        }
        /**
         * <code>optional .aapt.pb.String str = 2;</code>
         */
        public com.android.aapt.Resources.String getStr() {
          return instance.getStr();
        }
        /**
         * <code>optional .aapt.pb.String str = 2;</code>
         */
        public Builder setStr(com.android.aapt.Resources.String value) {
          copyOnWrite();
          instance.setStr(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.String str = 2;</code>
         */
        public Builder setStr(
            com.android.aapt.Resources.String.Builder builderForValue) {
          copyOnWrite();
          instance.setStr(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.String str = 2;</code>
         */
        public Builder mergeStr(com.android.aapt.Resources.String value) {
          copyOnWrite();
          instance.mergeStr(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.String str = 2;</code>
         */
        public Builder clearStr() {  copyOnWrite();
          instance.clearStr();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.RawString raw_str = 3;</code>
         */
        public boolean hasRawStr() {
          return instance.hasRawStr();
        }
        /**
         * <code>optional .aapt.pb.RawString raw_str = 3;</code>
         */
        public com.android.aapt.Resources.RawString getRawStr() {
          return instance.getRawStr();
        }
        /**
         * <code>optional .aapt.pb.RawString raw_str = 3;</code>
         */
        public Builder setRawStr(com.android.aapt.Resources.RawString value) {
          copyOnWrite();
          instance.setRawStr(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.RawString raw_str = 3;</code>
         */
        public Builder setRawStr(
            com.android.aapt.Resources.RawString.Builder builderForValue) {
          copyOnWrite();
          instance.setRawStr(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.RawString raw_str = 3;</code>
         */
        public Builder mergeRawStr(com.android.aapt.Resources.RawString value) {
          copyOnWrite();
          instance.mergeRawStr(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.RawString raw_str = 3;</code>
         */
        public Builder clearRawStr() {  copyOnWrite();
          instance.clearRawStr();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
         */
        public boolean hasStyledStr() {
          return instance.hasStyledStr();
        }
        /**
         * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
         */
        public com.android.aapt.Resources.StyledString getStyledStr() {
          return instance.getStyledStr();
        }
        /**
         * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
         */
        public Builder setStyledStr(com.android.aapt.Resources.StyledString value) {
          copyOnWrite();
          instance.setStyledStr(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
         */
        public Builder setStyledStr(
            com.android.aapt.Resources.StyledString.Builder builderForValue) {
          copyOnWrite();
          instance.setStyledStr(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
         */
        public Builder mergeStyledStr(com.android.aapt.Resources.StyledString value) {
          copyOnWrite();
          instance.mergeStyledStr(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.StyledString styled_str = 4;</code>
         */
        public Builder clearStyledStr() {  copyOnWrite();
          instance.clearStyledStr();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.FileReference file = 5;</code>
         */
        public boolean hasFile() {
          return instance.hasFile();
        }
        /**
         * <code>optional .aapt.pb.FileReference file = 5;</code>
         */
        public com.android.aapt.Resources.FileReference getFile() {
          return instance.getFile();
        }
        /**
         * <code>optional .aapt.pb.FileReference file = 5;</code>
         */
        public Builder setFile(com.android.aapt.Resources.FileReference value) {
          copyOnWrite();
          instance.setFile(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.FileReference file = 5;</code>
         */
        public Builder setFile(
            com.android.aapt.Resources.FileReference.Builder builderForValue) {
          copyOnWrite();
          instance.setFile(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.FileReference file = 5;</code>
         */
        public Builder mergeFile(com.android.aapt.Resources.FileReference value) {
          copyOnWrite();
          instance.mergeFile(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.FileReference file = 5;</code>
         */
        public Builder clearFile() {  copyOnWrite();
          instance.clearFile();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.Id id = 6;</code>
         */
        public boolean hasId() {
          return instance.hasId();
        }
        /**
         * <code>optional .aapt.pb.Id id = 6;</code>
         */
        public com.android.aapt.Resources.Id getId() {
          return instance.getId();
        }
        /**
         * <code>optional .aapt.pb.Id id = 6;</code>
         */
        public Builder setId(com.android.aapt.Resources.Id value) {
          copyOnWrite();
          instance.setId(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.Id id = 6;</code>
         */
        public Builder setId(
            com.android.aapt.Resources.Id.Builder builderForValue) {
          copyOnWrite();
          instance.setId(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Id id = 6;</code>
         */
        public Builder mergeId(com.android.aapt.Resources.Id value) {
          copyOnWrite();
          instance.mergeId(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Id id = 6;</code>
         */
        public Builder clearId() {  copyOnWrite();
          instance.clearId();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.Primitive prim = 7;</code>
         */
        public boolean hasPrim() {
          return instance.hasPrim();
        }
        /**
         * <code>optional .aapt.pb.Primitive prim = 7;</code>
         */
        public com.android.aapt.Resources.Primitive getPrim() {
          return instance.getPrim();
        }
        /**
         * <code>optional .aapt.pb.Primitive prim = 7;</code>
         */
        public Builder setPrim(com.android.aapt.Resources.Primitive value) {
          copyOnWrite();
          instance.setPrim(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.Primitive prim = 7;</code>
         */
        public Builder setPrim(
            com.android.aapt.Resources.Primitive.Builder builderForValue) {
          copyOnWrite();
          instance.setPrim(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Primitive prim = 7;</code>
         */
        public Builder mergePrim(com.android.aapt.Resources.Primitive value) {
          copyOnWrite();
          instance.mergePrim(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Primitive prim = 7;</code>
         */
        public Builder clearPrim() {  copyOnWrite();
          instance.clearPrim();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Item)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Item();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Item other = (com.android.aapt.Resources.Item) arg1;
            ref_ = visitor.visitMessage(ref_, other.ref_);
            str_ = visitor.visitMessage(str_, other.str_);
            rawStr_ = visitor.visitMessage(rawStr_, other.rawStr_);
            styledStr_ = visitor.visitMessage(styledStr_, other.styledStr_);
            file_ = visitor.visitMessage(file_, other.file_);
            id_ = visitor.visitMessage(id_, other.id_);
            prim_ = visitor.visitMessage(prim_, other.prim_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    com.android.aapt.Resources.Reference.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000001) == 0x00000001)) {
                      subBuilder = ref_.toBuilder();
                    }
                    ref_ = input.readMessage(com.android.aapt.Resources.Reference.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(ref_);
                      ref_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000001;
                    break;
                  }
                  case 18: {
                    com.android.aapt.Resources.String.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000002) == 0x00000002)) {
                      subBuilder = str_.toBuilder();
                    }
                    str_ = input.readMessage(com.android.aapt.Resources.String.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(str_);
                      str_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000002;
                    break;
                  }
                  case 26: {
                    com.android.aapt.Resources.RawString.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000004) == 0x00000004)) {
                      subBuilder = rawStr_.toBuilder();
                    }
                    rawStr_ = input.readMessage(com.android.aapt.Resources.RawString.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(rawStr_);
                      rawStr_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000004;
                    break;
                  }
                  case 34: {
                    com.android.aapt.Resources.StyledString.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000008) == 0x00000008)) {
                      subBuilder = styledStr_.toBuilder();
                    }
                    styledStr_ = input.readMessage(com.android.aapt.Resources.StyledString.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(styledStr_);
                      styledStr_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000008;
                    break;
                  }
                  case 42: {
                    com.android.aapt.Resources.FileReference.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000010) == 0x00000010)) {
                      subBuilder = file_.toBuilder();
                    }
                    file_ = input.readMessage(com.android.aapt.Resources.FileReference.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(file_);
                      file_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000010;
                    break;
                  }
                  case 50: {
                    com.android.aapt.Resources.Id.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000020) == 0x00000020)) {
                      subBuilder = id_.toBuilder();
                    }
                    id_ = input.readMessage(com.android.aapt.Resources.Id.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(id_);
                      id_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000020;
                    break;
                  }
                  case 58: {
                    com.android.aapt.Resources.Primitive.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000040) == 0x00000040)) {
                      subBuilder = prim_.toBuilder();
                    }
                    prim_ = input.readMessage(com.android.aapt.Resources.Primitive.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(prim_);
                      prim_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000040;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Item.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Item)
      private static final com.android.aapt.Resources.Item DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Item();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Item getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Item> PARSER;
  
      public static com.google.protobuf.Parser<Item> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface CompoundValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.CompoundValue)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional .aapt.pb.Attribute attr = 1;</code>
       */
      boolean hasAttr();
      /**
       * <code>optional .aapt.pb.Attribute attr = 1;</code>
       */
      com.android.aapt.Resources.Attribute getAttr();
  
      /**
       * <code>optional .aapt.pb.Style style = 2;</code>
       */
      boolean hasStyle();
      /**
       * <code>optional .aapt.pb.Style style = 2;</code>
       */
      com.android.aapt.Resources.Style getStyle();
  
      /**
       * <code>optional .aapt.pb.Styleable styleable = 3;</code>
       */
      boolean hasStyleable();
      /**
       * <code>optional .aapt.pb.Styleable styleable = 3;</code>
       */
      com.android.aapt.Resources.Styleable getStyleable();
  
      /**
       * <code>optional .aapt.pb.Array array = 4;</code>
       */
      boolean hasArray();
      /**
       * <code>optional .aapt.pb.Array array = 4;</code>
       */
      com.android.aapt.Resources.Array getArray();
  
      /**
       * <code>optional .aapt.pb.Plural plural = 5;</code>
       */
      boolean hasPlural();
      /**
       * <code>optional .aapt.pb.Plural plural = 5;</code>
       */
      com.android.aapt.Resources.Plural getPlural();
    }
    /**
     * <pre>
     * A CompoundValue is an abstract type. It represents a value that is a made of other values.
     * These can only usually appear as top-level resources. The concrete type is one of the types
     * below. Only one can be set.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.CompoundValue}
     */
    public  static final class CompoundValue extends
        com.google.protobuf.GeneratedMessageLite<
            CompoundValue, CompoundValue.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.CompoundValue)
        CompoundValueOrBuilder {
      private CompoundValue() {
      }
      private int bitField0_;
      public static final int ATTR_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.Attribute attr_;
      /**
       * <code>optional .aapt.pb.Attribute attr = 1;</code>
       */
      public boolean hasAttr() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .aapt.pb.Attribute attr = 1;</code>
       */
      public com.android.aapt.Resources.Attribute getAttr() {
        return attr_ == null ? com.android.aapt.Resources.Attribute.getDefaultInstance() : attr_;
      }
      /**
       * <code>optional .aapt.pb.Attribute attr = 1;</code>
       */
      private void setAttr(com.android.aapt.Resources.Attribute value) {
        if (value == null) {
          throw new NullPointerException();
        }
        attr_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <code>optional .aapt.pb.Attribute attr = 1;</code>
       */
      private void setAttr(
          com.android.aapt.Resources.Attribute.Builder builderForValue) {
        attr_ = builderForValue.build();
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>optional .aapt.pb.Attribute attr = 1;</code>
       */
      private void mergeAttr(com.android.aapt.Resources.Attribute value) {
        if (attr_ != null &&
            attr_ != com.android.aapt.Resources.Attribute.getDefaultInstance()) {
          attr_ =
            com.android.aapt.Resources.Attribute.newBuilder(attr_).mergeFrom(value).buildPartial();
        } else {
          attr_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>optional .aapt.pb.Attribute attr = 1;</code>
       */
      private void clearAttr() {  attr_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int STYLE_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.Style style_;
      /**
       * <code>optional .aapt.pb.Style style = 2;</code>
       */
      public boolean hasStyle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .aapt.pb.Style style = 2;</code>
       */
      public com.android.aapt.Resources.Style getStyle() {
        return style_ == null ? com.android.aapt.Resources.Style.getDefaultInstance() : style_;
      }
      /**
       * <code>optional .aapt.pb.Style style = 2;</code>
       */
      private void setStyle(com.android.aapt.Resources.Style value) {
        if (value == null) {
          throw new NullPointerException();
        }
        style_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <code>optional .aapt.pb.Style style = 2;</code>
       */
      private void setStyle(
          com.android.aapt.Resources.Style.Builder builderForValue) {
        style_ = builderForValue.build();
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>optional .aapt.pb.Style style = 2;</code>
       */
      private void mergeStyle(com.android.aapt.Resources.Style value) {
        if (style_ != null &&
            style_ != com.android.aapt.Resources.Style.getDefaultInstance()) {
          style_ =
            com.android.aapt.Resources.Style.newBuilder(style_).mergeFrom(value).buildPartial();
        } else {
          style_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>optional .aapt.pb.Style style = 2;</code>
       */
      private void clearStyle() {  style_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public static final int STYLEABLE_FIELD_NUMBER = 3;
      private com.android.aapt.Resources.Styleable styleable_;
      /**
       * <code>optional .aapt.pb.Styleable styleable = 3;</code>
       */
      public boolean hasStyleable() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .aapt.pb.Styleable styleable = 3;</code>
       */
      public com.android.aapt.Resources.Styleable getStyleable() {
        return styleable_ == null ? com.android.aapt.Resources.Styleable.getDefaultInstance() : styleable_;
      }
      /**
       * <code>optional .aapt.pb.Styleable styleable = 3;</code>
       */
      private void setStyleable(com.android.aapt.Resources.Styleable value) {
        if (value == null) {
          throw new NullPointerException();
        }
        styleable_ = value;
        bitField0_ |= 0x00000004;
        }
      /**
       * <code>optional .aapt.pb.Styleable styleable = 3;</code>
       */
      private void setStyleable(
          com.android.aapt.Resources.Styleable.Builder builderForValue) {
        styleable_ = builderForValue.build();
        bitField0_ |= 0x00000004;
      }
      /**
       * <code>optional .aapt.pb.Styleable styleable = 3;</code>
       */
      private void mergeStyleable(com.android.aapt.Resources.Styleable value) {
        if (styleable_ != null &&
            styleable_ != com.android.aapt.Resources.Styleable.getDefaultInstance()) {
          styleable_ =
            com.android.aapt.Resources.Styleable.newBuilder(styleable_).mergeFrom(value).buildPartial();
        } else {
          styleable_ = value;
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <code>optional .aapt.pb.Styleable styleable = 3;</code>
       */
      private void clearStyleable() {  styleable_ = null;
        bitField0_ = (bitField0_ & ~0x00000004);
      }
  
      public static final int ARRAY_FIELD_NUMBER = 4;
      private com.android.aapt.Resources.Array array_;
      /**
       * <code>optional .aapt.pb.Array array = 4;</code>
       */
      public boolean hasArray() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .aapt.pb.Array array = 4;</code>
       */
      public com.android.aapt.Resources.Array getArray() {
        return array_ == null ? com.android.aapt.Resources.Array.getDefaultInstance() : array_;
      }
      /**
       * <code>optional .aapt.pb.Array array = 4;</code>
       */
      private void setArray(com.android.aapt.Resources.Array value) {
        if (value == null) {
          throw new NullPointerException();
        }
        array_ = value;
        bitField0_ |= 0x00000008;
        }
      /**
       * <code>optional .aapt.pb.Array array = 4;</code>
       */
      private void setArray(
          com.android.aapt.Resources.Array.Builder builderForValue) {
        array_ = builderForValue.build();
        bitField0_ |= 0x00000008;
      }
      /**
       * <code>optional .aapt.pb.Array array = 4;</code>
       */
      private void mergeArray(com.android.aapt.Resources.Array value) {
        if (array_ != null &&
            array_ != com.android.aapt.Resources.Array.getDefaultInstance()) {
          array_ =
            com.android.aapt.Resources.Array.newBuilder(array_).mergeFrom(value).buildPartial();
        } else {
          array_ = value;
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <code>optional .aapt.pb.Array array = 4;</code>
       */
      private void clearArray() {  array_ = null;
        bitField0_ = (bitField0_ & ~0x00000008);
      }
  
      public static final int PLURAL_FIELD_NUMBER = 5;
      private com.android.aapt.Resources.Plural plural_;
      /**
       * <code>optional .aapt.pb.Plural plural = 5;</code>
       */
      public boolean hasPlural() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .aapt.pb.Plural plural = 5;</code>
       */
      public com.android.aapt.Resources.Plural getPlural() {
        return plural_ == null ? com.android.aapt.Resources.Plural.getDefaultInstance() : plural_;
      }
      /**
       * <code>optional .aapt.pb.Plural plural = 5;</code>
       */
      private void setPlural(com.android.aapt.Resources.Plural value) {
        if (value == null) {
          throw new NullPointerException();
        }
        plural_ = value;
        bitField0_ |= 0x00000010;
        }
      /**
       * <code>optional .aapt.pb.Plural plural = 5;</code>
       */
      private void setPlural(
          com.android.aapt.Resources.Plural.Builder builderForValue) {
        plural_ = builderForValue.build();
        bitField0_ |= 0x00000010;
      }
      /**
       * <code>optional .aapt.pb.Plural plural = 5;</code>
       */
      private void mergePlural(com.android.aapt.Resources.Plural value) {
        if (plural_ != null &&
            plural_ != com.android.aapt.Resources.Plural.getDefaultInstance()) {
          plural_ =
            com.android.aapt.Resources.Plural.newBuilder(plural_).mergeFrom(value).buildPartial();
        } else {
          plural_ = value;
        }
        bitField0_ |= 0x00000010;
      }
      /**
       * <code>optional .aapt.pb.Plural plural = 5;</code>
       */
      private void clearPlural() {  plural_ = null;
        bitField0_ = (bitField0_ & ~0x00000010);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, getAttr());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, getStyle());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, getStyleable());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(4, getArray());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, getPlural());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getAttr());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getStyle());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getStyleable());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getArray());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getPlural());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.CompoundValue parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.CompoundValue 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 com.android.aapt.Resources.CompoundValue parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.CompoundValue 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 com.android.aapt.Resources.CompoundValue parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.CompoundValue 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 com.android.aapt.Resources.CompoundValue parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.CompoundValue parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.CompoundValue parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.CompoundValue 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.CompoundValue prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A CompoundValue is an abstract type. It represents a value that is a made of other values.
       * These can only usually appear as top-level resources. The concrete type is one of the types
       * below. Only one can be set.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.CompoundValue}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.CompoundValue, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.CompoundValue)
          com.android.aapt.Resources.CompoundValueOrBuilder {
        // Construct using com.android.aapt.Resources.CompoundValue.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional .aapt.pb.Attribute attr = 1;</code>
         */
        public boolean hasAttr() {
          return instance.hasAttr();
        }
        /**
         * <code>optional .aapt.pb.Attribute attr = 1;</code>
         */
        public com.android.aapt.Resources.Attribute getAttr() {
          return instance.getAttr();
        }
        /**
         * <code>optional .aapt.pb.Attribute attr = 1;</code>
         */
        public Builder setAttr(com.android.aapt.Resources.Attribute value) {
          copyOnWrite();
          instance.setAttr(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.Attribute attr = 1;</code>
         */
        public Builder setAttr(
            com.android.aapt.Resources.Attribute.Builder builderForValue) {
          copyOnWrite();
          instance.setAttr(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Attribute attr = 1;</code>
         */
        public Builder mergeAttr(com.android.aapt.Resources.Attribute value) {
          copyOnWrite();
          instance.mergeAttr(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Attribute attr = 1;</code>
         */
        public Builder clearAttr() {  copyOnWrite();
          instance.clearAttr();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.Style style = 2;</code>
         */
        public boolean hasStyle() {
          return instance.hasStyle();
        }
        /**
         * <code>optional .aapt.pb.Style style = 2;</code>
         */
        public com.android.aapt.Resources.Style getStyle() {
          return instance.getStyle();
        }
        /**
         * <code>optional .aapt.pb.Style style = 2;</code>
         */
        public Builder setStyle(com.android.aapt.Resources.Style value) {
          copyOnWrite();
          instance.setStyle(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.Style style = 2;</code>
         */
        public Builder setStyle(
            com.android.aapt.Resources.Style.Builder builderForValue) {
          copyOnWrite();
          instance.setStyle(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Style style = 2;</code>
         */
        public Builder mergeStyle(com.android.aapt.Resources.Style value) {
          copyOnWrite();
          instance.mergeStyle(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Style style = 2;</code>
         */
        public Builder clearStyle() {  copyOnWrite();
          instance.clearStyle();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.Styleable styleable = 3;</code>
         */
        public boolean hasStyleable() {
          return instance.hasStyleable();
        }
        /**
         * <code>optional .aapt.pb.Styleable styleable = 3;</code>
         */
        public com.android.aapt.Resources.Styleable getStyleable() {
          return instance.getStyleable();
        }
        /**
         * <code>optional .aapt.pb.Styleable styleable = 3;</code>
         */
        public Builder setStyleable(com.android.aapt.Resources.Styleable value) {
          copyOnWrite();
          instance.setStyleable(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.Styleable styleable = 3;</code>
         */
        public Builder setStyleable(
            com.android.aapt.Resources.Styleable.Builder builderForValue) {
          copyOnWrite();
          instance.setStyleable(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Styleable styleable = 3;</code>
         */
        public Builder mergeStyleable(com.android.aapt.Resources.Styleable value) {
          copyOnWrite();
          instance.mergeStyleable(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Styleable styleable = 3;</code>
         */
        public Builder clearStyleable() {  copyOnWrite();
          instance.clearStyleable();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.Array array = 4;</code>
         */
        public boolean hasArray() {
          return instance.hasArray();
        }
        /**
         * <code>optional .aapt.pb.Array array = 4;</code>
         */
        public com.android.aapt.Resources.Array getArray() {
          return instance.getArray();
        }
        /**
         * <code>optional .aapt.pb.Array array = 4;</code>
         */
        public Builder setArray(com.android.aapt.Resources.Array value) {
          copyOnWrite();
          instance.setArray(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.Array array = 4;</code>
         */
        public Builder setArray(
            com.android.aapt.Resources.Array.Builder builderForValue) {
          copyOnWrite();
          instance.setArray(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Array array = 4;</code>
         */
        public Builder mergeArray(com.android.aapt.Resources.Array value) {
          copyOnWrite();
          instance.mergeArray(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Array array = 4;</code>
         */
        public Builder clearArray() {  copyOnWrite();
          instance.clearArray();
          return this;
        }
  
        /**
         * <code>optional .aapt.pb.Plural plural = 5;</code>
         */
        public boolean hasPlural() {
          return instance.hasPlural();
        }
        /**
         * <code>optional .aapt.pb.Plural plural = 5;</code>
         */
        public com.android.aapt.Resources.Plural getPlural() {
          return instance.getPlural();
        }
        /**
         * <code>optional .aapt.pb.Plural plural = 5;</code>
         */
        public Builder setPlural(com.android.aapt.Resources.Plural value) {
          copyOnWrite();
          instance.setPlural(value);
          return this;
          }
        /**
         * <code>optional .aapt.pb.Plural plural = 5;</code>
         */
        public Builder setPlural(
            com.android.aapt.Resources.Plural.Builder builderForValue) {
          copyOnWrite();
          instance.setPlural(builderForValue);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Plural plural = 5;</code>
         */
        public Builder mergePlural(com.android.aapt.Resources.Plural value) {
          copyOnWrite();
          instance.mergePlural(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Plural plural = 5;</code>
         */
        public Builder clearPlural() {  copyOnWrite();
          instance.clearPlural();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.CompoundValue)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.CompoundValue();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.CompoundValue other = (com.android.aapt.Resources.CompoundValue) arg1;
            attr_ = visitor.visitMessage(attr_, other.attr_);
            style_ = visitor.visitMessage(style_, other.style_);
            styleable_ = visitor.visitMessage(styleable_, other.styleable_);
            array_ = visitor.visitMessage(array_, other.array_);
            plural_ = visitor.visitMessage(plural_, other.plural_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    com.android.aapt.Resources.Attribute.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000001) == 0x00000001)) {
                      subBuilder = attr_.toBuilder();
                    }
                    attr_ = input.readMessage(com.android.aapt.Resources.Attribute.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(attr_);
                      attr_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000001;
                    break;
                  }
                  case 18: {
                    com.android.aapt.Resources.Style.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000002) == 0x00000002)) {
                      subBuilder = style_.toBuilder();
                    }
                    style_ = input.readMessage(com.android.aapt.Resources.Style.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(style_);
                      style_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000002;
                    break;
                  }
                  case 26: {
                    com.android.aapt.Resources.Styleable.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000004) == 0x00000004)) {
                      subBuilder = styleable_.toBuilder();
                    }
                    styleable_ = input.readMessage(com.android.aapt.Resources.Styleable.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(styleable_);
                      styleable_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000004;
                    break;
                  }
                  case 34: {
                    com.android.aapt.Resources.Array.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000008) == 0x00000008)) {
                      subBuilder = array_.toBuilder();
                    }
                    array_ = input.readMessage(com.android.aapt.Resources.Array.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(array_);
                      array_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000008;
                    break;
                  }
                  case 42: {
                    com.android.aapt.Resources.Plural.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000010) == 0x00000010)) {
                      subBuilder = plural_.toBuilder();
                    }
                    plural_ = input.readMessage(com.android.aapt.Resources.Plural.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(plural_);
                      plural_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000010;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.CompoundValue.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.CompoundValue)
      private static final com.android.aapt.Resources.CompoundValue DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new CompoundValue();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.CompoundValue getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<CompoundValue> PARSER;
  
      public static com.google.protobuf.Parser<CompoundValue> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ReferenceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Reference)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional .aapt.pb.Reference.Type type = 1;</code>
       */
      boolean hasType();
      /**
       * <code>optional .aapt.pb.Reference.Type type = 1;</code>
       */
      com.android.aapt.Resources.Reference.Type getType();
  
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the resource being referred.
       * </pre>
       *
       * <code>optional uint32 id = 2;</code>
       */
      boolean hasId();
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the resource being referred.
       * </pre>
       *
       * <code>optional uint32 id = 2;</code>
       */
      int getId();
  
      /**
       * <pre>
       * The optional resource name.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      boolean hasName();
      /**
       * <pre>
       * The optional resource name.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      java.lang.String getName();
      /**
       * <pre>
       * The optional resource name.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <pre>
       * Whether this reference is referencing a private resource (&#64;*package:type/entry).
       * </pre>
       *
       * <code>optional bool private = 4;</code>
       */
      boolean hasPrivate();
      /**
       * <pre>
       * Whether this reference is referencing a private resource (&#64;*package:type/entry).
       * </pre>
       *
       * <code>optional bool private = 4;</code>
       */
      boolean getPrivate();
    }
    /**
     * <pre>
     * A value that is a reference to another resource. This reference can be by name or resource ID.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Reference}
     */
    public  static final class Reference extends
        com.google.protobuf.GeneratedMessageLite<
            Reference, Reference.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Reference)
        ReferenceOrBuilder {
      private Reference() {
        name_ = "";
      }
      /**
       * Protobuf enum {@code aapt.pb.Reference.Type}
       */
      public enum Type
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <pre>
         * A plain reference (&#64;package:type/entry).
         * </pre>
         *
         * <code>REFERENCE = 0;</code>
         */
        REFERENCE(0),
        /**
         * <pre>
         * A reference to a theme attribute (?package:type/entry).
         * </pre>
         *
         * <code>ATTRIBUTE = 1;</code>
         */
        ATTRIBUTE(1),
        ;
  
        /**
         * <pre>
         * A plain reference (&#64;package:type/entry).
         * </pre>
         *
         * <code>REFERENCE = 0;</code>
         */
        public static final int REFERENCE_VALUE = 0;
        /**
         * <pre>
         * A reference to a theme attribute (?package:type/entry).
         * </pre>
         *
         * <code>ATTRIBUTE = 1;</code>
         */
        public static final int ATTRIBUTE_VALUE = 1;
  
  
        public final int getNumber() {
          return value;
        }
  
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static Type valueOf(int value) {
          return forNumber(value);
        }
  
        public static Type forNumber(int value) {
          switch (value) {
            case 0: return REFERENCE;
            case 1: return ATTRIBUTE;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<Type>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            Type> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Type>() {
                public Type findValueByNumber(int number) {
                  return Type.forNumber(number);
                }
              };
  
        private final int value;
  
        private Type(int value) {
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:aapt.pb.Reference.Type)
      }
  
      private int bitField0_;
      public static final int TYPE_FIELD_NUMBER = 1;
      private int type_;
      /**
       * <code>optional .aapt.pb.Reference.Type type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .aapt.pb.Reference.Type type = 1;</code>
       */
      public com.android.aapt.Resources.Reference.Type getType() {
        com.android.aapt.Resources.Reference.Type result = com.android.aapt.Resources.Reference.Type.forNumber(type_);
        return result == null ? com.android.aapt.Resources.Reference.Type.REFERENCE : result;
      }
      /**
       * <code>optional .aapt.pb.Reference.Type type = 1;</code>
       */
      private void setType(com.android.aapt.Resources.Reference.Type value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value.getNumber();
      }
      /**
       * <code>optional .aapt.pb.Reference.Type type = 1;</code>
       */
      private void clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
      }
  
      public static final int ID_FIELD_NUMBER = 2;
      private int id_;
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the resource being referred.
       * </pre>
       *
       * <code>optional uint32 id = 2;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the resource being referred.
       * </pre>
       *
       * <code>optional uint32 id = 2;</code>
       */
      public int getId() {
        return id_;
      }
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the resource being referred.
       * </pre>
       *
       * <code>optional uint32 id = 2;</code>
       */
      private void setId(int value) {
        bitField0_ |= 0x00000002;
        id_ = value;
      }
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the resource being referred.
       * </pre>
       *
       * <code>optional uint32 id = 2;</code>
       */
      private void clearId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        id_ = 0;
      }
  
      public static final int NAME_FIELD_NUMBER = 3;
      private java.lang.String name_;
      /**
       * <pre>
       * The optional resource name.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * The optional resource name.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <pre>
       * The optional resource name.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <pre>
       * The optional resource name.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      private void setName(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
        name_ = value;
      }
      /**
       * <pre>
       * The optional resource name.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      private void clearName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        name_ = getDefaultInstance().getName();
      }
      /**
       * <pre>
       * The optional resource name.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
        name_ = value.toStringUtf8();
      }
  
      public static final int PRIVATE_FIELD_NUMBER = 4;
      private boolean private_;
      /**
       * <pre>
       * Whether this reference is referencing a private resource (&#64;*package:type/entry).
       * </pre>
       *
       * <code>optional bool private = 4;</code>
       */
      public boolean hasPrivate() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * Whether this reference is referencing a private resource (&#64;*package:type/entry).
       * </pre>
       *
       * <code>optional bool private = 4;</code>
       */
      public boolean getPrivate() {
        return private_;
      }
      /**
       * <pre>
       * Whether this reference is referencing a private resource (&#64;*package:type/entry).
       * </pre>
       *
       * <code>optional bool private = 4;</code>
       */
      private void setPrivate(boolean value) {
        bitField0_ |= 0x00000008;
        private_ = value;
      }
      /**
       * <pre>
       * Whether this reference is referencing a private resource (&#64;*package:type/entry).
       * </pre>
       *
       * <code>optional bool private = 4;</code>
       */
      private void clearPrivate() {
        bitField0_ = (bitField0_ & ~0x00000008);
        private_ = false;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, type_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, id_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeString(3, getName());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBool(4, private_);
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, type_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, id_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(3, getName());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(4, private_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Reference parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Reference 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 com.android.aapt.Resources.Reference parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Reference 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 com.android.aapt.Resources.Reference parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Reference 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 com.android.aapt.Resources.Reference parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Reference parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Reference parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Reference 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Reference prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that is a reference to another resource. This reference can be by name or resource ID.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Reference}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Reference, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Reference)
          com.android.aapt.Resources.ReferenceOrBuilder {
        // Construct using com.android.aapt.Resources.Reference.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional .aapt.pb.Reference.Type type = 1;</code>
         */
        public boolean hasType() {
          return instance.hasType();
        }
        /**
         * <code>optional .aapt.pb.Reference.Type type = 1;</code>
         */
        public com.android.aapt.Resources.Reference.Type getType() {
          return instance.getType();
        }
        /**
         * <code>optional .aapt.pb.Reference.Type type = 1;</code>
         */
        public Builder setType(com.android.aapt.Resources.Reference.Type value) {
          copyOnWrite();
          instance.setType(value);
          return this;
        }
        /**
         * <code>optional .aapt.pb.Reference.Type type = 1;</code>
         */
        public Builder clearType() {
          copyOnWrite();
          instance.clearType();
          return this;
        }
  
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the resource being referred.
         * </pre>
         *
         * <code>optional uint32 id = 2;</code>
         */
        public boolean hasId() {
          return instance.hasId();
        }
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the resource being referred.
         * </pre>
         *
         * <code>optional uint32 id = 2;</code>
         */
        public int getId() {
          return instance.getId();
        }
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the resource being referred.
         * </pre>
         *
         * <code>optional uint32 id = 2;</code>
         */
        public Builder setId(int value) {
          copyOnWrite();
          instance.setId(value);
          return this;
        }
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the resource being referred.
         * </pre>
         *
         * <code>optional uint32 id = 2;</code>
         */
        public Builder clearId() {
          copyOnWrite();
          instance.clearId();
          return this;
        }
  
        /**
         * <pre>
         * The optional resource name.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public boolean hasName() {
          return instance.hasName();
        }
        /**
         * <pre>
         * The optional resource name.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <pre>
         * The optional resource name.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <pre>
         * The optional resource name.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <pre>
         * The optional resource name.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <pre>
         * The optional resource name.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Whether this reference is referencing a private resource (&#64;*package:type/entry).
         * </pre>
         *
         * <code>optional bool private = 4;</code>
         */
        public boolean hasPrivate() {
          return instance.hasPrivate();
        }
        /**
         * <pre>
         * Whether this reference is referencing a private resource (&#64;*package:type/entry).
         * </pre>
         *
         * <code>optional bool private = 4;</code>
         */
        public boolean getPrivate() {
          return instance.getPrivate();
        }
        /**
         * <pre>
         * Whether this reference is referencing a private resource (&#64;*package:type/entry).
         * </pre>
         *
         * <code>optional bool private = 4;</code>
         */
        public Builder setPrivate(boolean value) {
          copyOnWrite();
          instance.setPrivate(value);
          return this;
        }
        /**
         * <pre>
         * Whether this reference is referencing a private resource (&#64;*package:type/entry).
         * </pre>
         *
         * <code>optional bool private = 4;</code>
         */
        public Builder clearPrivate() {
          copyOnWrite();
          instance.clearPrivate();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Reference)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Reference();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Reference other = (com.android.aapt.Resources.Reference) arg1;
            type_ = visitor.visitInt(hasType(), type_,
                other.hasType(), other.type_);
            id_ = visitor.visitInt(
                hasId(), id_,
                other.hasId(), other.id_);
            name_ = visitor.visitString(
                hasName(), name_,
                other.hasName(), other.name_);
            private_ = visitor.visitBoolean(
                hasPrivate(), private_,
                other.hasPrivate(), other.private_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    int rawValue = input.readEnum();
                    com.android.aapt.Resources.Reference.Type value = com.android.aapt.Resources.Reference.Type.forNumber(rawValue);
                    if (value == null) {
                      super.mergeVarintField(1, rawValue);
                    } else {
                      bitField0_ |= 0x00000001;
                      type_ = rawValue;
                    }
                    break;
                  }
                  case 16: {
                    bitField0_ |= 0x00000002;
                    id_ = input.readUInt32();
                    break;
                  }
                  case 26: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000004;
                    name_ = s;
                    break;
                  }
                  case 32: {
                    bitField0_ |= 0x00000008;
                    private_ = input.readBool();
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Reference.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Reference)
      private static final com.android.aapt.Resources.Reference DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Reference();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Reference getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Reference> PARSER;
  
      public static com.google.protobuf.Parser<Reference> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface IdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Id)
        com.google.protobuf.MessageLiteOrBuilder {
    }
    /**
     * <pre>
     * A value that represents an ID. This is just a placeholder, as ID values are used to occupy a
     * resource ID (0xPPTTEEEE) as a unique identifier. Their value is unimportant.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Id}
     */
    public  static final class Id extends
        com.google.protobuf.GeneratedMessageLite<
            Id, Id.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Id)
        IdOrBuilder {
      private Id() {
      }
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Id parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Id 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 com.android.aapt.Resources.Id parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Id 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 com.android.aapt.Resources.Id parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Id 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 com.android.aapt.Resources.Id parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Id parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Id parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Id 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Id prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that represents an ID. This is just a placeholder, as ID values are used to occupy a
       * resource ID (0xPPTTEEEE) as a unique identifier. Their value is unimportant.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Id}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Id, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Id)
          com.android.aapt.Resources.IdOrBuilder {
        // Construct using com.android.aapt.Resources.Id.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Id)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Id();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Id other = (com.android.aapt.Resources.Id) arg1;
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Id.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Id)
      private static final com.android.aapt.Resources.Id DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Id();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Id getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Id> PARSER;
  
      public static com.google.protobuf.Parser<Id> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StringOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.String)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional string value = 1;</code>
       */
      boolean hasValue();
      /**
       * <code>optional string value = 1;</code>
       */
      java.lang.String getValue();
      /**
       * <code>optional string value = 1;</code>
       */
      com.google.protobuf.ByteString
          getValueBytes();
    }
    /**
     * <pre>
     * A value that is a string.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.String}
     */
    public  static final class String extends
        com.google.protobuf.GeneratedMessageLite<
            String, String.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.String)
        StringOrBuilder {
      private String() {
        value_ = "";
      }
      private int bitField0_;
      public static final int VALUE_FIELD_NUMBER = 1;
      private java.lang.String value_;
      /**
       * <code>optional string value = 1;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string value = 1;</code>
       */
      public java.lang.String getValue() {
        return value_;
      }
      /**
       * <code>optional string value = 1;</code>
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(value_);
      }
      /**
       * <code>optional string value = 1;</code>
       */
      private void setValue(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        value_ = value;
      }
      /**
       * <code>optional string value = 1;</code>
       */
      private void clearValue() {
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = getDefaultInstance().getValue();
      }
      /**
       * <code>optional string value = 1;</code>
       */
      private void setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        value_ = value.toStringUtf8();
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeString(1, getValue());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(1, getValue());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.String parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.String 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 com.android.aapt.Resources.String parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.String 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 com.android.aapt.Resources.String parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.String 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 com.android.aapt.Resources.String parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.String parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.String parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.String 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.String prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that is a string.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.String}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.String, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.String)
          com.android.aapt.Resources.StringOrBuilder {
        // Construct using com.android.aapt.Resources.String.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional string value = 1;</code>
         */
        public boolean hasValue() {
          return instance.hasValue();
        }
        /**
         * <code>optional string value = 1;</code>
         */
        public java.lang.String getValue() {
          return instance.getValue();
        }
        /**
         * <code>optional string value = 1;</code>
         */
        public com.google.protobuf.ByteString
            getValueBytes() {
          return instance.getValueBytes();
        }
        /**
         * <code>optional string value = 1;</code>
         */
        public Builder setValue(
            java.lang.String value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
        }
        /**
         * <code>optional string value = 1;</code>
         */
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
        /**
         * <code>optional string value = 1;</code>
         */
        public Builder setValueBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setValueBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.String)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.String();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.String other = (com.android.aapt.Resources.String) arg1;
            value_ = visitor.visitString(
                hasValue(), value_,
                other.hasValue(), other.value_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000001;
                    value_ = s;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.String.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.String)
      private static final com.android.aapt.Resources.String DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new String();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.String getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<String> PARSER;
  
      public static com.google.protobuf.Parser<String> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface RawStringOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.RawString)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional string value = 1;</code>
       */
      boolean hasValue();
      /**
       * <code>optional string value = 1;</code>
       */
      java.lang.String getValue();
      /**
       * <code>optional string value = 1;</code>
       */
      com.google.protobuf.ByteString
          getValueBytes();
    }
    /**
     * <pre>
     * A value that is a raw string, which is unescaped/uninterpreted. This is typically used to
     * represent the value of a style attribute before the attribute is compiled and the set of
     * allowed values is known.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.RawString}
     */
    public  static final class RawString extends
        com.google.protobuf.GeneratedMessageLite<
            RawString, RawString.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.RawString)
        RawStringOrBuilder {
      private RawString() {
        value_ = "";
      }
      private int bitField0_;
      public static final int VALUE_FIELD_NUMBER = 1;
      private java.lang.String value_;
      /**
       * <code>optional string value = 1;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string value = 1;</code>
       */
      public java.lang.String getValue() {
        return value_;
      }
      /**
       * <code>optional string value = 1;</code>
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(value_);
      }
      /**
       * <code>optional string value = 1;</code>
       */
      private void setValue(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        value_ = value;
      }
      /**
       * <code>optional string value = 1;</code>
       */
      private void clearValue() {
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = getDefaultInstance().getValue();
      }
      /**
       * <code>optional string value = 1;</code>
       */
      private void setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        value_ = value.toStringUtf8();
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeString(1, getValue());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(1, getValue());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.RawString parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.RawString 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 com.android.aapt.Resources.RawString parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.RawString 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 com.android.aapt.Resources.RawString parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.RawString 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 com.android.aapt.Resources.RawString parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.RawString parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.RawString parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.RawString 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.RawString prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that is a raw string, which is unescaped/uninterpreted. This is typically used to
       * represent the value of a style attribute before the attribute is compiled and the set of
       * allowed values is known.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.RawString}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.RawString, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.RawString)
          com.android.aapt.Resources.RawStringOrBuilder {
        // Construct using com.android.aapt.Resources.RawString.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional string value = 1;</code>
         */
        public boolean hasValue() {
          return instance.hasValue();
        }
        /**
         * <code>optional string value = 1;</code>
         */
        public java.lang.String getValue() {
          return instance.getValue();
        }
        /**
         * <code>optional string value = 1;</code>
         */
        public com.google.protobuf.ByteString
            getValueBytes() {
          return instance.getValueBytes();
        }
        /**
         * <code>optional string value = 1;</code>
         */
        public Builder setValue(
            java.lang.String value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
        }
        /**
         * <code>optional string value = 1;</code>
         */
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
        /**
         * <code>optional string value = 1;</code>
         */
        public Builder setValueBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setValueBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.RawString)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.RawString();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.RawString other = (com.android.aapt.Resources.RawString) arg1;
            value_ = visitor.visitString(
                hasValue(), value_,
                other.hasValue(), other.value_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000001;
                    value_ = s;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.RawString.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.RawString)
      private static final com.android.aapt.Resources.RawString DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new RawString();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.RawString getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<RawString> PARSER;
  
      public static com.google.protobuf.Parser<RawString> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StyledStringOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.StyledString)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>optional string value = 1;</code>
       */
      boolean hasValue();
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>optional string value = 1;</code>
       */
      java.lang.String getValue();
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>optional string value = 1;</code>
       */
      com.google.protobuf.ByteString
          getValueBytes();
  
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      java.util.List<com.android.aapt.Resources.StyledString.Span> 
          getSpanList();
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      com.android.aapt.Resources.StyledString.Span getSpan(int index);
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      int getSpanCount();
    }
    /**
     * <pre>
     * A string with styling information, like html tags that specify boldness, italics, etc.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.StyledString}
     */
    public  static final class StyledString extends
        com.google.protobuf.GeneratedMessageLite<
            StyledString, StyledString.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.StyledString)
        StyledStringOrBuilder {
      private StyledString() {
        value_ = "";
        span_ = emptyProtobufList();
      }
      public interface SpanOrBuilder extends
          // @@protoc_insertion_point(interface_extends:aapt.pb.StyledString.Span)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>optional string tag = 1;</code>
         */
        boolean hasTag();
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>optional string tag = 1;</code>
         */
        java.lang.String getTag();
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>optional string tag = 1;</code>
         */
        com.google.protobuf.ByteString
            getTagBytes();
  
        /**
         * <pre>
         * The first character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 first_char = 2;</code>
         */
        boolean hasFirstChar();
        /**
         * <pre>
         * The first character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 first_char = 2;</code>
         */
        int getFirstChar();
  
        /**
         * <pre>
         * The last character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 last_char = 3;</code>
         */
        boolean hasLastChar();
        /**
         * <pre>
         * The last character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 last_char = 3;</code>
         */
        int getLastChar();
      }
      /**
       * <pre>
       * A Span marks a region of the string text that is styled.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.StyledString.Span}
       */
      public  static final class Span extends
          com.google.protobuf.GeneratedMessageLite<
              Span, Span.Builder> implements
          // @@protoc_insertion_point(message_implements:aapt.pb.StyledString.Span)
          SpanOrBuilder {
        private Span() {
          tag_ = "";
        }
        private int bitField0_;
        public static final int TAG_FIELD_NUMBER = 1;
        private java.lang.String tag_;
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>optional string tag = 1;</code>
         */
        public boolean hasTag() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>optional string tag = 1;</code>
         */
        public java.lang.String getTag() {
          return tag_;
        }
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>optional string tag = 1;</code>
         */
        public com.google.protobuf.ByteString
            getTagBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(tag_);
        }
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>optional string tag = 1;</code>
         */
        private void setTag(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
          tag_ = value;
        }
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>optional string tag = 1;</code>
         */
        private void clearTag() {
          bitField0_ = (bitField0_ & ~0x00000001);
          tag_ = getDefaultInstance().getTag();
        }
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>optional string tag = 1;</code>
         */
        private void setTagBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
          tag_ = value.toStringUtf8();
        }
  
        public static final int FIRST_CHAR_FIELD_NUMBER = 2;
        private int firstChar_;
        /**
         * <pre>
         * The first character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 first_char = 2;</code>
         */
        public boolean hasFirstChar() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         * The first character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 first_char = 2;</code>
         */
        public int getFirstChar() {
          return firstChar_;
        }
        /**
         * <pre>
         * The first character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 first_char = 2;</code>
         */
        private void setFirstChar(int value) {
          bitField0_ |= 0x00000002;
          firstChar_ = value;
        }
        /**
         * <pre>
         * The first character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 first_char = 2;</code>
         */
        private void clearFirstChar() {
          bitField0_ = (bitField0_ & ~0x00000002);
          firstChar_ = 0;
        }
  
        public static final int LAST_CHAR_FIELD_NUMBER = 3;
        private int lastChar_;
        /**
         * <pre>
         * The last character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 last_char = 3;</code>
         */
        public boolean hasLastChar() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         * The last character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 last_char = 3;</code>
         */
        public int getLastChar() {
          return lastChar_;
        }
        /**
         * <pre>
         * The last character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 last_char = 3;</code>
         */
        private void setLastChar(int value) {
          bitField0_ |= 0x00000004;
          lastChar_ = value;
        }
        /**
         * <pre>
         * The last character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>optional uint32 last_char = 3;</code>
         */
        private void clearLastChar() {
          bitField0_ = (bitField0_ & ~0x00000004);
          lastChar_ = 0;
        }
  
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeString(1, getTag());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeUInt32(2, firstChar_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeUInt32(3, lastChar_);
          }
          unknownFields.writeTo(output);
        }
  
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
  
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeStringSize(1, getTag());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeUInt32Size(2, firstChar_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeUInt32Size(3, lastChar_);
          }
          size += unknownFields.getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
  
        public static com.android.aapt.Resources.StyledString.Span parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.StyledString.Span 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 com.android.aapt.Resources.StyledString.Span parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.StyledString.Span 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 com.android.aapt.Resources.StyledString.Span parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.StyledString.Span 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 com.android.aapt.Resources.StyledString.Span parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.StyledString.Span parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.StyledString.Span parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.StyledString.Span 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 DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.android.aapt.Resources.StyledString.Span prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
  
        /**
         * <pre>
         * A Span marks a region of the string text that is styled.
         * </pre>
         *
         * Protobuf type {@code aapt.pb.StyledString.Span}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.StyledString.Span, Builder> implements
            // @@protoc_insertion_point(builder_implements:aapt.pb.StyledString.Span)
            com.android.aapt.Resources.StyledString.SpanOrBuilder {
          // Construct using com.android.aapt.Resources.StyledString.Span.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>optional string tag = 1;</code>
           */
          public boolean hasTag() {
            return instance.hasTag();
          }
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>optional string tag = 1;</code>
           */
          public java.lang.String getTag() {
            return instance.getTag();
          }
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>optional string tag = 1;</code>
           */
          public com.google.protobuf.ByteString
              getTagBytes() {
            return instance.getTagBytes();
          }
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>optional string tag = 1;</code>
           */
          public Builder setTag(
              java.lang.String value) {
            copyOnWrite();
            instance.setTag(value);
            return this;
          }
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>optional string tag = 1;</code>
           */
          public Builder clearTag() {
            copyOnWrite();
            instance.clearTag();
            return this;
          }
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>optional string tag = 1;</code>
           */
          public Builder setTagBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setTagBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * The first character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>optional uint32 first_char = 2;</code>
           */
          public boolean hasFirstChar() {
            return instance.hasFirstChar();
          }
          /**
           * <pre>
           * The first character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>optional uint32 first_char = 2;</code>
           */
          public int getFirstChar() {
            return instance.getFirstChar();
          }
          /**
           * <pre>
           * The first character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>optional uint32 first_char = 2;</code>
           */
          public Builder setFirstChar(int value) {
            copyOnWrite();
            instance.setFirstChar(value);
            return this;
          }
          /**
           * <pre>
           * The first character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>optional uint32 first_char = 2;</code>
           */
          public Builder clearFirstChar() {
            copyOnWrite();
            instance.clearFirstChar();
            return this;
          }
  
          /**
           * <pre>
           * The last character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>optional uint32 last_char = 3;</code>
           */
          public boolean hasLastChar() {
            return instance.hasLastChar();
          }
          /**
           * <pre>
           * The last character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>optional uint32 last_char = 3;</code>
           */
          public int getLastChar() {
            return instance.getLastChar();
          }
          /**
           * <pre>
           * The last character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>optional uint32 last_char = 3;</code>
           */
          public Builder setLastChar(int value) {
            copyOnWrite();
            instance.setLastChar(value);
            return this;
          }
          /**
           * <pre>
           * The last character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>optional uint32 last_char = 3;</code>
           */
          public Builder clearLastChar() {
            copyOnWrite();
            instance.clearLastChar();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:aapt.pb.StyledString.Span)
        }
        protected final Object dynamicMethod(
            com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
            Object arg0, Object arg1) {
          switch (method) {
            case NEW_MUTABLE_INSTANCE: {
              return new com.android.aapt.Resources.StyledString.Span();
            }
            case IS_INITIALIZED: {
              return DEFAULT_INSTANCE;
            }
            case MAKE_IMMUTABLE: {
              return null;
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case VISIT: {
              Visitor visitor = (Visitor) arg0;
              com.android.aapt.Resources.StyledString.Span other = (com.android.aapt.Resources.StyledString.Span) arg1;
              tag_ = visitor.visitString(
                  hasTag(), tag_,
                  other.hasTag(), other.tag_);
              firstChar_ = visitor.visitInt(
                  hasFirstChar(), firstChar_,
                  other.hasFirstChar(), other.firstChar_);
              lastChar_ = visitor.visitInt(
                  hasLastChar(), lastChar_,
                  other.hasLastChar(), other.lastChar_);
              if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                  .INSTANCE) {
                bitField0_ |= other.bitField0_;
              }
              return this;
            }
            case MERGE_FROM_STREAM: {
              com.google.protobuf.CodedInputStream input =
                  (com.google.protobuf.CodedInputStream) arg0;
              com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                  (com.google.protobuf.ExtensionRegistryLite) arg1;
              try {
                boolean done = false;
                while (!done) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      done = true;
                      break;
                    default: {
                      if (!parseUnknownField(tag, input)) {
                        done = true;
                      }
                      break;
                    }
                    case 10: {
                      java.lang.String s = input.readString();
                      bitField0_ |= 0x00000001;
                      tag_ = s;
                      break;
                    }
                    case 16: {
                      bitField0_ |= 0x00000002;
                      firstChar_ = input.readUInt32();
                      break;
                    }
                    case 24: {
                      bitField0_ |= 0x00000004;
                      lastChar_ = input.readUInt32();
                      break;
                    }
                  }
                }
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw new RuntimeException(e.setUnfinishedMessage(this));
              } catch (java.io.IOException e) {
                throw new RuntimeException(
                    new com.google.protobuf.InvalidProtocolBufferException(
                        e.getMessage()).setUnfinishedMessage(this));
              } finally {
              }
            }
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              if (PARSER == null) {    synchronized (com.android.aapt.Resources.StyledString.Span.class) {
                  if (PARSER == null) {
                    PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                  }
                }
              }
              return PARSER;
            }
          }
          throw new UnsupportedOperationException();
        }
  
  
        // @@protoc_insertion_point(class_scope:aapt.pb.StyledString.Span)
        private static final com.android.aapt.Resources.StyledString.Span DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new Span();
          DEFAULT_INSTANCE.makeImmutable();
        }
  
        public static com.android.aapt.Resources.StyledString.Span getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Span> PARSER;
  
        public static com.google.protobuf.Parser<Span> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      private int bitField0_;
      public static final int VALUE_FIELD_NUMBER = 1;
      private java.lang.String value_;
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>optional string value = 1;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>optional string value = 1;</code>
       */
      public java.lang.String getValue() {
        return value_;
      }
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>optional string value = 1;</code>
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(value_);
      }
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>optional string value = 1;</code>
       */
      private void setValue(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        value_ = value;
      }
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>optional string value = 1;</code>
       */
      private void clearValue() {
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = getDefaultInstance().getValue();
      }
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>optional string value = 1;</code>
       */
      private void setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        value_ = value.toStringUtf8();
      }
  
      public static final int SPAN_FIELD_NUMBER = 2;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.StyledString.Span> span_;
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      public java.util.List<com.android.aapt.Resources.StyledString.Span> getSpanList() {
        return span_;
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.StyledString.SpanOrBuilder> 
          getSpanOrBuilderList() {
        return span_;
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      public int getSpanCount() {
        return span_.size();
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      public com.android.aapt.Resources.StyledString.Span getSpan(int index) {
        return span_.get(index);
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      public com.android.aapt.Resources.StyledString.SpanOrBuilder getSpanOrBuilder(
          int index) {
        return span_.get(index);
      }
      private void ensureSpanIsMutable() {
        if (!span_.isModifiable()) {
          span_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(span_);
         }
      }
  
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      private void setSpan(
          int index, com.android.aapt.Resources.StyledString.Span value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSpanIsMutable();
        span_.set(index, value);
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      private void setSpan(
          int index, com.android.aapt.Resources.StyledString.Span.Builder builderForValue) {
        ensureSpanIsMutable();
        span_.set(index, builderForValue.build());
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      private void addSpan(com.android.aapt.Resources.StyledString.Span value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSpanIsMutable();
        span_.add(value);
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      private void addSpan(
          int index, com.android.aapt.Resources.StyledString.Span value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSpanIsMutable();
        span_.add(index, value);
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      private void addSpan(
          com.android.aapt.Resources.StyledString.Span.Builder builderForValue) {
        ensureSpanIsMutable();
        span_.add(builderForValue.build());
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      private void addSpan(
          int index, com.android.aapt.Resources.StyledString.Span.Builder builderForValue) {
        ensureSpanIsMutable();
        span_.add(index, builderForValue.build());
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      private void addAllSpan(
          java.lang.Iterable<? extends com.android.aapt.Resources.StyledString.Span> values) {
        ensureSpanIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, span_);
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      private void clearSpan() {
        span_ = emptyProtobufList();
      }
      /**
       * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
       */
      private void removeSpan(int index) {
        ensureSpanIsMutable();
        span_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeString(1, getValue());
        }
        for (int i = 0; i < span_.size(); i++) {
          output.writeMessage(2, span_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(1, getValue());
        }
        for (int i = 0; i < span_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, span_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.StyledString parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StyledString 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 com.android.aapt.Resources.StyledString parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StyledString 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 com.android.aapt.Resources.StyledString parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StyledString 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 com.android.aapt.Resources.StyledString parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StyledString parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.StyledString parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StyledString 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.StyledString prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A string with styling information, like html tags that specify boldness, italics, etc.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.StyledString}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.StyledString, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.StyledString)
          com.android.aapt.Resources.StyledStringOrBuilder {
        // Construct using com.android.aapt.Resources.StyledString.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>optional string value = 1;</code>
         */
        public boolean hasValue() {
          return instance.hasValue();
        }
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>optional string value = 1;</code>
         */
        public java.lang.String getValue() {
          return instance.getValue();
        }
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>optional string value = 1;</code>
         */
        public com.google.protobuf.ByteString
            getValueBytes() {
          return instance.getValueBytes();
        }
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>optional string value = 1;</code>
         */
        public Builder setValue(
            java.lang.String value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
        }
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>optional string value = 1;</code>
         */
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>optional string value = 1;</code>
         */
        public Builder setValueBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setValueBytes(value);
          return this;
        }
  
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public java.util.List<com.android.aapt.Resources.StyledString.Span> getSpanList() {
          return java.util.Collections.unmodifiableList(
              instance.getSpanList());
        }
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public int getSpanCount() {
          return instance.getSpanCount();
        }/**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public com.android.aapt.Resources.StyledString.Span getSpan(int index) {
          return instance.getSpan(index);
        }
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public Builder setSpan(
            int index, com.android.aapt.Resources.StyledString.Span value) {
          copyOnWrite();
          instance.setSpan(index, value);
          return this;
        }
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public Builder setSpan(
            int index, com.android.aapt.Resources.StyledString.Span.Builder builderForValue) {
          copyOnWrite();
          instance.setSpan(index, builderForValue);
          return this;
        }
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public Builder addSpan(com.android.aapt.Resources.StyledString.Span value) {
          copyOnWrite();
          instance.addSpan(value);
          return this;
        }
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public Builder addSpan(
            int index, com.android.aapt.Resources.StyledString.Span value) {
          copyOnWrite();
          instance.addSpan(index, value);
          return this;
        }
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public Builder addSpan(
            com.android.aapt.Resources.StyledString.Span.Builder builderForValue) {
          copyOnWrite();
          instance.addSpan(builderForValue);
          return this;
        }
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public Builder addSpan(
            int index, com.android.aapt.Resources.StyledString.Span.Builder builderForValue) {
          copyOnWrite();
          instance.addSpan(index, builderForValue);
          return this;
        }
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public Builder addAllSpan(
            java.lang.Iterable<? extends com.android.aapt.Resources.StyledString.Span> values) {
          copyOnWrite();
          instance.addAllSpan(values);
          return this;
        }
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public Builder clearSpan() {
          copyOnWrite();
          instance.clearSpan();
          return this;
        }
        /**
         * <code>repeated .aapt.pb.StyledString.Span span = 2;</code>
         */
        public Builder removeSpan(int index) {
          copyOnWrite();
          instance.removeSpan(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.StyledString)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.StyledString();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            span_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.StyledString other = (com.android.aapt.Resources.StyledString) arg1;
            value_ = visitor.visitString(
                hasValue(), value_,
                other.hasValue(), other.value_);
            span_= visitor.visitList(span_, other.span_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000001;
                    value_ = s;
                    break;
                  }
                  case 18: {
                    if (!span_.isModifiable()) {
                      span_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(span_);
                    }
                    span_.add(
                        input.readMessage(com.android.aapt.Resources.StyledString.Span.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.StyledString.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.StyledString)
      private static final com.android.aapt.Resources.StyledString DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new StyledString();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.StyledString getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<StyledString> PARSER;
  
      public static com.google.protobuf.Parser<StyledString> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface FileReferenceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.FileReference)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      boolean hasPath();
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      java.lang.String getPath();
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      com.google.protobuf.ByteString
          getPathBytes();
    }
    /**
     * <pre>
     * A value that is a reference to an external entity, like an XML file or a PNG.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.FileReference}
     */
    public  static final class FileReference extends
        com.google.protobuf.GeneratedMessageLite<
            FileReference, FileReference.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.FileReference)
        FileReferenceOrBuilder {
      private FileReference() {
        path_ = "";
      }
      private int bitField0_;
      public static final int PATH_FIELD_NUMBER = 1;
      private java.lang.String path_;
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public java.lang.String getPath() {
        return path_;
      }
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPathBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(path_);
      }
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      private void setPath(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        path_ = value;
      }
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      private void clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
      }
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      private void setPathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        path_ = value.toStringUtf8();
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeString(1, getPath());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(1, getPath());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.FileReference parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.FileReference 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 com.android.aapt.Resources.FileReference parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.FileReference 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 com.android.aapt.Resources.FileReference parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.FileReference 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 com.android.aapt.Resources.FileReference parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.FileReference parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.FileReference parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.FileReference 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.FileReference prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that is a reference to an external entity, like an XML file or a PNG.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.FileReference}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.FileReference, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.FileReference)
          com.android.aapt.Resources.FileReferenceOrBuilder {
        // Construct using com.android.aapt.Resources.FileReference.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>optional string path = 1;</code>
         */
        public boolean hasPath() {
          return instance.hasPath();
        }
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>optional string path = 1;</code>
         */
        public java.lang.String getPath() {
          return instance.getPath();
        }
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>optional string path = 1;</code>
         */
        public com.google.protobuf.ByteString
            getPathBytes() {
          return instance.getPathBytes();
        }
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>optional string path = 1;</code>
         */
        public Builder setPath(
            java.lang.String value) {
          copyOnWrite();
          instance.setPath(value);
          return this;
        }
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>optional string path = 1;</code>
         */
        public Builder clearPath() {
          copyOnWrite();
          instance.clearPath();
          return this;
        }
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>optional string path = 1;</code>
         */
        public Builder setPathBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setPathBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.FileReference)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.FileReference();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.FileReference other = (com.android.aapt.Resources.FileReference) arg1;
            path_ = visitor.visitString(
                hasPath(), path_,
                other.hasPath(), other.path_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000001;
                    path_ = s;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.FileReference.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.FileReference)
      private static final com.android.aapt.Resources.FileReference DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new FileReference();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.FileReference getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<FileReference> PARSER;
  
      public static com.google.protobuf.Parser<FileReference> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface PrimitiveOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Primitive)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional uint32 type = 1;</code>
       */
      boolean hasType();
      /**
       * <code>optional uint32 type = 1;</code>
       */
      int getType();
  
      /**
       * <code>optional uint32 data = 2;</code>
       */
      boolean hasData();
      /**
       * <code>optional uint32 data = 2;</code>
       */
      int getData();
    }
    /**
     * <pre>
     * A value that represents a primitive data type (float, int, boolean, etc.).
     * Corresponds to the fields (type/data) of the C struct android::Res_value.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Primitive}
     */
    public  static final class Primitive extends
        com.google.protobuf.GeneratedMessageLite<
            Primitive, Primitive.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Primitive)
        PrimitiveOrBuilder {
      private Primitive() {
      }
      private int bitField0_;
      public static final int TYPE_FIELD_NUMBER = 1;
      private int type_;
      /**
       * <code>optional uint32 type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional uint32 type = 1;</code>
       */
      public int getType() {
        return type_;
      }
      /**
       * <code>optional uint32 type = 1;</code>
       */
      private void setType(int value) {
        bitField0_ |= 0x00000001;
        type_ = value;
      }
      /**
       * <code>optional uint32 type = 1;</code>
       */
      private void clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
      }
  
      public static final int DATA_FIELD_NUMBER = 2;
      private int data_;
      /**
       * <code>optional uint32 data = 2;</code>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional uint32 data = 2;</code>
       */
      public int getData() {
        return data_;
      }
      /**
       * <code>optional uint32 data = 2;</code>
       */
      private void setData(int value) {
        bitField0_ |= 0x00000002;
        data_ = value;
      }
      /**
       * <code>optional uint32 data = 2;</code>
       */
      private void clearData() {
        bitField0_ = (bitField0_ & ~0x00000002);
        data_ = 0;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, type_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, data_);
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, type_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, data_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Primitive parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Primitive 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 com.android.aapt.Resources.Primitive parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Primitive 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 com.android.aapt.Resources.Primitive parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Primitive 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 com.android.aapt.Resources.Primitive parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Primitive parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Primitive parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Primitive 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Primitive prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that represents a primitive data type (float, int, boolean, etc.).
       * Corresponds to the fields (type/data) of the C struct android::Res_value.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Primitive}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Primitive, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Primitive)
          com.android.aapt.Resources.PrimitiveOrBuilder {
        // Construct using com.android.aapt.Resources.Primitive.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional uint32 type = 1;</code>
         */
        public boolean hasType() {
          return instance.hasType();
        }
        /**
         * <code>optional uint32 type = 1;</code>
         */
        public int getType() {
          return instance.getType();
        }
        /**
         * <code>optional uint32 type = 1;</code>
         */
        public Builder setType(int value) {
          copyOnWrite();
          instance.setType(value);
          return this;
        }
        /**
         * <code>optional uint32 type = 1;</code>
         */
        public Builder clearType() {
          copyOnWrite();
          instance.clearType();
          return this;
        }
  
        /**
         * <code>optional uint32 data = 2;</code>
         */
        public boolean hasData() {
          return instance.hasData();
        }
        /**
         * <code>optional uint32 data = 2;</code>
         */
        public int getData() {
          return instance.getData();
        }
        /**
         * <code>optional uint32 data = 2;</code>
         */
        public Builder setData(int value) {
          copyOnWrite();
          instance.setData(value);
          return this;
        }
        /**
         * <code>optional uint32 data = 2;</code>
         */
        public Builder clearData() {
          copyOnWrite();
          instance.clearData();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Primitive)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Primitive();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Primitive other = (com.android.aapt.Resources.Primitive) arg1;
            type_ = visitor.visitInt(
                hasType(), type_,
                other.hasType(), other.type_);
            data_ = visitor.visitInt(
                hasData(), data_,
                other.hasData(), other.data_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    bitField0_ |= 0x00000001;
                    type_ = input.readUInt32();
                    break;
                  }
                  case 16: {
                    bitField0_ |= 0x00000002;
                    data_ = input.readUInt32();
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Primitive.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Primitive)
      private static final com.android.aapt.Resources.Primitive DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Primitive();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Primitive getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Primitive> PARSER;
  
      public static com.google.protobuf.Parser<Primitive> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface AttributeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Attribute)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
       * enum FormatFlags.
       * </pre>
       *
       * <code>optional uint32 format_flags = 1;</code>
       */
      boolean hasFormatFlags();
      /**
       * <pre>
       * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
       * enum FormatFlags.
       * </pre>
       *
       * <code>optional uint32 format_flags = 1;</code>
       */
      int getFormatFlags();
  
      /**
       * <pre>
       * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 min_int = 2;</code>
       */
      boolean hasMinInt();
      /**
       * <pre>
       * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 min_int = 2;</code>
       */
      int getMinInt();
  
      /**
       * <pre>
       * The largest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 max_int = 3;</code>
       */
      boolean hasMaxInt();
      /**
       * <pre>
       * The largest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 max_int = 3;</code>
       */
      int getMaxInt();
  
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      java.util.List<com.android.aapt.Resources.Attribute.Symbol> 
          getSymbolList();
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      com.android.aapt.Resources.Attribute.Symbol getSymbol(int index);
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      int getSymbolCount();
    }
    /**
     * <pre>
     * A value that represents an XML attribute and what values it accepts.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Attribute}
     */
    public  static final class Attribute extends
        com.google.protobuf.GeneratedMessageLite<
            Attribute, Attribute.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Attribute)
        AttributeOrBuilder {
      private Attribute() {
        symbol_ = emptyProtobufList();
      }
      /**
       * <pre>
       * Bitmask of formats allowed for an attribute.
       * </pre>
       *
       * Protobuf enum {@code aapt.pb.Attribute.FormatFlags}
       */
      public enum FormatFlags
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <pre>
         * Allows any type except ENUM and FLAGS.
         * </pre>
         *
         * <code>ANY = 65535;</code>
         */
        ANY(65535),
        /**
         * <pre>
         * Allows Reference values.
         * </pre>
         *
         * <code>REFERENCE = 1;</code>
         */
        REFERENCE(1),
        /**
         * <pre>
         * Allows String/StyledString values.
         * </pre>
         *
         * <code>STRING = 2;</code>
         */
        STRING(2),
        /**
         * <pre>
         * Allows any integer BinaryPrimitive values.
         * </pre>
         *
         * <code>INTEGER = 4;</code>
         */
        INTEGER(4),
        /**
         * <pre>
         * Allows any boolean BinaryPrimitive values.
         * </pre>
         *
         * <code>BOOLEAN = 8;</code>
         */
        BOOLEAN(8),
        /**
         * <pre>
         * Allows any color BinaryPrimitive values.
         * </pre>
         *
         * <code>COLOR = 16;</code>
         */
        COLOR(16),
        /**
         * <pre>
         * Allows any float BinaryPrimitive values.
         * </pre>
         *
         * <code>FLOAT = 32;</code>
         */
        FLOAT(32),
        /**
         * <pre>
         * Allows any dimension BinaryPrimitive values.
         * </pre>
         *
         * <code>DIMENSION = 64;</code>
         */
        DIMENSION(64),
        /**
         * <pre>
         * Allows any fraction BinaryPrimitive values.
         * </pre>
         *
         * <code>FRACTION = 128;</code>
         */
        FRACTION(128),
        /**
         * <pre>
         * Allows enums that are defined in the Attribute's symbols.
         * </pre>
         *
         * <code>ENUM = 65536;</code>
         */
        ENUM(65536),
        /**
         * <pre>
         * ENUM and FLAGS cannot BOTH be set.
         * </pre>
         *
         * <code>FLAGS = 131072;</code>
         */
        FLAGS(131072),
        ;
  
        /**
         * <pre>
         * Allows any type except ENUM and FLAGS.
         * </pre>
         *
         * <code>ANY = 65535;</code>
         */
        public static final int ANY_VALUE = 65535;
        /**
         * <pre>
         * Allows Reference values.
         * </pre>
         *
         * <code>REFERENCE = 1;</code>
         */
        public static final int REFERENCE_VALUE = 1;
        /**
         * <pre>
         * Allows String/StyledString values.
         * </pre>
         *
         * <code>STRING = 2;</code>
         */
        public static final int STRING_VALUE = 2;
        /**
         * <pre>
         * Allows any integer BinaryPrimitive values.
         * </pre>
         *
         * <code>INTEGER = 4;</code>
         */
        public static final int INTEGER_VALUE = 4;
        /**
         * <pre>
         * Allows any boolean BinaryPrimitive values.
         * </pre>
         *
         * <code>BOOLEAN = 8;</code>
         */
        public static final int BOOLEAN_VALUE = 8;
        /**
         * <pre>
         * Allows any color BinaryPrimitive values.
         * </pre>
         *
         * <code>COLOR = 16;</code>
         */
        public static final int COLOR_VALUE = 16;
        /**
         * <pre>
         * Allows any float BinaryPrimitive values.
         * </pre>
         *
         * <code>FLOAT = 32;</code>
         */
        public static final int FLOAT_VALUE = 32;
        /**
         * <pre>
         * Allows any dimension BinaryPrimitive values.
         * </pre>
         *
         * <code>DIMENSION = 64;</code>
         */
        public static final int DIMENSION_VALUE = 64;
        /**
         * <pre>
         * Allows any fraction BinaryPrimitive values.
         * </pre>
         *
         * <code>FRACTION = 128;</code>
         */
        public static final int FRACTION_VALUE = 128;
        /**
         * <pre>
         * Allows enums that are defined in the Attribute's symbols.
         * </pre>
         *
         * <code>ENUM = 65536;</code>
         */
        public static final int ENUM_VALUE = 65536;
        /**
         * <pre>
         * ENUM and FLAGS cannot BOTH be set.
         * </pre>
         *
         * <code>FLAGS = 131072;</code>
         */
        public static final int FLAGS_VALUE = 131072;
  
  
        public final int getNumber() {
          return value;
        }
  
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static FormatFlags valueOf(int value) {
          return forNumber(value);
        }
  
        public static FormatFlags forNumber(int value) {
          switch (value) {
            case 65535: return ANY;
            case 1: return REFERENCE;
            case 2: return STRING;
            case 4: return INTEGER;
            case 8: return BOOLEAN;
            case 16: return COLOR;
            case 32: return FLOAT;
            case 64: return DIMENSION;
            case 128: return FRACTION;
            case 65536: return ENUM;
            case 131072: return FLAGS;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<FormatFlags>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            FormatFlags> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<FormatFlags>() {
                public FormatFlags findValueByNumber(int number) {
                  return FormatFlags.forNumber(number);
                }
              };
  
        private final int value;
  
        private FormatFlags(int value) {
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:aapt.pb.Attribute.FormatFlags)
      }
  
      public interface SymbolOrBuilder extends
          // @@protoc_insertion_point(interface_extends:aapt.pb.Attribute.Symbol)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        boolean hasSource();
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        com.android.aapt.Resources.Source getSource();
  
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        boolean hasComment();
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        java.lang.String getComment();
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        com.google.protobuf.ByteString
            getCommentBytes();
  
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference name = 3;</code>
         */
        boolean hasName();
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference name = 3;</code>
         */
        com.android.aapt.Resources.Reference getName();
  
        /**
         * <pre>
         * The value of the enum/flag.
         * </pre>
         *
         * <code>optional uint32 value = 4;</code>
         */
        boolean hasValue();
        /**
         * <pre>
         * The value of the enum/flag.
         * </pre>
         *
         * <code>optional uint32 value = 4;</code>
         */
        int getValue();
      }
      /**
       * <pre>
       * A Symbol used to represent an enum or a flag.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Attribute.Symbol}
       */
      public  static final class Symbol extends
          com.google.protobuf.GeneratedMessageLite<
              Symbol, Symbol.Builder> implements
          // @@protoc_insertion_point(message_implements:aapt.pb.Attribute.Symbol)
          SymbolOrBuilder {
        private Symbol() {
          comment_ = "";
        }
        private int bitField0_;
        public static final int SOURCE_FIELD_NUMBER = 1;
        private com.android.aapt.Resources.Source source_;
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public boolean hasSource() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public com.android.aapt.Resources.Source getSource() {
          return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
        }
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void setSource(com.android.aapt.Resources.Source value) {
          if (value == null) {
            throw new NullPointerException();
          }
          source_ = value;
          bitField0_ |= 0x00000001;
          }
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          source_ = builderForValue.build();
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void mergeSource(com.android.aapt.Resources.Source value) {
          if (source_ != null &&
              source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
            source_ =
              com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void clearSource() {  source_ = null;
          bitField0_ = (bitField0_ & ~0x00000001);
        }
  
        public static final int COMMENT_FIELD_NUMBER = 2;
        private java.lang.String comment_;
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public boolean hasComment() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public java.lang.String getComment() {
          return comment_;
        }
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(comment_);
        }
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void setComment(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          comment_ = value;
        }
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void clearComment() {
          bitField0_ = (bitField0_ & ~0x00000002);
          comment_ = getDefaultInstance().getComment();
        }
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void setCommentBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          comment_ = value.toStringUtf8();
        }
  
        public static final int NAME_FIELD_NUMBER = 3;
        private com.android.aapt.Resources.Reference name_;
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference name = 3;</code>
         */
        public boolean hasName() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference name = 3;</code>
         */
        public com.android.aapt.Resources.Reference getName() {
          return name_ == null ? com.android.aapt.Resources.Reference.getDefaultInstance() : name_;
        }
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference name = 3;</code>
         */
        private void setName(com.android.aapt.Resources.Reference value) {
          if (value == null) {
            throw new NullPointerException();
          }
          name_ = value;
          bitField0_ |= 0x00000004;
          }
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference name = 3;</code>
         */
        private void setName(
            com.android.aapt.Resources.Reference.Builder builderForValue) {
          name_ = builderForValue.build();
          bitField0_ |= 0x00000004;
        }
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference name = 3;</code>
         */
        private void mergeName(com.android.aapt.Resources.Reference value) {
          if (name_ != null &&
              name_ != com.android.aapt.Resources.Reference.getDefaultInstance()) {
            name_ =
              com.android.aapt.Resources.Reference.newBuilder(name_).mergeFrom(value).buildPartial();
          } else {
            name_ = value;
          }
          bitField0_ |= 0x00000004;
        }
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference name = 3;</code>
         */
        private void clearName() {  name_ = null;
          bitField0_ = (bitField0_ & ~0x00000004);
        }
  
        public static final int VALUE_FIELD_NUMBER = 4;
        private int value_;
        /**
         * <pre>
         * The value of the enum/flag.
         * </pre>
         *
         * <code>optional uint32 value = 4;</code>
         */
        public boolean hasValue() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <pre>
         * The value of the enum/flag.
         * </pre>
         *
         * <code>optional uint32 value = 4;</code>
         */
        public int getValue() {
          return value_;
        }
        /**
         * <pre>
         * The value of the enum/flag.
         * </pre>
         *
         * <code>optional uint32 value = 4;</code>
         */
        private void setValue(int value) {
          bitField0_ |= 0x00000008;
          value_ = value;
        }
        /**
         * <pre>
         * The value of the enum/flag.
         * </pre>
         *
         * <code>optional uint32 value = 4;</code>
         */
        private void clearValue() {
          bitField0_ = (bitField0_ & ~0x00000008);
          value_ = 0;
        }
  
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeMessage(1, getSource());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeString(2, getComment());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeMessage(3, getName());
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            output.writeUInt32(4, value_);
          }
          unknownFields.writeTo(output);
        }
  
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
  
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(1, getSource());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeStringSize(2, getComment());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(3, getName());
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            size += com.google.protobuf.CodedOutputStream
              .computeUInt32Size(4, value_);
          }
          size += unknownFields.getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
  
        public static com.android.aapt.Resources.Attribute.Symbol parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Attribute.Symbol 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 com.android.aapt.Resources.Attribute.Symbol parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Attribute.Symbol 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 com.android.aapt.Resources.Attribute.Symbol parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Attribute.Symbol 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 com.android.aapt.Resources.Attribute.Symbol parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Attribute.Symbol parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Attribute.Symbol parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Attribute.Symbol 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 DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.android.aapt.Resources.Attribute.Symbol prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
  
        /**
         * <pre>
         * A Symbol used to represent an enum or a flag.
         * </pre>
         *
         * Protobuf type {@code aapt.pb.Attribute.Symbol}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Attribute.Symbol, Builder> implements
            // @@protoc_insertion_point(builder_implements:aapt.pb.Attribute.Symbol)
            com.android.aapt.Resources.Attribute.SymbolOrBuilder {
          // Construct using com.android.aapt.Resources.Attribute.Symbol.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public boolean hasSource() {
            return instance.hasSource();
          }
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public com.android.aapt.Resources.Source getSource() {
            return instance.getSource();
          }
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder setSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.setSource(value);
            return this;
            }
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder setSource(
              com.android.aapt.Resources.Source.Builder builderForValue) {
            copyOnWrite();
            instance.setSource(builderForValue);
            return this;
          }
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder mergeSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.mergeSource(value);
            return this;
          }
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder clearSource() {  copyOnWrite();
            instance.clearSource();
            return this;
          }
  
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public boolean hasComment() {
            return instance.hasComment();
          }
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public java.lang.String getComment() {
            return instance.getComment();
          }
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public com.google.protobuf.ByteString
              getCommentBytes() {
            return instance.getCommentBytes();
          }
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder setComment(
              java.lang.String value) {
            copyOnWrite();
            instance.setComment(value);
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder clearComment() {
            copyOnWrite();
            instance.clearComment();
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder setCommentBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setCommentBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference name = 3;</code>
           */
          public boolean hasName() {
            return instance.hasName();
          }
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference name = 3;</code>
           */
          public com.android.aapt.Resources.Reference getName() {
            return instance.getName();
          }
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference name = 3;</code>
           */
          public Builder setName(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.setName(value);
            return this;
            }
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference name = 3;</code>
           */
          public Builder setName(
              com.android.aapt.Resources.Reference.Builder builderForValue) {
            copyOnWrite();
            instance.setName(builderForValue);
            return this;
          }
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference name = 3;</code>
           */
          public Builder mergeName(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.mergeName(value);
            return this;
          }
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference name = 3;</code>
           */
          public Builder clearName() {  copyOnWrite();
            instance.clearName();
            return this;
          }
  
          /**
           * <pre>
           * The value of the enum/flag.
           * </pre>
           *
           * <code>optional uint32 value = 4;</code>
           */
          public boolean hasValue() {
            return instance.hasValue();
          }
          /**
           * <pre>
           * The value of the enum/flag.
           * </pre>
           *
           * <code>optional uint32 value = 4;</code>
           */
          public int getValue() {
            return instance.getValue();
          }
          /**
           * <pre>
           * The value of the enum/flag.
           * </pre>
           *
           * <code>optional uint32 value = 4;</code>
           */
          public Builder setValue(int value) {
            copyOnWrite();
            instance.setValue(value);
            return this;
          }
          /**
           * <pre>
           * The value of the enum/flag.
           * </pre>
           *
           * <code>optional uint32 value = 4;</code>
           */
          public Builder clearValue() {
            copyOnWrite();
            instance.clearValue();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:aapt.pb.Attribute.Symbol)
        }
        protected final Object dynamicMethod(
            com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
            Object arg0, Object arg1) {
          switch (method) {
            case NEW_MUTABLE_INSTANCE: {
              return new com.android.aapt.Resources.Attribute.Symbol();
            }
            case IS_INITIALIZED: {
              return DEFAULT_INSTANCE;
            }
            case MAKE_IMMUTABLE: {
              return null;
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case VISIT: {
              Visitor visitor = (Visitor) arg0;
              com.android.aapt.Resources.Attribute.Symbol other = (com.android.aapt.Resources.Attribute.Symbol) arg1;
              source_ = visitor.visitMessage(source_, other.source_);
              comment_ = visitor.visitString(
                  hasComment(), comment_,
                  other.hasComment(), other.comment_);
              name_ = visitor.visitMessage(name_, other.name_);
              value_ = visitor.visitInt(
                  hasValue(), value_,
                  other.hasValue(), other.value_);
              if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                  .INSTANCE) {
                bitField0_ |= other.bitField0_;
              }
              return this;
            }
            case MERGE_FROM_STREAM: {
              com.google.protobuf.CodedInputStream input =
                  (com.google.protobuf.CodedInputStream) arg0;
              com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                  (com.google.protobuf.ExtensionRegistryLite) arg1;
              try {
                boolean done = false;
                while (!done) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      done = true;
                      break;
                    default: {
                      if (!parseUnknownField(tag, input)) {
                        done = true;
                      }
                      break;
                    }
                    case 10: {
                      com.android.aapt.Resources.Source.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000001) == 0x00000001)) {
                        subBuilder = source_.toBuilder();
                      }
                      source_ = input.readMessage(com.android.aapt.Resources.Source.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(source_);
                        source_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000001;
                      break;
                    }
                    case 18: {
                      java.lang.String s = input.readString();
                      bitField0_ |= 0x00000002;
                      comment_ = s;
                      break;
                    }
                    case 26: {
                      com.android.aapt.Resources.Reference.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000004) == 0x00000004)) {
                        subBuilder = name_.toBuilder();
                      }
                      name_ = input.readMessage(com.android.aapt.Resources.Reference.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(name_);
                        name_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000004;
                      break;
                    }
                    case 32: {
                      bitField0_ |= 0x00000008;
                      value_ = input.readUInt32();
                      break;
                    }
                  }
                }
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw new RuntimeException(e.setUnfinishedMessage(this));
              } catch (java.io.IOException e) {
                throw new RuntimeException(
                    new com.google.protobuf.InvalidProtocolBufferException(
                        e.getMessage()).setUnfinishedMessage(this));
              } finally {
              }
            }
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              if (PARSER == null) {    synchronized (com.android.aapt.Resources.Attribute.Symbol.class) {
                  if (PARSER == null) {
                    PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                  }
                }
              }
              return PARSER;
            }
          }
          throw new UnsupportedOperationException();
        }
  
  
        // @@protoc_insertion_point(class_scope:aapt.pb.Attribute.Symbol)
        private static final com.android.aapt.Resources.Attribute.Symbol DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new Symbol();
          DEFAULT_INSTANCE.makeImmutable();
        }
  
        public static com.android.aapt.Resources.Attribute.Symbol getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Symbol> PARSER;
  
        public static com.google.protobuf.Parser<Symbol> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      private int bitField0_;
      public static final int FORMAT_FLAGS_FIELD_NUMBER = 1;
      private int formatFlags_;
      /**
       * <pre>
       * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
       * enum FormatFlags.
       * </pre>
       *
       * <code>optional uint32 format_flags = 1;</code>
       */
      public boolean hasFormatFlags() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
       * enum FormatFlags.
       * </pre>
       *
       * <code>optional uint32 format_flags = 1;</code>
       */
      public int getFormatFlags() {
        return formatFlags_;
      }
      /**
       * <pre>
       * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
       * enum FormatFlags.
       * </pre>
       *
       * <code>optional uint32 format_flags = 1;</code>
       */
      private void setFormatFlags(int value) {
        bitField0_ |= 0x00000001;
        formatFlags_ = value;
      }
      /**
       * <pre>
       * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
       * enum FormatFlags.
       * </pre>
       *
       * <code>optional uint32 format_flags = 1;</code>
       */
      private void clearFormatFlags() {
        bitField0_ = (bitField0_ & ~0x00000001);
        formatFlags_ = 0;
      }
  
      public static final int MIN_INT_FIELD_NUMBER = 2;
      private int minInt_;
      /**
       * <pre>
       * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 min_int = 2;</code>
       */
      public boolean hasMinInt() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 min_int = 2;</code>
       */
      public int getMinInt() {
        return minInt_;
      }
      /**
       * <pre>
       * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 min_int = 2;</code>
       */
      private void setMinInt(int value) {
        bitField0_ |= 0x00000002;
        minInt_ = value;
      }
      /**
       * <pre>
       * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 min_int = 2;</code>
       */
      private void clearMinInt() {
        bitField0_ = (bitField0_ & ~0x00000002);
        minInt_ = 0;
      }
  
      public static final int MAX_INT_FIELD_NUMBER = 3;
      private int maxInt_;
      /**
       * <pre>
       * The largest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 max_int = 3;</code>
       */
      public boolean hasMaxInt() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * The largest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 max_int = 3;</code>
       */
      public int getMaxInt() {
        return maxInt_;
      }
      /**
       * <pre>
       * The largest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 max_int = 3;</code>
       */
      private void setMaxInt(int value) {
        bitField0_ |= 0x00000004;
        maxInt_ = value;
      }
      /**
       * <pre>
       * The largest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>optional int32 max_int = 3;</code>
       */
      private void clearMaxInt() {
        bitField0_ = (bitField0_ & ~0x00000004);
        maxInt_ = 0;
      }
  
      public static final int SYMBOL_FIELD_NUMBER = 4;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Attribute.Symbol> symbol_;
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      public java.util.List<com.android.aapt.Resources.Attribute.Symbol> getSymbolList() {
        return symbol_;
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.Attribute.SymbolOrBuilder> 
          getSymbolOrBuilderList() {
        return symbol_;
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      public int getSymbolCount() {
        return symbol_.size();
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      public com.android.aapt.Resources.Attribute.Symbol getSymbol(int index) {
        return symbol_.get(index);
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      public com.android.aapt.Resources.Attribute.SymbolOrBuilder getSymbolOrBuilder(
          int index) {
        return symbol_.get(index);
      }
      private void ensureSymbolIsMutable() {
        if (!symbol_.isModifiable()) {
          symbol_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(symbol_);
         }
      }
  
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      private void setSymbol(
          int index, com.android.aapt.Resources.Attribute.Symbol value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSymbolIsMutable();
        symbol_.set(index, value);
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      private void setSymbol(
          int index, com.android.aapt.Resources.Attribute.Symbol.Builder builderForValue) {
        ensureSymbolIsMutable();
        symbol_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      private void addSymbol(com.android.aapt.Resources.Attribute.Symbol value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSymbolIsMutable();
        symbol_.add(value);
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      private void addSymbol(
          int index, com.android.aapt.Resources.Attribute.Symbol value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSymbolIsMutable();
        symbol_.add(index, value);
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      private void addSymbol(
          com.android.aapt.Resources.Attribute.Symbol.Builder builderForValue) {
        ensureSymbolIsMutable();
        symbol_.add(builderForValue.build());
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      private void addSymbol(
          int index, com.android.aapt.Resources.Attribute.Symbol.Builder builderForValue) {
        ensureSymbolIsMutable();
        symbol_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      private void addAllSymbol(
          java.lang.Iterable<? extends com.android.aapt.Resources.Attribute.Symbol> values) {
        ensureSymbolIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, symbol_);
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      private void clearSymbol() {
        symbol_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
       */
      private void removeSymbol(int index) {
        ensureSymbolIsMutable();
        symbol_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, formatFlags_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, minInt_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, maxInt_);
        }
        for (int i = 0; i < symbol_.size(); i++) {
          output.writeMessage(4, symbol_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, formatFlags_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, minInt_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, maxInt_);
        }
        for (int i = 0; i < symbol_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, symbol_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Attribute parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Attribute 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 com.android.aapt.Resources.Attribute parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Attribute 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 com.android.aapt.Resources.Attribute parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Attribute 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 com.android.aapt.Resources.Attribute parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Attribute parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Attribute parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Attribute 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Attribute prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that represents an XML attribute and what values it accepts.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Attribute}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Attribute, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Attribute)
          com.android.aapt.Resources.AttributeOrBuilder {
        // Construct using com.android.aapt.Resources.Attribute.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
         * enum FormatFlags.
         * </pre>
         *
         * <code>optional uint32 format_flags = 1;</code>
         */
        public boolean hasFormatFlags() {
          return instance.hasFormatFlags();
        }
        /**
         * <pre>
         * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
         * enum FormatFlags.
         * </pre>
         *
         * <code>optional uint32 format_flags = 1;</code>
         */
        public int getFormatFlags() {
          return instance.getFormatFlags();
        }
        /**
         * <pre>
         * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
         * enum FormatFlags.
         * </pre>
         *
         * <code>optional uint32 format_flags = 1;</code>
         */
        public Builder setFormatFlags(int value) {
          copyOnWrite();
          instance.setFormatFlags(value);
          return this;
        }
        /**
         * <pre>
         * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
         * enum FormatFlags.
         * </pre>
         *
         * <code>optional uint32 format_flags = 1;</code>
         */
        public Builder clearFormatFlags() {
          copyOnWrite();
          instance.clearFormatFlags();
          return this;
        }
  
        /**
         * <pre>
         * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>optional int32 min_int = 2;</code>
         */
        public boolean hasMinInt() {
          return instance.hasMinInt();
        }
        /**
         * <pre>
         * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>optional int32 min_int = 2;</code>
         */
        public int getMinInt() {
          return instance.getMinInt();
        }
        /**
         * <pre>
         * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>optional int32 min_int = 2;</code>
         */
        public Builder setMinInt(int value) {
          copyOnWrite();
          instance.setMinInt(value);
          return this;
        }
        /**
         * <pre>
         * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>optional int32 min_int = 2;</code>
         */
        public Builder clearMinInt() {
          copyOnWrite();
          instance.clearMinInt();
          return this;
        }
  
        /**
         * <pre>
         * The largest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>optional int32 max_int = 3;</code>
         */
        public boolean hasMaxInt() {
          return instance.hasMaxInt();
        }
        /**
         * <pre>
         * The largest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>optional int32 max_int = 3;</code>
         */
        public int getMaxInt() {
          return instance.getMaxInt();
        }
        /**
         * <pre>
         * The largest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>optional int32 max_int = 3;</code>
         */
        public Builder setMaxInt(int value) {
          copyOnWrite();
          instance.setMaxInt(value);
          return this;
        }
        /**
         * <pre>
         * The largest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>optional int32 max_int = 3;</code>
         */
        public Builder clearMaxInt() {
          copyOnWrite();
          instance.clearMaxInt();
          return this;
        }
  
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public java.util.List<com.android.aapt.Resources.Attribute.Symbol> getSymbolList() {
          return java.util.Collections.unmodifiableList(
              instance.getSymbolList());
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public int getSymbolCount() {
          return instance.getSymbolCount();
        }/**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public com.android.aapt.Resources.Attribute.Symbol getSymbol(int index) {
          return instance.getSymbol(index);
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public Builder setSymbol(
            int index, com.android.aapt.Resources.Attribute.Symbol value) {
          copyOnWrite();
          instance.setSymbol(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public Builder setSymbol(
            int index, com.android.aapt.Resources.Attribute.Symbol.Builder builderForValue) {
          copyOnWrite();
          instance.setSymbol(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public Builder addSymbol(com.android.aapt.Resources.Attribute.Symbol value) {
          copyOnWrite();
          instance.addSymbol(value);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public Builder addSymbol(
            int index, com.android.aapt.Resources.Attribute.Symbol value) {
          copyOnWrite();
          instance.addSymbol(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public Builder addSymbol(
            com.android.aapt.Resources.Attribute.Symbol.Builder builderForValue) {
          copyOnWrite();
          instance.addSymbol(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public Builder addSymbol(
            int index, com.android.aapt.Resources.Attribute.Symbol.Builder builderForValue) {
          copyOnWrite();
          instance.addSymbol(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public Builder addAllSymbol(
            java.lang.Iterable<? extends com.android.aapt.Resources.Attribute.Symbol> values) {
          copyOnWrite();
          instance.addAllSymbol(values);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public Builder clearSymbol() {
          copyOnWrite();
          instance.clearSymbol();
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .aapt.pb.Attribute.Symbol symbol = 4;</code>
         */
        public Builder removeSymbol(int index) {
          copyOnWrite();
          instance.removeSymbol(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Attribute)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Attribute();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            symbol_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Attribute other = (com.android.aapt.Resources.Attribute) arg1;
            formatFlags_ = visitor.visitInt(
                hasFormatFlags(), formatFlags_,
                other.hasFormatFlags(), other.formatFlags_);
            minInt_ = visitor.visitInt(
                hasMinInt(), minInt_,
                other.hasMinInt(), other.minInt_);
            maxInt_ = visitor.visitInt(
                hasMaxInt(), maxInt_,
                other.hasMaxInt(), other.maxInt_);
            symbol_= visitor.visitList(symbol_, other.symbol_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    bitField0_ |= 0x00000001;
                    formatFlags_ = input.readUInt32();
                    break;
                  }
                  case 16: {
                    bitField0_ |= 0x00000002;
                    minInt_ = input.readInt32();
                    break;
                  }
                  case 24: {
                    bitField0_ |= 0x00000004;
                    maxInt_ = input.readInt32();
                    break;
                  }
                  case 34: {
                    if (!symbol_.isModifiable()) {
                      symbol_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(symbol_);
                    }
                    symbol_.add(
                        input.readMessage(com.android.aapt.Resources.Attribute.Symbol.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Attribute.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Attribute)
      private static final com.android.aapt.Resources.Attribute DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Attribute();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Attribute getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Attribute> PARSER;
  
      public static com.google.protobuf.Parser<Attribute> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StyleOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Style)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>optional .aapt.pb.Reference parent = 1;</code>
       */
      boolean hasParent();
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>optional .aapt.pb.Reference parent = 1;</code>
       */
      com.android.aapt.Resources.Reference getParent();
  
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>optional .aapt.pb.Source parent_source = 2;</code>
       */
      boolean hasParentSource();
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>optional .aapt.pb.Source parent_source = 2;</code>
       */
      com.android.aapt.Resources.Source getParentSource();
  
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      java.util.List<com.android.aapt.Resources.Style.Entry> 
          getEntryList();
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      com.android.aapt.Resources.Style.Entry getEntry(int index);
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      int getEntryCount();
    }
    /**
     * <pre>
     * A value that represents a style.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Style}
     */
    public  static final class Style extends
        com.google.protobuf.GeneratedMessageLite<
            Style, Style.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Style)
        StyleOrBuilder {
      private Style() {
        entry_ = emptyProtobufList();
      }
      public interface EntryOrBuilder extends
          // @@protoc_insertion_point(interface_extends:aapt.pb.Style.Entry)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        boolean hasSource();
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        com.android.aapt.Resources.Source getSource();
  
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        boolean hasComment();
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        java.lang.String getComment();
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        com.google.protobuf.ByteString
            getCommentBytes();
  
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference key = 3;</code>
         */
        boolean hasKey();
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference key = 3;</code>
         */
        com.android.aapt.Resources.Reference getKey();
  
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        boolean hasItem();
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        com.android.aapt.Resources.Item getItem();
      }
      /**
       * <pre>
       * An XML attribute/value pair defined in the style.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Style.Entry}
       */
      public  static final class Entry extends
          com.google.protobuf.GeneratedMessageLite<
              Entry, Entry.Builder> implements
          // @@protoc_insertion_point(message_implements:aapt.pb.Style.Entry)
          EntryOrBuilder {
        private Entry() {
          comment_ = "";
        }
        private int bitField0_;
        public static final int SOURCE_FIELD_NUMBER = 1;
        private com.android.aapt.Resources.Source source_;
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public boolean hasSource() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public com.android.aapt.Resources.Source getSource() {
          return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
        }
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void setSource(com.android.aapt.Resources.Source value) {
          if (value == null) {
            throw new NullPointerException();
          }
          source_ = value;
          bitField0_ |= 0x00000001;
          }
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          source_ = builderForValue.build();
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void mergeSource(com.android.aapt.Resources.Source value) {
          if (source_ != null &&
              source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
            source_ =
              com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void clearSource() {  source_ = null;
          bitField0_ = (bitField0_ & ~0x00000001);
        }
  
        public static final int COMMENT_FIELD_NUMBER = 2;
        private java.lang.String comment_;
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public boolean hasComment() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public java.lang.String getComment() {
          return comment_;
        }
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(comment_);
        }
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void setComment(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          comment_ = value;
        }
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void clearComment() {
          bitField0_ = (bitField0_ & ~0x00000002);
          comment_ = getDefaultInstance().getComment();
        }
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void setCommentBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          comment_ = value.toStringUtf8();
        }
  
        public static final int KEY_FIELD_NUMBER = 3;
        private com.android.aapt.Resources.Reference key_;
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference key = 3;</code>
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference key = 3;</code>
         */
        public com.android.aapt.Resources.Reference getKey() {
          return key_ == null ? com.android.aapt.Resources.Reference.getDefaultInstance() : key_;
        }
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference key = 3;</code>
         */
        private void setKey(com.android.aapt.Resources.Reference value) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          bitField0_ |= 0x00000004;
          }
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference key = 3;</code>
         */
        private void setKey(
            com.android.aapt.Resources.Reference.Builder builderForValue) {
          key_ = builderForValue.build();
          bitField0_ |= 0x00000004;
        }
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference key = 3;</code>
         */
        private void mergeKey(com.android.aapt.Resources.Reference value) {
          if (key_ != null &&
              key_ != com.android.aapt.Resources.Reference.getDefaultInstance()) {
            key_ =
              com.android.aapt.Resources.Reference.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          bitField0_ |= 0x00000004;
        }
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference key = 3;</code>
         */
        private void clearKey() {  key_ = null;
          bitField0_ = (bitField0_ & ~0x00000004);
        }
  
        public static final int ITEM_FIELD_NUMBER = 4;
        private com.android.aapt.Resources.Item item_;
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        public boolean hasItem() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        public com.android.aapt.Resources.Item getItem() {
          return item_ == null ? com.android.aapt.Resources.Item.getDefaultInstance() : item_;
        }
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        private void setItem(com.android.aapt.Resources.Item value) {
          if (value == null) {
            throw new NullPointerException();
          }
          item_ = value;
          bitField0_ |= 0x00000008;
          }
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        private void setItem(
            com.android.aapt.Resources.Item.Builder builderForValue) {
          item_ = builderForValue.build();
          bitField0_ |= 0x00000008;
        }
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        private void mergeItem(com.android.aapt.Resources.Item value) {
          if (item_ != null &&
              item_ != com.android.aapt.Resources.Item.getDefaultInstance()) {
            item_ =
              com.android.aapt.Resources.Item.newBuilder(item_).mergeFrom(value).buildPartial();
          } else {
            item_ = value;
          }
          bitField0_ |= 0x00000008;
        }
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        private void clearItem() {  item_ = null;
          bitField0_ = (bitField0_ & ~0x00000008);
        }
  
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeMessage(1, getSource());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeString(2, getComment());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeMessage(3, getKey());
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            output.writeMessage(4, getItem());
          }
          unknownFields.writeTo(output);
        }
  
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
  
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(1, getSource());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeStringSize(2, getComment());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(3, getKey());
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(4, getItem());
          }
          size += unknownFields.getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
  
        public static com.android.aapt.Resources.Style.Entry parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Style.Entry 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 com.android.aapt.Resources.Style.Entry parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Style.Entry 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 com.android.aapt.Resources.Style.Entry parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Style.Entry 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 com.android.aapt.Resources.Style.Entry parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Style.Entry parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Style.Entry parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Style.Entry 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 DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.android.aapt.Resources.Style.Entry prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
  
        /**
         * <pre>
         * An XML attribute/value pair defined in the style.
         * </pre>
         *
         * Protobuf type {@code aapt.pb.Style.Entry}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Style.Entry, Builder> implements
            // @@protoc_insertion_point(builder_implements:aapt.pb.Style.Entry)
            com.android.aapt.Resources.Style.EntryOrBuilder {
          // Construct using com.android.aapt.Resources.Style.Entry.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public boolean hasSource() {
            return instance.hasSource();
          }
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public com.android.aapt.Resources.Source getSource() {
            return instance.getSource();
          }
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder setSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.setSource(value);
            return this;
            }
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder setSource(
              com.android.aapt.Resources.Source.Builder builderForValue) {
            copyOnWrite();
            instance.setSource(builderForValue);
            return this;
          }
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder mergeSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.mergeSource(value);
            return this;
          }
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder clearSource() {  copyOnWrite();
            instance.clearSource();
            return this;
          }
  
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public boolean hasComment() {
            return instance.hasComment();
          }
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public java.lang.String getComment() {
            return instance.getComment();
          }
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public com.google.protobuf.ByteString
              getCommentBytes() {
            return instance.getCommentBytes();
          }
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder setComment(
              java.lang.String value) {
            copyOnWrite();
            instance.setComment(value);
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder clearComment() {
            copyOnWrite();
            instance.clearComment();
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder setCommentBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setCommentBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference key = 3;</code>
           */
          public boolean hasKey() {
            return instance.hasKey();
          }
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference key = 3;</code>
           */
          public com.android.aapt.Resources.Reference getKey() {
            return instance.getKey();
          }
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference key = 3;</code>
           */
          public Builder setKey(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.setKey(value);
            return this;
            }
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference key = 3;</code>
           */
          public Builder setKey(
              com.android.aapt.Resources.Reference.Builder builderForValue) {
            copyOnWrite();
            instance.setKey(builderForValue);
            return this;
          }
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference key = 3;</code>
           */
          public Builder mergeKey(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.mergeKey(value);
            return this;
          }
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference key = 3;</code>
           */
          public Builder clearKey() {  copyOnWrite();
            instance.clearKey();
            return this;
          }
  
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public boolean hasItem() {
            return instance.hasItem();
          }
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public com.android.aapt.Resources.Item getItem() {
            return instance.getItem();
          }
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public Builder setItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.setItem(value);
            return this;
            }
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public Builder setItem(
              com.android.aapt.Resources.Item.Builder builderForValue) {
            copyOnWrite();
            instance.setItem(builderForValue);
            return this;
          }
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public Builder mergeItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.mergeItem(value);
            return this;
          }
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public Builder clearItem() {  copyOnWrite();
            instance.clearItem();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:aapt.pb.Style.Entry)
        }
        protected final Object dynamicMethod(
            com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
            Object arg0, Object arg1) {
          switch (method) {
            case NEW_MUTABLE_INSTANCE: {
              return new com.android.aapt.Resources.Style.Entry();
            }
            case IS_INITIALIZED: {
              return DEFAULT_INSTANCE;
            }
            case MAKE_IMMUTABLE: {
              return null;
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case VISIT: {
              Visitor visitor = (Visitor) arg0;
              com.android.aapt.Resources.Style.Entry other = (com.android.aapt.Resources.Style.Entry) arg1;
              source_ = visitor.visitMessage(source_, other.source_);
              comment_ = visitor.visitString(
                  hasComment(), comment_,
                  other.hasComment(), other.comment_);
              key_ = visitor.visitMessage(key_, other.key_);
              item_ = visitor.visitMessage(item_, other.item_);
              if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                  .INSTANCE) {
                bitField0_ |= other.bitField0_;
              }
              return this;
            }
            case MERGE_FROM_STREAM: {
              com.google.protobuf.CodedInputStream input =
                  (com.google.protobuf.CodedInputStream) arg0;
              com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                  (com.google.protobuf.ExtensionRegistryLite) arg1;
              try {
                boolean done = false;
                while (!done) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      done = true;
                      break;
                    default: {
                      if (!parseUnknownField(tag, input)) {
                        done = true;
                      }
                      break;
                    }
                    case 10: {
                      com.android.aapt.Resources.Source.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000001) == 0x00000001)) {
                        subBuilder = source_.toBuilder();
                      }
                      source_ = input.readMessage(com.android.aapt.Resources.Source.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(source_);
                        source_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000001;
                      break;
                    }
                    case 18: {
                      java.lang.String s = input.readString();
                      bitField0_ |= 0x00000002;
                      comment_ = s;
                      break;
                    }
                    case 26: {
                      com.android.aapt.Resources.Reference.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000004) == 0x00000004)) {
                        subBuilder = key_.toBuilder();
                      }
                      key_ = input.readMessage(com.android.aapt.Resources.Reference.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(key_);
                        key_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000004;
                      break;
                    }
                    case 34: {
                      com.android.aapt.Resources.Item.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000008) == 0x00000008)) {
                        subBuilder = item_.toBuilder();
                      }
                      item_ = input.readMessage(com.android.aapt.Resources.Item.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(item_);
                        item_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000008;
                      break;
                    }
                  }
                }
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw new RuntimeException(e.setUnfinishedMessage(this));
              } catch (java.io.IOException e) {
                throw new RuntimeException(
                    new com.google.protobuf.InvalidProtocolBufferException(
                        e.getMessage()).setUnfinishedMessage(this));
              } finally {
              }
            }
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              if (PARSER == null) {    synchronized (com.android.aapt.Resources.Style.Entry.class) {
                  if (PARSER == null) {
                    PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                  }
                }
              }
              return PARSER;
            }
          }
          throw new UnsupportedOperationException();
        }
  
  
        // @@protoc_insertion_point(class_scope:aapt.pb.Style.Entry)
        private static final com.android.aapt.Resources.Style.Entry DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new Entry();
          DEFAULT_INSTANCE.makeImmutable();
        }
  
        public static com.android.aapt.Resources.Style.Entry getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Entry> PARSER;
  
        public static com.google.protobuf.Parser<Entry> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      private int bitField0_;
      public static final int PARENT_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.Reference parent_;
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>optional .aapt.pb.Reference parent = 1;</code>
       */
      public boolean hasParent() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>optional .aapt.pb.Reference parent = 1;</code>
       */
      public com.android.aapt.Resources.Reference getParent() {
        return parent_ == null ? com.android.aapt.Resources.Reference.getDefaultInstance() : parent_;
      }
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>optional .aapt.pb.Reference parent = 1;</code>
       */
      private void setParent(com.android.aapt.Resources.Reference value) {
        if (value == null) {
          throw new NullPointerException();
        }
        parent_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>optional .aapt.pb.Reference parent = 1;</code>
       */
      private void setParent(
          com.android.aapt.Resources.Reference.Builder builderForValue) {
        parent_ = builderForValue.build();
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>optional .aapt.pb.Reference parent = 1;</code>
       */
      private void mergeParent(com.android.aapt.Resources.Reference value) {
        if (parent_ != null &&
            parent_ != com.android.aapt.Resources.Reference.getDefaultInstance()) {
          parent_ =
            com.android.aapt.Resources.Reference.newBuilder(parent_).mergeFrom(value).buildPartial();
        } else {
          parent_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>optional .aapt.pb.Reference parent = 1;</code>
       */
      private void clearParent() {  parent_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int PARENT_SOURCE_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.Source parentSource_;
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>optional .aapt.pb.Source parent_source = 2;</code>
       */
      public boolean hasParentSource() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>optional .aapt.pb.Source parent_source = 2;</code>
       */
      public com.android.aapt.Resources.Source getParentSource() {
        return parentSource_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : parentSource_;
      }
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>optional .aapt.pb.Source parent_source = 2;</code>
       */
      private void setParentSource(com.android.aapt.Resources.Source value) {
        if (value == null) {
          throw new NullPointerException();
        }
        parentSource_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>optional .aapt.pb.Source parent_source = 2;</code>
       */
      private void setParentSource(
          com.android.aapt.Resources.Source.Builder builderForValue) {
        parentSource_ = builderForValue.build();
        bitField0_ |= 0x00000002;
      }
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>optional .aapt.pb.Source parent_source = 2;</code>
       */
      private void mergeParentSource(com.android.aapt.Resources.Source value) {
        if (parentSource_ != null &&
            parentSource_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
          parentSource_ =
            com.android.aapt.Resources.Source.newBuilder(parentSource_).mergeFrom(value).buildPartial();
        } else {
          parentSource_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>optional .aapt.pb.Source parent_source = 2;</code>
       */
      private void clearParentSource() {  parentSource_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public static final int ENTRY_FIELD_NUMBER = 3;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Style.Entry> entry_;
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      public java.util.List<com.android.aapt.Resources.Style.Entry> getEntryList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.Style.EntryOrBuilder> 
          getEntryOrBuilderList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      public int getEntryCount() {
        return entry_.size();
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      public com.android.aapt.Resources.Style.Entry getEntry(int index) {
        return entry_.get(index);
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      public com.android.aapt.Resources.Style.EntryOrBuilder getEntryOrBuilder(
          int index) {
        return entry_.get(index);
      }
      private void ensureEntryIsMutable() {
        if (!entry_.isModifiable()) {
          entry_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(entry_);
         }
      }
  
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Style.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.set(index, value);
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Style.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      private void addEntry(com.android.aapt.Resources.Style.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.add(value);
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Style.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.add(index, value);
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      private void addEntry(
          com.android.aapt.Resources.Style.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.add(builderForValue.build());
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Style.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      private void addAllEntry(
          java.lang.Iterable<? extends com.android.aapt.Resources.Style.Entry> values) {
        ensureEntryIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, entry_);
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      private void clearEntry() {
        entry_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
       */
      private void removeEntry(int index) {
        ensureEntryIsMutable();
        entry_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, getParent());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, getParentSource());
        }
        for (int i = 0; i < entry_.size(); i++) {
          output.writeMessage(3, entry_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getParent());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getParentSource());
        }
        for (int i = 0; i < entry_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, entry_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Style parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Style 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 com.android.aapt.Resources.Style parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Style 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 com.android.aapt.Resources.Style parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Style 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 com.android.aapt.Resources.Style parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Style parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Style parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Style 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Style prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that represents a style.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Style}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Style, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Style)
          com.android.aapt.Resources.StyleOrBuilder {
        // Construct using com.android.aapt.Resources.Style.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference parent = 1;</code>
         */
        public boolean hasParent() {
          return instance.hasParent();
        }
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference parent = 1;</code>
         */
        public com.android.aapt.Resources.Reference getParent() {
          return instance.getParent();
        }
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference parent = 1;</code>
         */
        public Builder setParent(com.android.aapt.Resources.Reference value) {
          copyOnWrite();
          instance.setParent(value);
          return this;
          }
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference parent = 1;</code>
         */
        public Builder setParent(
            com.android.aapt.Resources.Reference.Builder builderForValue) {
          copyOnWrite();
          instance.setParent(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference parent = 1;</code>
         */
        public Builder mergeParent(com.android.aapt.Resources.Reference value) {
          copyOnWrite();
          instance.mergeParent(value);
          return this;
        }
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference parent = 1;</code>
         */
        public Builder clearParent() {  copyOnWrite();
          instance.clearParent();
          return this;
        }
  
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>optional .aapt.pb.Source parent_source = 2;</code>
         */
        public boolean hasParentSource() {
          return instance.hasParentSource();
        }
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>optional .aapt.pb.Source parent_source = 2;</code>
         */
        public com.android.aapt.Resources.Source getParentSource() {
          return instance.getParentSource();
        }
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>optional .aapt.pb.Source parent_source = 2;</code>
         */
        public Builder setParentSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.setParentSource(value);
          return this;
          }
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>optional .aapt.pb.Source parent_source = 2;</code>
         */
        public Builder setParentSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          copyOnWrite();
          instance.setParentSource(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>optional .aapt.pb.Source parent_source = 2;</code>
         */
        public Builder mergeParentSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.mergeParentSource(value);
          return this;
        }
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>optional .aapt.pb.Source parent_source = 2;</code>
         */
        public Builder clearParentSource() {  copyOnWrite();
          instance.clearParentSource();
          return this;
        }
  
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public java.util.List<com.android.aapt.Resources.Style.Entry> getEntryList() {
          return java.util.Collections.unmodifiableList(
              instance.getEntryList());
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public int getEntryCount() {
          return instance.getEntryCount();
        }/**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public com.android.aapt.Resources.Style.Entry getEntry(int index) {
          return instance.getEntry(index);
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Style.Entry value) {
          copyOnWrite();
          instance.setEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Style.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.setEntry(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public Builder addEntry(com.android.aapt.Resources.Style.Entry value) {
          copyOnWrite();
          instance.addEntry(value);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Style.Entry value) {
          copyOnWrite();
          instance.addEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public Builder addEntry(
            com.android.aapt.Resources.Style.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Style.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public Builder addAllEntry(
            java.lang.Iterable<? extends com.android.aapt.Resources.Style.Entry> values) {
          copyOnWrite();
          instance.addAllEntry(values);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public Builder clearEntry() {
          copyOnWrite();
          instance.clearEntry();
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .aapt.pb.Style.Entry entry = 3;</code>
         */
        public Builder removeEntry(int index) {
          copyOnWrite();
          instance.removeEntry(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Style)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Style();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            entry_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Style other = (com.android.aapt.Resources.Style) arg1;
            parent_ = visitor.visitMessage(parent_, other.parent_);
            parentSource_ = visitor.visitMessage(parentSource_, other.parentSource_);
            entry_= visitor.visitList(entry_, other.entry_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    com.android.aapt.Resources.Reference.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000001) == 0x00000001)) {
                      subBuilder = parent_.toBuilder();
                    }
                    parent_ = input.readMessage(com.android.aapt.Resources.Reference.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(parent_);
                      parent_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000001;
                    break;
                  }
                  case 18: {
                    com.android.aapt.Resources.Source.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000002) == 0x00000002)) {
                      subBuilder = parentSource_.toBuilder();
                    }
                    parentSource_ = input.readMessage(com.android.aapt.Resources.Source.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(parentSource_);
                      parentSource_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000002;
                    break;
                  }
                  case 26: {
                    if (!entry_.isModifiable()) {
                      entry_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(entry_);
                    }
                    entry_.add(
                        input.readMessage(com.android.aapt.Resources.Style.Entry.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Style.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Style)
      private static final com.android.aapt.Resources.Style DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Style();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Style getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Style> PARSER;
  
      public static com.google.protobuf.Parser<Style> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StyleableOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Styleable)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      java.util.List<com.android.aapt.Resources.Styleable.Entry> 
          getEntryList();
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      com.android.aapt.Resources.Styleable.Entry getEntry(int index);
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      int getEntryCount();
    }
    /**
     * <pre>
     * A value that represents a &lt;declare-styleable&gt; XML resource. These are not real resources and
     * only end up as Java fields in the generated R.java. They do not end up in the binary ARSC file.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Styleable}
     */
    public  static final class Styleable extends
        com.google.protobuf.GeneratedMessageLite<
            Styleable, Styleable.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Styleable)
        StyleableOrBuilder {
      private Styleable() {
        entry_ = emptyProtobufList();
      }
      public interface EntryOrBuilder extends
          // @@protoc_insertion_point(interface_extends:aapt.pb.Styleable.Entry)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        boolean hasSource();
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        com.android.aapt.Resources.Source getSource();
  
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        boolean hasComment();
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        java.lang.String getComment();
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        com.google.protobuf.ByteString
            getCommentBytes();
  
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference attr = 3;</code>
         */
        boolean hasAttr();
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference attr = 3;</code>
         */
        com.android.aapt.Resources.Reference getAttr();
      }
      /**
       * <pre>
       * An attribute defined for this styleable.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Styleable.Entry}
       */
      public  static final class Entry extends
          com.google.protobuf.GeneratedMessageLite<
              Entry, Entry.Builder> implements
          // @@protoc_insertion_point(message_implements:aapt.pb.Styleable.Entry)
          EntryOrBuilder {
        private Entry() {
          comment_ = "";
        }
        private int bitField0_;
        public static final int SOURCE_FIELD_NUMBER = 1;
        private com.android.aapt.Resources.Source source_;
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public boolean hasSource() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public com.android.aapt.Resources.Source getSource() {
          return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
        }
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void setSource(com.android.aapt.Resources.Source value) {
          if (value == null) {
            throw new NullPointerException();
          }
          source_ = value;
          bitField0_ |= 0x00000001;
          }
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          source_ = builderForValue.build();
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void mergeSource(com.android.aapt.Resources.Source value) {
          if (source_ != null &&
              source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
            source_ =
              com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void clearSource() {  source_ = null;
          bitField0_ = (bitField0_ & ~0x00000001);
        }
  
        public static final int COMMENT_FIELD_NUMBER = 2;
        private java.lang.String comment_;
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public boolean hasComment() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public java.lang.String getComment() {
          return comment_;
        }
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(comment_);
        }
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void setComment(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          comment_ = value;
        }
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void clearComment() {
          bitField0_ = (bitField0_ & ~0x00000002);
          comment_ = getDefaultInstance().getComment();
        }
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void setCommentBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          comment_ = value.toStringUtf8();
        }
  
        public static final int ATTR_FIELD_NUMBER = 3;
        private com.android.aapt.Resources.Reference attr_;
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference attr = 3;</code>
         */
        public boolean hasAttr() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference attr = 3;</code>
         */
        public com.android.aapt.Resources.Reference getAttr() {
          return attr_ == null ? com.android.aapt.Resources.Reference.getDefaultInstance() : attr_;
        }
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference attr = 3;</code>
         */
        private void setAttr(com.android.aapt.Resources.Reference value) {
          if (value == null) {
            throw new NullPointerException();
          }
          attr_ = value;
          bitField0_ |= 0x00000004;
          }
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference attr = 3;</code>
         */
        private void setAttr(
            com.android.aapt.Resources.Reference.Builder builderForValue) {
          attr_ = builderForValue.build();
          bitField0_ |= 0x00000004;
        }
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference attr = 3;</code>
         */
        private void mergeAttr(com.android.aapt.Resources.Reference value) {
          if (attr_ != null &&
              attr_ != com.android.aapt.Resources.Reference.getDefaultInstance()) {
            attr_ =
              com.android.aapt.Resources.Reference.newBuilder(attr_).mergeFrom(value).buildPartial();
          } else {
            attr_ = value;
          }
          bitField0_ |= 0x00000004;
        }
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>optional .aapt.pb.Reference attr = 3;</code>
         */
        private void clearAttr() {  attr_ = null;
          bitField0_ = (bitField0_ & ~0x00000004);
        }
  
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeMessage(1, getSource());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeString(2, getComment());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeMessage(3, getAttr());
          }
          unknownFields.writeTo(output);
        }
  
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
  
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(1, getSource());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeStringSize(2, getComment());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(3, getAttr());
          }
          size += unknownFields.getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
  
        public static com.android.aapt.Resources.Styleable.Entry parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Styleable.Entry 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 com.android.aapt.Resources.Styleable.Entry parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Styleable.Entry 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 com.android.aapt.Resources.Styleable.Entry parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Styleable.Entry 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 com.android.aapt.Resources.Styleable.Entry parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Styleable.Entry parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Styleable.Entry parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Styleable.Entry 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 DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.android.aapt.Resources.Styleable.Entry prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
  
        /**
         * <pre>
         * An attribute defined for this styleable.
         * </pre>
         *
         * Protobuf type {@code aapt.pb.Styleable.Entry}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Styleable.Entry, Builder> implements
            // @@protoc_insertion_point(builder_implements:aapt.pb.Styleable.Entry)
            com.android.aapt.Resources.Styleable.EntryOrBuilder {
          // Construct using com.android.aapt.Resources.Styleable.Entry.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public boolean hasSource() {
            return instance.hasSource();
          }
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public com.android.aapt.Resources.Source getSource() {
            return instance.getSource();
          }
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder setSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.setSource(value);
            return this;
            }
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder setSource(
              com.android.aapt.Resources.Source.Builder builderForValue) {
            copyOnWrite();
            instance.setSource(builderForValue);
            return this;
          }
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder mergeSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.mergeSource(value);
            return this;
          }
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder clearSource() {  copyOnWrite();
            instance.clearSource();
            return this;
          }
  
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public boolean hasComment() {
            return instance.hasComment();
          }
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public java.lang.String getComment() {
            return instance.getComment();
          }
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public com.google.protobuf.ByteString
              getCommentBytes() {
            return instance.getCommentBytes();
          }
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder setComment(
              java.lang.String value) {
            copyOnWrite();
            instance.setComment(value);
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder clearComment() {
            copyOnWrite();
            instance.clearComment();
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder setCommentBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setCommentBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference attr = 3;</code>
           */
          public boolean hasAttr() {
            return instance.hasAttr();
          }
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference attr = 3;</code>
           */
          public com.android.aapt.Resources.Reference getAttr() {
            return instance.getAttr();
          }
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference attr = 3;</code>
           */
          public Builder setAttr(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.setAttr(value);
            return this;
            }
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference attr = 3;</code>
           */
          public Builder setAttr(
              com.android.aapt.Resources.Reference.Builder builderForValue) {
            copyOnWrite();
            instance.setAttr(builderForValue);
            return this;
          }
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference attr = 3;</code>
           */
          public Builder mergeAttr(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.mergeAttr(value);
            return this;
          }
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>optional .aapt.pb.Reference attr = 3;</code>
           */
          public Builder clearAttr() {  copyOnWrite();
            instance.clearAttr();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:aapt.pb.Styleable.Entry)
        }
        protected final Object dynamicMethod(
            com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
            Object arg0, Object arg1) {
          switch (method) {
            case NEW_MUTABLE_INSTANCE: {
              return new com.android.aapt.Resources.Styleable.Entry();
            }
            case IS_INITIALIZED: {
              return DEFAULT_INSTANCE;
            }
            case MAKE_IMMUTABLE: {
              return null;
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case VISIT: {
              Visitor visitor = (Visitor) arg0;
              com.android.aapt.Resources.Styleable.Entry other = (com.android.aapt.Resources.Styleable.Entry) arg1;
              source_ = visitor.visitMessage(source_, other.source_);
              comment_ = visitor.visitString(
                  hasComment(), comment_,
                  other.hasComment(), other.comment_);
              attr_ = visitor.visitMessage(attr_, other.attr_);
              if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                  .INSTANCE) {
                bitField0_ |= other.bitField0_;
              }
              return this;
            }
            case MERGE_FROM_STREAM: {
              com.google.protobuf.CodedInputStream input =
                  (com.google.protobuf.CodedInputStream) arg0;
              com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                  (com.google.protobuf.ExtensionRegistryLite) arg1;
              try {
                boolean done = false;
                while (!done) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      done = true;
                      break;
                    default: {
                      if (!parseUnknownField(tag, input)) {
                        done = true;
                      }
                      break;
                    }
                    case 10: {
                      com.android.aapt.Resources.Source.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000001) == 0x00000001)) {
                        subBuilder = source_.toBuilder();
                      }
                      source_ = input.readMessage(com.android.aapt.Resources.Source.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(source_);
                        source_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000001;
                      break;
                    }
                    case 18: {
                      java.lang.String s = input.readString();
                      bitField0_ |= 0x00000002;
                      comment_ = s;
                      break;
                    }
                    case 26: {
                      com.android.aapt.Resources.Reference.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000004) == 0x00000004)) {
                        subBuilder = attr_.toBuilder();
                      }
                      attr_ = input.readMessage(com.android.aapt.Resources.Reference.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(attr_);
                        attr_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000004;
                      break;
                    }
                  }
                }
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw new RuntimeException(e.setUnfinishedMessage(this));
              } catch (java.io.IOException e) {
                throw new RuntimeException(
                    new com.google.protobuf.InvalidProtocolBufferException(
                        e.getMessage()).setUnfinishedMessage(this));
              } finally {
              }
            }
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              if (PARSER == null) {    synchronized (com.android.aapt.Resources.Styleable.Entry.class) {
                  if (PARSER == null) {
                    PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                  }
                }
              }
              return PARSER;
            }
          }
          throw new UnsupportedOperationException();
        }
  
  
        // @@protoc_insertion_point(class_scope:aapt.pb.Styleable.Entry)
        private static final com.android.aapt.Resources.Styleable.Entry DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new Entry();
          DEFAULT_INSTANCE.makeImmutable();
        }
  
        public static com.android.aapt.Resources.Styleable.Entry getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Entry> PARSER;
  
        public static com.google.protobuf.Parser<Entry> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public static final int ENTRY_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Styleable.Entry> entry_;
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      public java.util.List<com.android.aapt.Resources.Styleable.Entry> getEntryList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.Styleable.EntryOrBuilder> 
          getEntryOrBuilderList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      public int getEntryCount() {
        return entry_.size();
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      public com.android.aapt.Resources.Styleable.Entry getEntry(int index) {
        return entry_.get(index);
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      public com.android.aapt.Resources.Styleable.EntryOrBuilder getEntryOrBuilder(
          int index) {
        return entry_.get(index);
      }
      private void ensureEntryIsMutable() {
        if (!entry_.isModifiable()) {
          entry_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(entry_);
         }
      }
  
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Styleable.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.set(index, value);
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Styleable.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      private void addEntry(com.android.aapt.Resources.Styleable.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.add(value);
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Styleable.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.add(index, value);
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      private void addEntry(
          com.android.aapt.Resources.Styleable.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.add(builderForValue.build());
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Styleable.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      private void addAllEntry(
          java.lang.Iterable<? extends com.android.aapt.Resources.Styleable.Entry> values) {
        ensureEntryIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, entry_);
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      private void clearEntry() {
        entry_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
       */
      private void removeEntry(int index) {
        ensureEntryIsMutable();
        entry_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < entry_.size(); i++) {
          output.writeMessage(1, entry_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        for (int i = 0; i < entry_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, entry_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Styleable parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Styleable 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 com.android.aapt.Resources.Styleable parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Styleable 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 com.android.aapt.Resources.Styleable parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Styleable 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 com.android.aapt.Resources.Styleable parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Styleable parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Styleable parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Styleable 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Styleable prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that represents a &lt;declare-styleable&gt; XML resource. These are not real resources and
       * only end up as Java fields in the generated R.java. They do not end up in the binary ARSC file.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Styleable}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Styleable, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Styleable)
          com.android.aapt.Resources.StyleableOrBuilder {
        // Construct using com.android.aapt.Resources.Styleable.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public java.util.List<com.android.aapt.Resources.Styleable.Entry> getEntryList() {
          return java.util.Collections.unmodifiableList(
              instance.getEntryList());
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public int getEntryCount() {
          return instance.getEntryCount();
        }/**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public com.android.aapt.Resources.Styleable.Entry getEntry(int index) {
          return instance.getEntry(index);
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Styleable.Entry value) {
          copyOnWrite();
          instance.setEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Styleable.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.setEntry(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public Builder addEntry(com.android.aapt.Resources.Styleable.Entry value) {
          copyOnWrite();
          instance.addEntry(value);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Styleable.Entry value) {
          copyOnWrite();
          instance.addEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public Builder addEntry(
            com.android.aapt.Resources.Styleable.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Styleable.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public Builder addAllEntry(
            java.lang.Iterable<? extends com.android.aapt.Resources.Styleable.Entry> values) {
          copyOnWrite();
          instance.addAllEntry(values);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public Builder clearEntry() {
          copyOnWrite();
          instance.clearEntry();
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .aapt.pb.Styleable.Entry entry = 1;</code>
         */
        public Builder removeEntry(int index) {
          copyOnWrite();
          instance.removeEntry(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Styleable)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Styleable();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            entry_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Styleable other = (com.android.aapt.Resources.Styleable) arg1;
            entry_= visitor.visitList(entry_, other.entry_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    if (!entry_.isModifiable()) {
                      entry_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(entry_);
                    }
                    entry_.add(
                        input.readMessage(com.android.aapt.Resources.Styleable.Entry.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Styleable.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Styleable)
      private static final com.android.aapt.Resources.Styleable DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Styleable();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Styleable getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Styleable> PARSER;
  
      public static com.google.protobuf.Parser<Styleable> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ArrayOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Array)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      java.util.List<com.android.aapt.Resources.Array.Element> 
          getElementList();
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      com.android.aapt.Resources.Array.Element getElement(int index);
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      int getElementCount();
    }
    /**
     * <pre>
     * A value that represents an array of resource values.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Array}
     */
    public  static final class Array extends
        com.google.protobuf.GeneratedMessageLite<
            Array, Array.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Array)
        ArrayOrBuilder {
      private Array() {
        element_ = emptyProtobufList();
      }
      public interface ElementOrBuilder extends
          // @@protoc_insertion_point(interface_extends:aapt.pb.Array.Element)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        boolean hasSource();
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        com.android.aapt.Resources.Source getSource();
  
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        boolean hasComment();
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        java.lang.String getComment();
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        com.google.protobuf.ByteString
            getCommentBytes();
  
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 3;</code>
         */
        boolean hasItem();
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 3;</code>
         */
        com.android.aapt.Resources.Item getItem();
      }
      /**
       * <pre>
       * A single element of the array.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Array.Element}
       */
      public  static final class Element extends
          com.google.protobuf.GeneratedMessageLite<
              Element, Element.Builder> implements
          // @@protoc_insertion_point(message_implements:aapt.pb.Array.Element)
          ElementOrBuilder {
        private Element() {
          comment_ = "";
        }
        private int bitField0_;
        public static final int SOURCE_FIELD_NUMBER = 1;
        private com.android.aapt.Resources.Source source_;
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public boolean hasSource() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public com.android.aapt.Resources.Source getSource() {
          return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
        }
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void setSource(com.android.aapt.Resources.Source value) {
          if (value == null) {
            throw new NullPointerException();
          }
          source_ = value;
          bitField0_ |= 0x00000001;
          }
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          source_ = builderForValue.build();
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void mergeSource(com.android.aapt.Resources.Source value) {
          if (source_ != null &&
              source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
            source_ =
              com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void clearSource() {  source_ = null;
          bitField0_ = (bitField0_ & ~0x00000001);
        }
  
        public static final int COMMENT_FIELD_NUMBER = 2;
        private java.lang.String comment_;
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public boolean hasComment() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public java.lang.String getComment() {
          return comment_;
        }
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(comment_);
        }
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void setComment(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          comment_ = value;
        }
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void clearComment() {
          bitField0_ = (bitField0_ & ~0x00000002);
          comment_ = getDefaultInstance().getComment();
        }
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void setCommentBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          comment_ = value.toStringUtf8();
        }
  
        public static final int ITEM_FIELD_NUMBER = 3;
        private com.android.aapt.Resources.Item item_;
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 3;</code>
         */
        public boolean hasItem() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 3;</code>
         */
        public com.android.aapt.Resources.Item getItem() {
          return item_ == null ? com.android.aapt.Resources.Item.getDefaultInstance() : item_;
        }
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 3;</code>
         */
        private void setItem(com.android.aapt.Resources.Item value) {
          if (value == null) {
            throw new NullPointerException();
          }
          item_ = value;
          bitField0_ |= 0x00000004;
          }
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 3;</code>
         */
        private void setItem(
            com.android.aapt.Resources.Item.Builder builderForValue) {
          item_ = builderForValue.build();
          bitField0_ |= 0x00000004;
        }
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 3;</code>
         */
        private void mergeItem(com.android.aapt.Resources.Item value) {
          if (item_ != null &&
              item_ != com.android.aapt.Resources.Item.getDefaultInstance()) {
            item_ =
              com.android.aapt.Resources.Item.newBuilder(item_).mergeFrom(value).buildPartial();
          } else {
            item_ = value;
          }
          bitField0_ |= 0x00000004;
        }
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 3;</code>
         */
        private void clearItem() {  item_ = null;
          bitField0_ = (bitField0_ & ~0x00000004);
        }
  
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeMessage(1, getSource());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeString(2, getComment());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeMessage(3, getItem());
          }
          unknownFields.writeTo(output);
        }
  
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
  
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(1, getSource());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeStringSize(2, getComment());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(3, getItem());
          }
          size += unknownFields.getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
  
        public static com.android.aapt.Resources.Array.Element parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Array.Element 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 com.android.aapt.Resources.Array.Element parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Array.Element 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 com.android.aapt.Resources.Array.Element parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Array.Element 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 com.android.aapt.Resources.Array.Element parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Array.Element parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Array.Element parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Array.Element 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 DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.android.aapt.Resources.Array.Element prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
  
        /**
         * <pre>
         * A single element of the array.
         * </pre>
         *
         * Protobuf type {@code aapt.pb.Array.Element}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Array.Element, Builder> implements
            // @@protoc_insertion_point(builder_implements:aapt.pb.Array.Element)
            com.android.aapt.Resources.Array.ElementOrBuilder {
          // Construct using com.android.aapt.Resources.Array.Element.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public boolean hasSource() {
            return instance.hasSource();
          }
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public com.android.aapt.Resources.Source getSource() {
            return instance.getSource();
          }
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder setSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.setSource(value);
            return this;
            }
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder setSource(
              com.android.aapt.Resources.Source.Builder builderForValue) {
            copyOnWrite();
            instance.setSource(builderForValue);
            return this;
          }
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder mergeSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.mergeSource(value);
            return this;
          }
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder clearSource() {  copyOnWrite();
            instance.clearSource();
            return this;
          }
  
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public boolean hasComment() {
            return instance.hasComment();
          }
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public java.lang.String getComment() {
            return instance.getComment();
          }
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public com.google.protobuf.ByteString
              getCommentBytes() {
            return instance.getCommentBytes();
          }
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder setComment(
              java.lang.String value) {
            copyOnWrite();
            instance.setComment(value);
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder clearComment() {
            copyOnWrite();
            instance.clearComment();
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder setCommentBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setCommentBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 3;</code>
           */
          public boolean hasItem() {
            return instance.hasItem();
          }
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 3;</code>
           */
          public com.android.aapt.Resources.Item getItem() {
            return instance.getItem();
          }
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 3;</code>
           */
          public Builder setItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.setItem(value);
            return this;
            }
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 3;</code>
           */
          public Builder setItem(
              com.android.aapt.Resources.Item.Builder builderForValue) {
            copyOnWrite();
            instance.setItem(builderForValue);
            return this;
          }
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 3;</code>
           */
          public Builder mergeItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.mergeItem(value);
            return this;
          }
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 3;</code>
           */
          public Builder clearItem() {  copyOnWrite();
            instance.clearItem();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:aapt.pb.Array.Element)
        }
        protected final Object dynamicMethod(
            com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
            Object arg0, Object arg1) {
          switch (method) {
            case NEW_MUTABLE_INSTANCE: {
              return new com.android.aapt.Resources.Array.Element();
            }
            case IS_INITIALIZED: {
              return DEFAULT_INSTANCE;
            }
            case MAKE_IMMUTABLE: {
              return null;
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case VISIT: {
              Visitor visitor = (Visitor) arg0;
              com.android.aapt.Resources.Array.Element other = (com.android.aapt.Resources.Array.Element) arg1;
              source_ = visitor.visitMessage(source_, other.source_);
              comment_ = visitor.visitString(
                  hasComment(), comment_,
                  other.hasComment(), other.comment_);
              item_ = visitor.visitMessage(item_, other.item_);
              if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                  .INSTANCE) {
                bitField0_ |= other.bitField0_;
              }
              return this;
            }
            case MERGE_FROM_STREAM: {
              com.google.protobuf.CodedInputStream input =
                  (com.google.protobuf.CodedInputStream) arg0;
              com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                  (com.google.protobuf.ExtensionRegistryLite) arg1;
              try {
                boolean done = false;
                while (!done) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      done = true;
                      break;
                    default: {
                      if (!parseUnknownField(tag, input)) {
                        done = true;
                      }
                      break;
                    }
                    case 10: {
                      com.android.aapt.Resources.Source.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000001) == 0x00000001)) {
                        subBuilder = source_.toBuilder();
                      }
                      source_ = input.readMessage(com.android.aapt.Resources.Source.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(source_);
                        source_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000001;
                      break;
                    }
                    case 18: {
                      java.lang.String s = input.readString();
                      bitField0_ |= 0x00000002;
                      comment_ = s;
                      break;
                    }
                    case 26: {
                      com.android.aapt.Resources.Item.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000004) == 0x00000004)) {
                        subBuilder = item_.toBuilder();
                      }
                      item_ = input.readMessage(com.android.aapt.Resources.Item.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(item_);
                        item_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000004;
                      break;
                    }
                  }
                }
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw new RuntimeException(e.setUnfinishedMessage(this));
              } catch (java.io.IOException e) {
                throw new RuntimeException(
                    new com.google.protobuf.InvalidProtocolBufferException(
                        e.getMessage()).setUnfinishedMessage(this));
              } finally {
              }
            }
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              if (PARSER == null) {    synchronized (com.android.aapt.Resources.Array.Element.class) {
                  if (PARSER == null) {
                    PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                  }
                }
              }
              return PARSER;
            }
          }
          throw new UnsupportedOperationException();
        }
  
  
        // @@protoc_insertion_point(class_scope:aapt.pb.Array.Element)
        private static final com.android.aapt.Resources.Array.Element DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new Element();
          DEFAULT_INSTANCE.makeImmutable();
        }
  
        public static com.android.aapt.Resources.Array.Element getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Element> PARSER;
  
        public static com.google.protobuf.Parser<Element> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public static final int ELEMENT_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Array.Element> element_;
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      public java.util.List<com.android.aapt.Resources.Array.Element> getElementList() {
        return element_;
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.Array.ElementOrBuilder> 
          getElementOrBuilderList() {
        return element_;
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      public int getElementCount() {
        return element_.size();
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      public com.android.aapt.Resources.Array.Element getElement(int index) {
        return element_.get(index);
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      public com.android.aapt.Resources.Array.ElementOrBuilder getElementOrBuilder(
          int index) {
        return element_.get(index);
      }
      private void ensureElementIsMutable() {
        if (!element_.isModifiable()) {
          element_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(element_);
         }
      }
  
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      private void setElement(
          int index, com.android.aapt.Resources.Array.Element value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureElementIsMutable();
        element_.set(index, value);
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      private void setElement(
          int index, com.android.aapt.Resources.Array.Element.Builder builderForValue) {
        ensureElementIsMutable();
        element_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      private void addElement(com.android.aapt.Resources.Array.Element value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureElementIsMutable();
        element_.add(value);
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      private void addElement(
          int index, com.android.aapt.Resources.Array.Element value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureElementIsMutable();
        element_.add(index, value);
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      private void addElement(
          com.android.aapt.Resources.Array.Element.Builder builderForValue) {
        ensureElementIsMutable();
        element_.add(builderForValue.build());
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      private void addElement(
          int index, com.android.aapt.Resources.Array.Element.Builder builderForValue) {
        ensureElementIsMutable();
        element_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      private void addAllElement(
          java.lang.Iterable<? extends com.android.aapt.Resources.Array.Element> values) {
        ensureElementIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, element_);
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      private void clearElement() {
        element_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .aapt.pb.Array.Element element = 1;</code>
       */
      private void removeElement(int index) {
        ensureElementIsMutable();
        element_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < element_.size(); i++) {
          output.writeMessage(1, element_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        for (int i = 0; i < element_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, element_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Array parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Array 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 com.android.aapt.Resources.Array parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Array 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 com.android.aapt.Resources.Array parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Array 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 com.android.aapt.Resources.Array parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Array parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Array parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Array 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Array prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that represents an array of resource values.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Array}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Array, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Array)
          com.android.aapt.Resources.ArrayOrBuilder {
        // Construct using com.android.aapt.Resources.Array.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public java.util.List<com.android.aapt.Resources.Array.Element> getElementList() {
          return java.util.Collections.unmodifiableList(
              instance.getElementList());
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public int getElementCount() {
          return instance.getElementCount();
        }/**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public com.android.aapt.Resources.Array.Element getElement(int index) {
          return instance.getElement(index);
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public Builder setElement(
            int index, com.android.aapt.Resources.Array.Element value) {
          copyOnWrite();
          instance.setElement(index, value);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public Builder setElement(
            int index, com.android.aapt.Resources.Array.Element.Builder builderForValue) {
          copyOnWrite();
          instance.setElement(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public Builder addElement(com.android.aapt.Resources.Array.Element value) {
          copyOnWrite();
          instance.addElement(value);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public Builder addElement(
            int index, com.android.aapt.Resources.Array.Element value) {
          copyOnWrite();
          instance.addElement(index, value);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public Builder addElement(
            com.android.aapt.Resources.Array.Element.Builder builderForValue) {
          copyOnWrite();
          instance.addElement(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public Builder addElement(
            int index, com.android.aapt.Resources.Array.Element.Builder builderForValue) {
          copyOnWrite();
          instance.addElement(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public Builder addAllElement(
            java.lang.Iterable<? extends com.android.aapt.Resources.Array.Element> values) {
          copyOnWrite();
          instance.addAllElement(values);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public Builder clearElement() {
          copyOnWrite();
          instance.clearElement();
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .aapt.pb.Array.Element element = 1;</code>
         */
        public Builder removeElement(int index) {
          copyOnWrite();
          instance.removeElement(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Array)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Array();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            element_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Array other = (com.android.aapt.Resources.Array) arg1;
            element_= visitor.visitList(element_, other.element_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    if (!element_.isModifiable()) {
                      element_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(element_);
                    }
                    element_.add(
                        input.readMessage(com.android.aapt.Resources.Array.Element.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Array.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Array)
      private static final com.android.aapt.Resources.Array DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Array();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Array getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Array> PARSER;
  
      public static com.google.protobuf.Parser<Array> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface PluralOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.Plural)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      java.util.List<com.android.aapt.Resources.Plural.Entry> 
          getEntryList();
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      com.android.aapt.Resources.Plural.Entry getEntry(int index);
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      int getEntryCount();
    }
    /**
     * <pre>
     * A value that represents a string and its many variations based on plurality.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.Plural}
     */
    public  static final class Plural extends
        com.google.protobuf.GeneratedMessageLite<
            Plural, Plural.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.Plural)
        PluralOrBuilder {
      private Plural() {
        entry_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The arity of the plural.
       * </pre>
       *
       * Protobuf enum {@code aapt.pb.Plural.Arity}
       */
      public enum Arity
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <code>ZERO = 0;</code>
         */
        ZERO(0),
        /**
         * <code>ONE = 1;</code>
         */
        ONE(1),
        /**
         * <code>TWO = 2;</code>
         */
        TWO(2),
        /**
         * <code>FEW = 3;</code>
         */
        FEW(3),
        /**
         * <code>MANY = 4;</code>
         */
        MANY(4),
        /**
         * <code>OTHER = 5;</code>
         */
        OTHER(5),
        ;
  
        /**
         * <code>ZERO = 0;</code>
         */
        public static final int ZERO_VALUE = 0;
        /**
         * <code>ONE = 1;</code>
         */
        public static final int ONE_VALUE = 1;
        /**
         * <code>TWO = 2;</code>
         */
        public static final int TWO_VALUE = 2;
        /**
         * <code>FEW = 3;</code>
         */
        public static final int FEW_VALUE = 3;
        /**
         * <code>MANY = 4;</code>
         */
        public static final int MANY_VALUE = 4;
        /**
         * <code>OTHER = 5;</code>
         */
        public static final int OTHER_VALUE = 5;
  
  
        public final int getNumber() {
          return value;
        }
  
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static Arity valueOf(int value) {
          return forNumber(value);
        }
  
        public static Arity forNumber(int value) {
          switch (value) {
            case 0: return ZERO;
            case 1: return ONE;
            case 2: return TWO;
            case 3: return FEW;
            case 4: return MANY;
            case 5: return OTHER;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<Arity>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            Arity> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Arity>() {
                public Arity findValueByNumber(int number) {
                  return Arity.forNumber(number);
                }
              };
  
        private final int value;
  
        private Arity(int value) {
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:aapt.pb.Plural.Arity)
      }
  
      public interface EntryOrBuilder extends
          // @@protoc_insertion_point(interface_extends:aapt.pb.Plural.Entry)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        boolean hasSource();
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        com.android.aapt.Resources.Source getSource();
  
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        boolean hasComment();
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        java.lang.String getComment();
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        com.google.protobuf.ByteString
            getCommentBytes();
  
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Plural.Arity arity = 3;</code>
         */
        boolean hasArity();
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Plural.Arity arity = 3;</code>
         */
        com.android.aapt.Resources.Plural.Arity getArity();
  
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        boolean hasItem();
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        com.android.aapt.Resources.Item getItem();
      }
      /**
       * <pre>
       * The plural value for a given arity.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Plural.Entry}
       */
      public  static final class Entry extends
          com.google.protobuf.GeneratedMessageLite<
              Entry, Entry.Builder> implements
          // @@protoc_insertion_point(message_implements:aapt.pb.Plural.Entry)
          EntryOrBuilder {
        private Entry() {
          comment_ = "";
        }
        private int bitField0_;
        public static final int SOURCE_FIELD_NUMBER = 1;
        private com.android.aapt.Resources.Source source_;
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public boolean hasSource() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        public com.android.aapt.Resources.Source getSource() {
          return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
        }
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void setSource(com.android.aapt.Resources.Source value) {
          if (value == null) {
            throw new NullPointerException();
          }
          source_ = value;
          bitField0_ |= 0x00000001;
          }
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          source_ = builderForValue.build();
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void mergeSource(com.android.aapt.Resources.Source value) {
          if (source_ != null &&
              source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
            source_ =
              com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>optional .aapt.pb.Source source = 1;</code>
         */
        private void clearSource() {  source_ = null;
          bitField0_ = (bitField0_ & ~0x00000001);
        }
  
        public static final int COMMENT_FIELD_NUMBER = 2;
        private java.lang.String comment_;
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public boolean hasComment() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public java.lang.String getComment() {
          return comment_;
        }
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(comment_);
        }
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void setComment(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          comment_ = value;
        }
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void clearComment() {
          bitField0_ = (bitField0_ & ~0x00000002);
          comment_ = getDefaultInstance().getComment();
        }
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>optional string comment = 2;</code>
         */
        private void setCommentBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          comment_ = value.toStringUtf8();
        }
  
        public static final int ARITY_FIELD_NUMBER = 3;
        private int arity_;
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Plural.Arity arity = 3;</code>
         */
        public boolean hasArity() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Plural.Arity arity = 3;</code>
         */
        public com.android.aapt.Resources.Plural.Arity getArity() {
          com.android.aapt.Resources.Plural.Arity result = com.android.aapt.Resources.Plural.Arity.forNumber(arity_);
          return result == null ? com.android.aapt.Resources.Plural.Arity.ZERO : result;
        }
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Plural.Arity arity = 3;</code>
         */
        private void setArity(com.android.aapt.Resources.Plural.Arity value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000004;
          arity_ = value.getNumber();
        }
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Plural.Arity arity = 3;</code>
         */
        private void clearArity() {
          bitField0_ = (bitField0_ & ~0x00000004);
          arity_ = 0;
        }
  
        public static final int ITEM_FIELD_NUMBER = 4;
        private com.android.aapt.Resources.Item item_;
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        public boolean hasItem() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        public com.android.aapt.Resources.Item getItem() {
          return item_ == null ? com.android.aapt.Resources.Item.getDefaultInstance() : item_;
        }
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        private void setItem(com.android.aapt.Resources.Item value) {
          if (value == null) {
            throw new NullPointerException();
          }
          item_ = value;
          bitField0_ |= 0x00000008;
          }
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        private void setItem(
            com.android.aapt.Resources.Item.Builder builderForValue) {
          item_ = builderForValue.build();
          bitField0_ |= 0x00000008;
        }
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        private void mergeItem(com.android.aapt.Resources.Item value) {
          if (item_ != null &&
              item_ != com.android.aapt.Resources.Item.getDefaultInstance()) {
            item_ =
              com.android.aapt.Resources.Item.newBuilder(item_).mergeFrom(value).buildPartial();
          } else {
            item_ = value;
          }
          bitField0_ |= 0x00000008;
        }
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>optional .aapt.pb.Item item = 4;</code>
         */
        private void clearItem() {  item_ = null;
          bitField0_ = (bitField0_ & ~0x00000008);
        }
  
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeMessage(1, getSource());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeString(2, getComment());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeEnum(3, arity_);
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            output.writeMessage(4, getItem());
          }
          unknownFields.writeTo(output);
        }
  
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
  
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(1, getSource());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeStringSize(2, getComment());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeEnumSize(3, arity_);
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(4, getItem());
          }
          size += unknownFields.getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
  
        public static com.android.aapt.Resources.Plural.Entry parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Plural.Entry 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 com.android.aapt.Resources.Plural.Entry parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Plural.Entry 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 com.android.aapt.Resources.Plural.Entry parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Plural.Entry 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 com.android.aapt.Resources.Plural.Entry parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Plural.Entry parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Plural.Entry parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Plural.Entry 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 DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.android.aapt.Resources.Plural.Entry prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
  
        /**
         * <pre>
         * The plural value for a given arity.
         * </pre>
         *
         * Protobuf type {@code aapt.pb.Plural.Entry}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Plural.Entry, Builder> implements
            // @@protoc_insertion_point(builder_implements:aapt.pb.Plural.Entry)
            com.android.aapt.Resources.Plural.EntryOrBuilder {
          // Construct using com.android.aapt.Resources.Plural.Entry.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public boolean hasSource() {
            return instance.hasSource();
          }
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public com.android.aapt.Resources.Source getSource() {
            return instance.getSource();
          }
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder setSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.setSource(value);
            return this;
            }
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder setSource(
              com.android.aapt.Resources.Source.Builder builderForValue) {
            copyOnWrite();
            instance.setSource(builderForValue);
            return this;
          }
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder mergeSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.mergeSource(value);
            return this;
          }
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>optional .aapt.pb.Source source = 1;</code>
           */
          public Builder clearSource() {  copyOnWrite();
            instance.clearSource();
            return this;
          }
  
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public boolean hasComment() {
            return instance.hasComment();
          }
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public java.lang.String getComment() {
            return instance.getComment();
          }
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public com.google.protobuf.ByteString
              getCommentBytes() {
            return instance.getCommentBytes();
          }
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder setComment(
              java.lang.String value) {
            copyOnWrite();
            instance.setComment(value);
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder clearComment() {
            copyOnWrite();
            instance.clearComment();
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>optional string comment = 2;</code>
           */
          public Builder setCommentBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setCommentBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * The arity of the plural.
           * </pre>
           *
           * <code>optional .aapt.pb.Plural.Arity arity = 3;</code>
           */
          public boolean hasArity() {
            return instance.hasArity();
          }
          /**
           * <pre>
           * The arity of the plural.
           * </pre>
           *
           * <code>optional .aapt.pb.Plural.Arity arity = 3;</code>
           */
          public com.android.aapt.Resources.Plural.Arity getArity() {
            return instance.getArity();
          }
          /**
           * <pre>
           * The arity of the plural.
           * </pre>
           *
           * <code>optional .aapt.pb.Plural.Arity arity = 3;</code>
           */
          public Builder setArity(com.android.aapt.Resources.Plural.Arity value) {
            copyOnWrite();
            instance.setArity(value);
            return this;
          }
          /**
           * <pre>
           * The arity of the plural.
           * </pre>
           *
           * <code>optional .aapt.pb.Plural.Arity arity = 3;</code>
           */
          public Builder clearArity() {
            copyOnWrite();
            instance.clearArity();
            return this;
          }
  
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public boolean hasItem() {
            return instance.hasItem();
          }
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public com.android.aapt.Resources.Item getItem() {
            return instance.getItem();
          }
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public Builder setItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.setItem(value);
            return this;
            }
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public Builder setItem(
              com.android.aapt.Resources.Item.Builder builderForValue) {
            copyOnWrite();
            instance.setItem(builderForValue);
            return this;
          }
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public Builder mergeItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.mergeItem(value);
            return this;
          }
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>optional .aapt.pb.Item item = 4;</code>
           */
          public Builder clearItem() {  copyOnWrite();
            instance.clearItem();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:aapt.pb.Plural.Entry)
        }
        protected final Object dynamicMethod(
            com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
            Object arg0, Object arg1) {
          switch (method) {
            case NEW_MUTABLE_INSTANCE: {
              return new com.android.aapt.Resources.Plural.Entry();
            }
            case IS_INITIALIZED: {
              return DEFAULT_INSTANCE;
            }
            case MAKE_IMMUTABLE: {
              return null;
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case VISIT: {
              Visitor visitor = (Visitor) arg0;
              com.android.aapt.Resources.Plural.Entry other = (com.android.aapt.Resources.Plural.Entry) arg1;
              source_ = visitor.visitMessage(source_, other.source_);
              comment_ = visitor.visitString(
                  hasComment(), comment_,
                  other.hasComment(), other.comment_);
              arity_ = visitor.visitInt(hasArity(), arity_,
                  other.hasArity(), other.arity_);
              item_ = visitor.visitMessage(item_, other.item_);
              if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                  .INSTANCE) {
                bitField0_ |= other.bitField0_;
              }
              return this;
            }
            case MERGE_FROM_STREAM: {
              com.google.protobuf.CodedInputStream input =
                  (com.google.protobuf.CodedInputStream) arg0;
              com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                  (com.google.protobuf.ExtensionRegistryLite) arg1;
              try {
                boolean done = false;
                while (!done) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      done = true;
                      break;
                    default: {
                      if (!parseUnknownField(tag, input)) {
                        done = true;
                      }
                      break;
                    }
                    case 10: {
                      com.android.aapt.Resources.Source.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000001) == 0x00000001)) {
                        subBuilder = source_.toBuilder();
                      }
                      source_ = input.readMessage(com.android.aapt.Resources.Source.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(source_);
                        source_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000001;
                      break;
                    }
                    case 18: {
                      java.lang.String s = input.readString();
                      bitField0_ |= 0x00000002;
                      comment_ = s;
                      break;
                    }
                    case 24: {
                      int rawValue = input.readEnum();
                      com.android.aapt.Resources.Plural.Arity value = com.android.aapt.Resources.Plural.Arity.forNumber(rawValue);
                      if (value == null) {
                        super.mergeVarintField(3, rawValue);
                      } else {
                        bitField0_ |= 0x00000004;
                        arity_ = rawValue;
                      }
                      break;
                    }
                    case 34: {
                      com.android.aapt.Resources.Item.Builder subBuilder = null;
                      if (((bitField0_ & 0x00000008) == 0x00000008)) {
                        subBuilder = item_.toBuilder();
                      }
                      item_ = input.readMessage(com.android.aapt.Resources.Item.parser(), extensionRegistry);
                      if (subBuilder != null) {
                        subBuilder.mergeFrom(item_);
                        item_ = subBuilder.buildPartial();
                      }
                      bitField0_ |= 0x00000008;
                      break;
                    }
                  }
                }
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw new RuntimeException(e.setUnfinishedMessage(this));
              } catch (java.io.IOException e) {
                throw new RuntimeException(
                    new com.google.protobuf.InvalidProtocolBufferException(
                        e.getMessage()).setUnfinishedMessage(this));
              } finally {
              }
            }
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              if (PARSER == null) {    synchronized (com.android.aapt.Resources.Plural.Entry.class) {
                  if (PARSER == null) {
                    PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                  }
                }
              }
              return PARSER;
            }
          }
          throw new UnsupportedOperationException();
        }
  
  
        // @@protoc_insertion_point(class_scope:aapt.pb.Plural.Entry)
        private static final com.android.aapt.Resources.Plural.Entry DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new Entry();
          DEFAULT_INSTANCE.makeImmutable();
        }
  
        public static com.android.aapt.Resources.Plural.Entry getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Entry> PARSER;
  
        public static com.google.protobuf.Parser<Entry> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public static final int ENTRY_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Plural.Entry> entry_;
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      public java.util.List<com.android.aapt.Resources.Plural.Entry> getEntryList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.Plural.EntryOrBuilder> 
          getEntryOrBuilderList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      public int getEntryCount() {
        return entry_.size();
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      public com.android.aapt.Resources.Plural.Entry getEntry(int index) {
        return entry_.get(index);
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      public com.android.aapt.Resources.Plural.EntryOrBuilder getEntryOrBuilder(
          int index) {
        return entry_.get(index);
      }
      private void ensureEntryIsMutable() {
        if (!entry_.isModifiable()) {
          entry_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(entry_);
         }
      }
  
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Plural.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.set(index, value);
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Plural.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      private void addEntry(com.android.aapt.Resources.Plural.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.add(value);
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Plural.Entry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.add(index, value);
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      private void addEntry(
          com.android.aapt.Resources.Plural.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.add(builderForValue.build());
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Plural.Entry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      private void addAllEntry(
          java.lang.Iterable<? extends com.android.aapt.Resources.Plural.Entry> values) {
        ensureEntryIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, entry_);
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      private void clearEntry() {
        entry_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
       */
      private void removeEntry(int index) {
        ensureEntryIsMutable();
        entry_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < entry_.size(); i++) {
          output.writeMessage(1, entry_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        for (int i = 0; i < entry_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, entry_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.Plural parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Plural 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 com.android.aapt.Resources.Plural parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Plural 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 com.android.aapt.Resources.Plural parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Plural 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 com.android.aapt.Resources.Plural parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Plural parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Plural parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Plural 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.Plural prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A value that represents a string and its many variations based on plurality.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.Plural}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Plural, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.Plural)
          com.android.aapt.Resources.PluralOrBuilder {
        // Construct using com.android.aapt.Resources.Plural.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public java.util.List<com.android.aapt.Resources.Plural.Entry> getEntryList() {
          return java.util.Collections.unmodifiableList(
              instance.getEntryList());
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public int getEntryCount() {
          return instance.getEntryCount();
        }/**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public com.android.aapt.Resources.Plural.Entry getEntry(int index) {
          return instance.getEntry(index);
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Plural.Entry value) {
          copyOnWrite();
          instance.setEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Plural.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.setEntry(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public Builder addEntry(com.android.aapt.Resources.Plural.Entry value) {
          copyOnWrite();
          instance.addEntry(value);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Plural.Entry value) {
          copyOnWrite();
          instance.addEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public Builder addEntry(
            com.android.aapt.Resources.Plural.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Plural.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public Builder addAllEntry(
            java.lang.Iterable<? extends com.android.aapt.Resources.Plural.Entry> values) {
          copyOnWrite();
          instance.addAllEntry(values);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public Builder clearEntry() {
          copyOnWrite();
          instance.clearEntry();
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .aapt.pb.Plural.Entry entry = 1;</code>
         */
        public Builder removeEntry(int index) {
          copyOnWrite();
          instance.removeEntry(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.Plural)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.Plural();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            entry_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.Plural other = (com.android.aapt.Resources.Plural) arg1;
            entry_= visitor.visitList(entry_, other.entry_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    if (!entry_.isModifiable()) {
                      entry_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(entry_);
                    }
                    entry_.add(
                        input.readMessage(com.android.aapt.Resources.Plural.Entry.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.Plural.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.Plural)
      private static final com.android.aapt.Resources.Plural DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Plural();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.Plural getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Plural> PARSER;
  
      public static com.google.protobuf.Parser<Plural> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface XmlNodeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.XmlNode)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * If set, this node is an element/tag.
       * </pre>
       *
       * <code>optional .aapt.pb.XmlElement element = 1;</code>
       */
      boolean hasElement();
      /**
       * <pre>
       * If set, this node is an element/tag.
       * </pre>
       *
       * <code>optional .aapt.pb.XmlElement element = 1;</code>
       */
      com.android.aapt.Resources.XmlElement getElement();
  
      /**
       * <pre>
       * If set, this node is a chunk of text.
       * </pre>
       *
       * <code>optional string text = 2;</code>
       */
      boolean hasText();
      /**
       * <pre>
       * If set, this node is a chunk of text.
       * </pre>
       *
       * <code>optional string text = 2;</code>
       */
      java.lang.String getText();
      /**
       * <pre>
       * If set, this node is a chunk of text.
       * </pre>
       *
       * <code>optional string text = 2;</code>
       */
      com.google.protobuf.ByteString
          getTextBytes();
  
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      boolean hasSource();
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      com.android.aapt.Resources.SourcePosition getSource();
    }
    /**
     * <pre>
     * Defines an abstract XmlNode that must be either an XmlElement, or
     * a text node represented by a string.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.XmlNode}
     */
    public  static final class XmlNode extends
        com.google.protobuf.GeneratedMessageLite<
            XmlNode, XmlNode.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.XmlNode)
        XmlNodeOrBuilder {
      private XmlNode() {
        text_ = "";
      }
      private int bitField0_;
      public static final int ELEMENT_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.XmlElement element_;
      /**
       * <pre>
       * If set, this node is an element/tag.
       * </pre>
       *
       * <code>optional .aapt.pb.XmlElement element = 1;</code>
       */
      public boolean hasElement() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * If set, this node is an element/tag.
       * </pre>
       *
       * <code>optional .aapt.pb.XmlElement element = 1;</code>
       */
      public com.android.aapt.Resources.XmlElement getElement() {
        return element_ == null ? com.android.aapt.Resources.XmlElement.getDefaultInstance() : element_;
      }
      /**
       * <pre>
       * If set, this node is an element/tag.
       * </pre>
       *
       * <code>optional .aapt.pb.XmlElement element = 1;</code>
       */
      private void setElement(com.android.aapt.Resources.XmlElement value) {
        if (value == null) {
          throw new NullPointerException();
        }
        element_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * If set, this node is an element/tag.
       * </pre>
       *
       * <code>optional .aapt.pb.XmlElement element = 1;</code>
       */
      private void setElement(
          com.android.aapt.Resources.XmlElement.Builder builderForValue) {
        element_ = builderForValue.build();
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * If set, this node is an element/tag.
       * </pre>
       *
       * <code>optional .aapt.pb.XmlElement element = 1;</code>
       */
      private void mergeElement(com.android.aapt.Resources.XmlElement value) {
        if (element_ != null &&
            element_ != com.android.aapt.Resources.XmlElement.getDefaultInstance()) {
          element_ =
            com.android.aapt.Resources.XmlElement.newBuilder(element_).mergeFrom(value).buildPartial();
        } else {
          element_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * If set, this node is an element/tag.
       * </pre>
       *
       * <code>optional .aapt.pb.XmlElement element = 1;</code>
       */
      private void clearElement() {  element_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int TEXT_FIELD_NUMBER = 2;
      private java.lang.String text_;
      /**
       * <pre>
       * If set, this node is a chunk of text.
       * </pre>
       *
       * <code>optional string text = 2;</code>
       */
      public boolean hasText() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * If set, this node is a chunk of text.
       * </pre>
       *
       * <code>optional string text = 2;</code>
       */
      public java.lang.String getText() {
        return text_;
      }
      /**
       * <pre>
       * If set, this node is a chunk of text.
       * </pre>
       *
       * <code>optional string text = 2;</code>
       */
      public com.google.protobuf.ByteString
          getTextBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(text_);
      }
      /**
       * <pre>
       * If set, this node is a chunk of text.
       * </pre>
       *
       * <code>optional string text = 2;</code>
       */
      private void setText(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        text_ = value;
      }
      /**
       * <pre>
       * If set, this node is a chunk of text.
       * </pre>
       *
       * <code>optional string text = 2;</code>
       */
      private void clearText() {
        bitField0_ = (bitField0_ & ~0x00000002);
        text_ = getDefaultInstance().getText();
      }
      /**
       * <pre>
       * If set, this node is a chunk of text.
       * </pre>
       *
       * <code>optional string text = 2;</code>
       */
      private void setTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        text_ = value.toStringUtf8();
      }
  
      public static final int SOURCE_FIELD_NUMBER = 3;
      private com.android.aapt.Resources.SourcePosition source_;
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      public boolean hasSource() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      public com.android.aapt.Resources.SourcePosition getSource() {
        return source_ == null ? com.android.aapt.Resources.SourcePosition.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      private void setSource(com.android.aapt.Resources.SourcePosition value) {
        if (value == null) {
          throw new NullPointerException();
        }
        source_ = value;
        bitField0_ |= 0x00000004;
        }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      private void setSource(
          com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
        source_ = builderForValue.build();
        bitField0_ |= 0x00000004;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      private void mergeSource(com.android.aapt.Resources.SourcePosition value) {
        if (source_ != null &&
            source_ != com.android.aapt.Resources.SourcePosition.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.SourcePosition.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000004);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, getElement());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeString(2, getText());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, getSource());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getElement());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(2, getText());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getSource());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.XmlNode parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlNode 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 com.android.aapt.Resources.XmlNode parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlNode 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 com.android.aapt.Resources.XmlNode parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlNode 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 com.android.aapt.Resources.XmlNode parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlNode parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.XmlNode parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlNode 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.XmlNode prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * Defines an abstract XmlNode that must be either an XmlElement, or
       * a text node represented by a string.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.XmlNode}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.XmlNode, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.XmlNode)
          com.android.aapt.Resources.XmlNodeOrBuilder {
        // Construct using com.android.aapt.Resources.XmlNode.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * If set, this node is an element/tag.
         * </pre>
         *
         * <code>optional .aapt.pb.XmlElement element = 1;</code>
         */
        public boolean hasElement() {
          return instance.hasElement();
        }
        /**
         * <pre>
         * If set, this node is an element/tag.
         * </pre>
         *
         * <code>optional .aapt.pb.XmlElement element = 1;</code>
         */
        public com.android.aapt.Resources.XmlElement getElement() {
          return instance.getElement();
        }
        /**
         * <pre>
         * If set, this node is an element/tag.
         * </pre>
         *
         * <code>optional .aapt.pb.XmlElement element = 1;</code>
         */
        public Builder setElement(com.android.aapt.Resources.XmlElement value) {
          copyOnWrite();
          instance.setElement(value);
          return this;
          }
        /**
         * <pre>
         * If set, this node is an element/tag.
         * </pre>
         *
         * <code>optional .aapt.pb.XmlElement element = 1;</code>
         */
        public Builder setElement(
            com.android.aapt.Resources.XmlElement.Builder builderForValue) {
          copyOnWrite();
          instance.setElement(builderForValue);
          return this;
        }
        /**
         * <pre>
         * If set, this node is an element/tag.
         * </pre>
         *
         * <code>optional .aapt.pb.XmlElement element = 1;</code>
         */
        public Builder mergeElement(com.android.aapt.Resources.XmlElement value) {
          copyOnWrite();
          instance.mergeElement(value);
          return this;
        }
        /**
         * <pre>
         * If set, this node is an element/tag.
         * </pre>
         *
         * <code>optional .aapt.pb.XmlElement element = 1;</code>
         */
        public Builder clearElement() {  copyOnWrite();
          instance.clearElement();
          return this;
        }
  
        /**
         * <pre>
         * If set, this node is a chunk of text.
         * </pre>
         *
         * <code>optional string text = 2;</code>
         */
        public boolean hasText() {
          return instance.hasText();
        }
        /**
         * <pre>
         * If set, this node is a chunk of text.
         * </pre>
         *
         * <code>optional string text = 2;</code>
         */
        public java.lang.String getText() {
          return instance.getText();
        }
        /**
         * <pre>
         * If set, this node is a chunk of text.
         * </pre>
         *
         * <code>optional string text = 2;</code>
         */
        public com.google.protobuf.ByteString
            getTextBytes() {
          return instance.getTextBytes();
        }
        /**
         * <pre>
         * If set, this node is a chunk of text.
         * </pre>
         *
         * <code>optional string text = 2;</code>
         */
        public Builder setText(
            java.lang.String value) {
          copyOnWrite();
          instance.setText(value);
          return this;
        }
        /**
         * <pre>
         * If set, this node is a chunk of text.
         * </pre>
         *
         * <code>optional string text = 2;</code>
         */
        public Builder clearText() {
          copyOnWrite();
          instance.clearText();
          return this;
        }
        /**
         * <pre>
         * If set, this node is a chunk of text.
         * </pre>
         *
         * <code>optional string text = 2;</code>
         */
        public Builder setTextBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setTextBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public com.android.aapt.Resources.SourcePosition getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public Builder setSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue);
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.XmlNode)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.XmlNode();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.XmlNode other = (com.android.aapt.Resources.XmlNode) arg1;
            element_ = visitor.visitMessage(element_, other.element_);
            text_ = visitor.visitString(
                hasText(), text_,
                other.hasText(), other.text_);
            source_ = visitor.visitMessage(source_, other.source_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    com.android.aapt.Resources.XmlElement.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000001) == 0x00000001)) {
                      subBuilder = element_.toBuilder();
                    }
                    element_ = input.readMessage(com.android.aapt.Resources.XmlElement.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(element_);
                      element_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000001;
                    break;
                  }
                  case 18: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000002;
                    text_ = s;
                    break;
                  }
                  case 26: {
                    com.android.aapt.Resources.SourcePosition.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000004) == 0x00000004)) {
                      subBuilder = source_.toBuilder();
                    }
                    source_ = input.readMessage(com.android.aapt.Resources.SourcePosition.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(source_);
                      source_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000004;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.XmlNode.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.XmlNode)
      private static final com.android.aapt.Resources.XmlNode DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new XmlNode();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.XmlNode getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<XmlNode> PARSER;
  
      public static com.google.protobuf.Parser<XmlNode> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface XmlElementOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.XmlElement)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      java.util.List<com.android.aapt.Resources.XmlNamespace> 
          getNamespaceDeclarationList();
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      com.android.aapt.Resources.XmlNamespace getNamespaceDeclaration(int index);
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      int getNamespaceDeclarationCount();
  
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>optional string namespace_uri = 2;</code>
       */
      boolean hasNamespaceUri();
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>optional string namespace_uri = 2;</code>
       */
      java.lang.String getNamespaceUri();
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>optional string namespace_uri = 2;</code>
       */
      com.google.protobuf.ByteString
          getNamespaceUriBytes();
  
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      boolean hasName();
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      java.lang.String getName();
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      java.util.List<com.android.aapt.Resources.XmlAttribute> 
          getAttributeList();
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      com.android.aapt.Resources.XmlAttribute getAttribute(int index);
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      int getAttributeCount();
  
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      java.util.List<com.android.aapt.Resources.XmlNode> 
          getChildList();
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      com.android.aapt.Resources.XmlNode getChild(int index);
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      int getChildCount();
    }
    /**
     * <pre>
     * An &lt;element&gt; in an XML document.
     * </pre>
     *
     * Protobuf type {@code aapt.pb.XmlElement}
     */
    public  static final class XmlElement extends
        com.google.protobuf.GeneratedMessageLite<
            XmlElement, XmlElement.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.XmlElement)
        XmlElementOrBuilder {
      private XmlElement() {
        namespaceDeclaration_ = emptyProtobufList();
        namespaceUri_ = "";
        name_ = "";
        attribute_ = emptyProtobufList();
        child_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int NAMESPACE_DECLARATION_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.XmlNamespace> namespaceDeclaration_;
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      public java.util.List<com.android.aapt.Resources.XmlNamespace> getNamespaceDeclarationList() {
        return namespaceDeclaration_;
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.XmlNamespaceOrBuilder> 
          getNamespaceDeclarationOrBuilderList() {
        return namespaceDeclaration_;
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      public int getNamespaceDeclarationCount() {
        return namespaceDeclaration_.size();
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      public com.android.aapt.Resources.XmlNamespace getNamespaceDeclaration(int index) {
        return namespaceDeclaration_.get(index);
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      public com.android.aapt.Resources.XmlNamespaceOrBuilder getNamespaceDeclarationOrBuilder(
          int index) {
        return namespaceDeclaration_.get(index);
      }
      private void ensureNamespaceDeclarationIsMutable() {
        if (!namespaceDeclaration_.isModifiable()) {
          namespaceDeclaration_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(namespaceDeclaration_);
         }
      }
  
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      private void setNamespaceDeclaration(
          int index, com.android.aapt.Resources.XmlNamespace value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.set(index, value);
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      private void setNamespaceDeclaration(
          int index, com.android.aapt.Resources.XmlNamespace.Builder builderForValue) {
        ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      private void addNamespaceDeclaration(com.android.aapt.Resources.XmlNamespace value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.add(value);
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      private void addNamespaceDeclaration(
          int index, com.android.aapt.Resources.XmlNamespace value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.add(index, value);
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      private void addNamespaceDeclaration(
          com.android.aapt.Resources.XmlNamespace.Builder builderForValue) {
        ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.add(builderForValue.build());
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      private void addNamespaceDeclaration(
          int index, com.android.aapt.Resources.XmlNamespace.Builder builderForValue) {
        ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      private void addAllNamespaceDeclaration(
          java.lang.Iterable<? extends com.android.aapt.Resources.XmlNamespace> values) {
        ensureNamespaceDeclarationIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, namespaceDeclaration_);
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      private void clearNamespaceDeclaration() {
        namespaceDeclaration_ = emptyProtobufList();
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
       */
      private void removeNamespaceDeclaration(int index) {
        ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.remove(index);
      }
  
      public static final int NAMESPACE_URI_FIELD_NUMBER = 2;
      private java.lang.String namespaceUri_;
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>optional string namespace_uri = 2;</code>
       */
      public boolean hasNamespaceUri() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>optional string namespace_uri = 2;</code>
       */
      public java.lang.String getNamespaceUri() {
        return namespaceUri_;
      }
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>optional string namespace_uri = 2;</code>
       */
      public com.google.protobuf.ByteString
          getNamespaceUriBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(namespaceUri_);
      }
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>optional string namespace_uri = 2;</code>
       */
      private void setNamespaceUri(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        namespaceUri_ = value;
      }
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>optional string namespace_uri = 2;</code>
       */
      private void clearNamespaceUri() {
        bitField0_ = (bitField0_ & ~0x00000001);
        namespaceUri_ = getDefaultInstance().getNamespaceUri();
      }
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>optional string namespace_uri = 2;</code>
       */
      private void setNamespaceUriBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        namespaceUri_ = value.toStringUtf8();
      }
  
      public static final int NAME_FIELD_NUMBER = 3;
      private java.lang.String name_;
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      private void setName(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        name_ = value;
      }
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      private void clearName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = getDefaultInstance().getName();
      }
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        name_ = value.toStringUtf8();
      }
  
      public static final int ATTRIBUTE_FIELD_NUMBER = 4;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.XmlAttribute> attribute_;
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      public java.util.List<com.android.aapt.Resources.XmlAttribute> getAttributeList() {
        return attribute_;
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.XmlAttributeOrBuilder> 
          getAttributeOrBuilderList() {
        return attribute_;
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      public int getAttributeCount() {
        return attribute_.size();
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      public com.android.aapt.Resources.XmlAttribute getAttribute(int index) {
        return attribute_.get(index);
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      public com.android.aapt.Resources.XmlAttributeOrBuilder getAttributeOrBuilder(
          int index) {
        return attribute_.get(index);
      }
      private void ensureAttributeIsMutable() {
        if (!attribute_.isModifiable()) {
          attribute_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(attribute_);
         }
      }
  
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      private void setAttribute(
          int index, com.android.aapt.Resources.XmlAttribute value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAttributeIsMutable();
        attribute_.set(index, value);
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      private void setAttribute(
          int index, com.android.aapt.Resources.XmlAttribute.Builder builderForValue) {
        ensureAttributeIsMutable();
        attribute_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      private void addAttribute(com.android.aapt.Resources.XmlAttribute value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAttributeIsMutable();
        attribute_.add(value);
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      private void addAttribute(
          int index, com.android.aapt.Resources.XmlAttribute value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAttributeIsMutable();
        attribute_.add(index, value);
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      private void addAttribute(
          com.android.aapt.Resources.XmlAttribute.Builder builderForValue) {
        ensureAttributeIsMutable();
        attribute_.add(builderForValue.build());
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      private void addAttribute(
          int index, com.android.aapt.Resources.XmlAttribute.Builder builderForValue) {
        ensureAttributeIsMutable();
        attribute_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      private void addAllAttribute(
          java.lang.Iterable<? extends com.android.aapt.Resources.XmlAttribute> values) {
        ensureAttributeIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, attribute_);
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      private void clearAttribute() {
        attribute_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
       */
      private void removeAttribute(int index) {
        ensureAttributeIsMutable();
        attribute_.remove(index);
      }
  
      public static final int CHILD_FIELD_NUMBER = 5;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.XmlNode> child_;
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      public java.util.List<com.android.aapt.Resources.XmlNode> getChildList() {
        return child_;
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.XmlNodeOrBuilder> 
          getChildOrBuilderList() {
        return child_;
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      public int getChildCount() {
        return child_.size();
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      public com.android.aapt.Resources.XmlNode getChild(int index) {
        return child_.get(index);
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      public com.android.aapt.Resources.XmlNodeOrBuilder getChildOrBuilder(
          int index) {
        return child_.get(index);
      }
      private void ensureChildIsMutable() {
        if (!child_.isModifiable()) {
          child_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(child_);
         }
      }
  
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      private void setChild(
          int index, com.android.aapt.Resources.XmlNode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureChildIsMutable();
        child_.set(index, value);
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      private void setChild(
          int index, com.android.aapt.Resources.XmlNode.Builder builderForValue) {
        ensureChildIsMutable();
        child_.set(index, builderForValue.build());
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      private void addChild(com.android.aapt.Resources.XmlNode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureChildIsMutable();
        child_.add(value);
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      private void addChild(
          int index, com.android.aapt.Resources.XmlNode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureChildIsMutable();
        child_.add(index, value);
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      private void addChild(
          com.android.aapt.Resources.XmlNode.Builder builderForValue) {
        ensureChildIsMutable();
        child_.add(builderForValue.build());
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      private void addChild(
          int index, com.android.aapt.Resources.XmlNode.Builder builderForValue) {
        ensureChildIsMutable();
        child_.add(index, builderForValue.build());
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      private void addAllChild(
          java.lang.Iterable<? extends com.android.aapt.Resources.XmlNode> values) {
        ensureChildIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, child_);
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      private void clearChild() {
        child_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .aapt.pb.XmlNode child = 5;</code>
       */
      private void removeChild(int index) {
        ensureChildIsMutable();
        child_.remove(index);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < namespaceDeclaration_.size(); i++) {
          output.writeMessage(1, namespaceDeclaration_.get(i));
        }
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeString(2, getNamespaceUri());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeString(3, getName());
        }
        for (int i = 0; i < attribute_.size(); i++) {
          output.writeMessage(4, attribute_.get(i));
        }
        for (int i = 0; i < child_.size(); i++) {
          output.writeMessage(5, child_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        for (int i = 0; i < namespaceDeclaration_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, namespaceDeclaration_.get(i));
        }
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(2, getNamespaceUri());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(3, getName());
        }
        for (int i = 0; i < attribute_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, attribute_.get(i));
        }
        for (int i = 0; i < child_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, child_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.XmlElement parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlElement 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 com.android.aapt.Resources.XmlElement parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlElement 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 com.android.aapt.Resources.XmlElement parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlElement 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 com.android.aapt.Resources.XmlElement parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlElement parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.XmlElement parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlElement 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.XmlElement prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * An &lt;element&gt; in an XML document.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.XmlElement}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.XmlElement, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.XmlElement)
          com.android.aapt.Resources.XmlElementOrBuilder {
        // Construct using com.android.aapt.Resources.XmlElement.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public java.util.List<com.android.aapt.Resources.XmlNamespace> getNamespaceDeclarationList() {
          return java.util.Collections.unmodifiableList(
              instance.getNamespaceDeclarationList());
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public int getNamespaceDeclarationCount() {
          return instance.getNamespaceDeclarationCount();
        }/**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public com.android.aapt.Resources.XmlNamespace getNamespaceDeclaration(int index) {
          return instance.getNamespaceDeclaration(index);
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder setNamespaceDeclaration(
            int index, com.android.aapt.Resources.XmlNamespace value) {
          copyOnWrite();
          instance.setNamespaceDeclaration(index, value);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder setNamespaceDeclaration(
            int index, com.android.aapt.Resources.XmlNamespace.Builder builderForValue) {
          copyOnWrite();
          instance.setNamespaceDeclaration(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder addNamespaceDeclaration(com.android.aapt.Resources.XmlNamespace value) {
          copyOnWrite();
          instance.addNamespaceDeclaration(value);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder addNamespaceDeclaration(
            int index, com.android.aapt.Resources.XmlNamespace value) {
          copyOnWrite();
          instance.addNamespaceDeclaration(index, value);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder addNamespaceDeclaration(
            com.android.aapt.Resources.XmlNamespace.Builder builderForValue) {
          copyOnWrite();
          instance.addNamespaceDeclaration(builderForValue);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder addNamespaceDeclaration(
            int index, com.android.aapt.Resources.XmlNamespace.Builder builderForValue) {
          copyOnWrite();
          instance.addNamespaceDeclaration(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder addAllNamespaceDeclaration(
            java.lang.Iterable<? extends com.android.aapt.Resources.XmlNamespace> values) {
          copyOnWrite();
          instance.addAllNamespaceDeclaration(values);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder clearNamespaceDeclaration() {
          copyOnWrite();
          instance.clearNamespaceDeclaration();
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder removeNamespaceDeclaration(int index) {
          copyOnWrite();
          instance.removeNamespaceDeclaration(index);
          return this;
        }
  
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>optional string namespace_uri = 2;</code>
         */
        public boolean hasNamespaceUri() {
          return instance.hasNamespaceUri();
        }
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>optional string namespace_uri = 2;</code>
         */
        public java.lang.String getNamespaceUri() {
          return instance.getNamespaceUri();
        }
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>optional string namespace_uri = 2;</code>
         */
        public com.google.protobuf.ByteString
            getNamespaceUriBytes() {
          return instance.getNamespaceUriBytes();
        }
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>optional string namespace_uri = 2;</code>
         */
        public Builder setNamespaceUri(
            java.lang.String value) {
          copyOnWrite();
          instance.setNamespaceUri(value);
          return this;
        }
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>optional string namespace_uri = 2;</code>
         */
        public Builder clearNamespaceUri() {
          copyOnWrite();
          instance.clearNamespaceUri();
          return this;
        }
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>optional string namespace_uri = 2;</code>
         */
        public Builder setNamespaceUriBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNamespaceUriBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public boolean hasName() {
          return instance.hasName();
        }
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>optional string name = 3;</code>
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public java.util.List<com.android.aapt.Resources.XmlAttribute> getAttributeList() {
          return java.util.Collections.unmodifiableList(
              instance.getAttributeList());
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public int getAttributeCount() {
          return instance.getAttributeCount();
        }/**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public com.android.aapt.Resources.XmlAttribute getAttribute(int index) {
          return instance.getAttribute(index);
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public Builder setAttribute(
            int index, com.android.aapt.Resources.XmlAttribute value) {
          copyOnWrite();
          instance.setAttribute(index, value);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public Builder setAttribute(
            int index, com.android.aapt.Resources.XmlAttribute.Builder builderForValue) {
          copyOnWrite();
          instance.setAttribute(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public Builder addAttribute(com.android.aapt.Resources.XmlAttribute value) {
          copyOnWrite();
          instance.addAttribute(value);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public Builder addAttribute(
            int index, com.android.aapt.Resources.XmlAttribute value) {
          copyOnWrite();
          instance.addAttribute(index, value);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public Builder addAttribute(
            com.android.aapt.Resources.XmlAttribute.Builder builderForValue) {
          copyOnWrite();
          instance.addAttribute(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public Builder addAttribute(
            int index, com.android.aapt.Resources.XmlAttribute.Builder builderForValue) {
          copyOnWrite();
          instance.addAttribute(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public Builder addAllAttribute(
            java.lang.Iterable<? extends com.android.aapt.Resources.XmlAttribute> values) {
          copyOnWrite();
          instance.addAllAttribute(values);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public Builder clearAttribute() {
          copyOnWrite();
          instance.clearAttribute();
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlAttribute attribute = 4;</code>
         */
        public Builder removeAttribute(int index) {
          copyOnWrite();
          instance.removeAttribute(index);
          return this;
        }
  
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public java.util.List<com.android.aapt.Resources.XmlNode> getChildList() {
          return java.util.Collections.unmodifiableList(
              instance.getChildList());
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public int getChildCount() {
          return instance.getChildCount();
        }/**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public com.android.aapt.Resources.XmlNode getChild(int index) {
          return instance.getChild(index);
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public Builder setChild(
            int index, com.android.aapt.Resources.XmlNode value) {
          copyOnWrite();
          instance.setChild(index, value);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public Builder setChild(
            int index, com.android.aapt.Resources.XmlNode.Builder builderForValue) {
          copyOnWrite();
          instance.setChild(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public Builder addChild(com.android.aapt.Resources.XmlNode value) {
          copyOnWrite();
          instance.addChild(value);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public Builder addChild(
            int index, com.android.aapt.Resources.XmlNode value) {
          copyOnWrite();
          instance.addChild(index, value);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public Builder addChild(
            com.android.aapt.Resources.XmlNode.Builder builderForValue) {
          copyOnWrite();
          instance.addChild(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public Builder addChild(
            int index, com.android.aapt.Resources.XmlNode.Builder builderForValue) {
          copyOnWrite();
          instance.addChild(index, builderForValue);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public Builder addAllChild(
            java.lang.Iterable<? extends com.android.aapt.Resources.XmlNode> values) {
          copyOnWrite();
          instance.addAllChild(values);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public Builder clearChild() {
          copyOnWrite();
          instance.clearChild();
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .aapt.pb.XmlNode child = 5;</code>
         */
        public Builder removeChild(int index) {
          copyOnWrite();
          instance.removeChild(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.XmlElement)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.XmlElement();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            namespaceDeclaration_.makeImmutable();
            attribute_.makeImmutable();
            child_.makeImmutable();
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.XmlElement other = (com.android.aapt.Resources.XmlElement) arg1;
            namespaceDeclaration_= visitor.visitList(namespaceDeclaration_, other.namespaceDeclaration_);
            namespaceUri_ = visitor.visitString(
                hasNamespaceUri(), namespaceUri_,
                other.hasNamespaceUri(), other.namespaceUri_);
            name_ = visitor.visitString(
                hasName(), name_,
                other.hasName(), other.name_);
            attribute_= visitor.visitList(attribute_, other.attribute_);
            child_= visitor.visitList(child_, other.child_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    if (!namespaceDeclaration_.isModifiable()) {
                      namespaceDeclaration_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(namespaceDeclaration_);
                    }
                    namespaceDeclaration_.add(
                        input.readMessage(com.android.aapt.Resources.XmlNamespace.parser(), extensionRegistry));
                    break;
                  }
                  case 18: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000001;
                    namespaceUri_ = s;
                    break;
                  }
                  case 26: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000002;
                    name_ = s;
                    break;
                  }
                  case 34: {
                    if (!attribute_.isModifiable()) {
                      attribute_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(attribute_);
                    }
                    attribute_.add(
                        input.readMessage(com.android.aapt.Resources.XmlAttribute.parser(), extensionRegistry));
                    break;
                  }
                  case 42: {
                    if (!child_.isModifiable()) {
                      child_ =
                          com.google.protobuf.GeneratedMessageLite.mutableCopy(child_);
                    }
                    child_.add(
                        input.readMessage(com.android.aapt.Resources.XmlNode.parser(), extensionRegistry));
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.XmlElement.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.XmlElement)
      private static final com.android.aapt.Resources.XmlElement DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new XmlElement();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.XmlElement getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<XmlElement> PARSER;
  
      public static com.google.protobuf.Parser<XmlElement> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface XmlNamespaceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.XmlNamespace)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional string prefix = 1;</code>
       */
      boolean hasPrefix();
      /**
       * <code>optional string prefix = 1;</code>
       */
      java.lang.String getPrefix();
      /**
       * <code>optional string prefix = 1;</code>
       */
      com.google.protobuf.ByteString
          getPrefixBytes();
  
      /**
       * <code>optional string uri = 2;</code>
       */
      boolean hasUri();
      /**
       * <code>optional string uri = 2;</code>
       */
      java.lang.String getUri();
      /**
       * <code>optional string uri = 2;</code>
       */
      com.google.protobuf.ByteString
          getUriBytes();
  
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      boolean hasSource();
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      com.android.aapt.Resources.SourcePosition getSource();
    }
    /**
     * <pre>
     * A namespace declaration on an XmlElement (xmlns:android="http://...").
     * </pre>
     *
     * Protobuf type {@code aapt.pb.XmlNamespace}
     */
    public  static final class XmlNamespace extends
        com.google.protobuf.GeneratedMessageLite<
            XmlNamespace, XmlNamespace.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.XmlNamespace)
        XmlNamespaceOrBuilder {
      private XmlNamespace() {
        prefix_ = "";
        uri_ = "";
      }
      private int bitField0_;
      public static final int PREFIX_FIELD_NUMBER = 1;
      private java.lang.String prefix_;
      /**
       * <code>optional string prefix = 1;</code>
       */
      public boolean hasPrefix() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string prefix = 1;</code>
       */
      public java.lang.String getPrefix() {
        return prefix_;
      }
      /**
       * <code>optional string prefix = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPrefixBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(prefix_);
      }
      /**
       * <code>optional string prefix = 1;</code>
       */
      private void setPrefix(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        prefix_ = value;
      }
      /**
       * <code>optional string prefix = 1;</code>
       */
      private void clearPrefix() {
        bitField0_ = (bitField0_ & ~0x00000001);
        prefix_ = getDefaultInstance().getPrefix();
      }
      /**
       * <code>optional string prefix = 1;</code>
       */
      private void setPrefixBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        prefix_ = value.toStringUtf8();
      }
  
      public static final int URI_FIELD_NUMBER = 2;
      private java.lang.String uri_;
      /**
       * <code>optional string uri = 2;</code>
       */
      public boolean hasUri() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string uri = 2;</code>
       */
      public java.lang.String getUri() {
        return uri_;
      }
      /**
       * <code>optional string uri = 2;</code>
       */
      public com.google.protobuf.ByteString
          getUriBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(uri_);
      }
      /**
       * <code>optional string uri = 2;</code>
       */
      private void setUri(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        uri_ = value;
      }
      /**
       * <code>optional string uri = 2;</code>
       */
      private void clearUri() {
        bitField0_ = (bitField0_ & ~0x00000002);
        uri_ = getDefaultInstance().getUri();
      }
      /**
       * <code>optional string uri = 2;</code>
       */
      private void setUriBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        uri_ = value.toStringUtf8();
      }
  
      public static final int SOURCE_FIELD_NUMBER = 3;
      private com.android.aapt.Resources.SourcePosition source_;
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      public boolean hasSource() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      public com.android.aapt.Resources.SourcePosition getSource() {
        return source_ == null ? com.android.aapt.Resources.SourcePosition.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      private void setSource(com.android.aapt.Resources.SourcePosition value) {
        if (value == null) {
          throw new NullPointerException();
        }
        source_ = value;
        bitField0_ |= 0x00000004;
        }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      private void setSource(
          com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
        source_ = builderForValue.build();
        bitField0_ |= 0x00000004;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      private void mergeSource(com.android.aapt.Resources.SourcePosition value) {
        if (source_ != null &&
            source_ != com.android.aapt.Resources.SourcePosition.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.SourcePosition.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 3;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000004);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeString(1, getPrefix());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeString(2, getUri());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, getSource());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(1, getPrefix());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(2, getUri());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getSource());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.XmlNamespace parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlNamespace 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 com.android.aapt.Resources.XmlNamespace parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlNamespace 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 com.android.aapt.Resources.XmlNamespace parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlNamespace 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 com.android.aapt.Resources.XmlNamespace parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlNamespace parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.XmlNamespace parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlNamespace 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.XmlNamespace prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * A namespace declaration on an XmlElement (xmlns:android="http://...").
       * </pre>
       *
       * Protobuf type {@code aapt.pb.XmlNamespace}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.XmlNamespace, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.XmlNamespace)
          com.android.aapt.Resources.XmlNamespaceOrBuilder {
        // Construct using com.android.aapt.Resources.XmlNamespace.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional string prefix = 1;</code>
         */
        public boolean hasPrefix() {
          return instance.hasPrefix();
        }
        /**
         * <code>optional string prefix = 1;</code>
         */
        public java.lang.String getPrefix() {
          return instance.getPrefix();
        }
        /**
         * <code>optional string prefix = 1;</code>
         */
        public com.google.protobuf.ByteString
            getPrefixBytes() {
          return instance.getPrefixBytes();
        }
        /**
         * <code>optional string prefix = 1;</code>
         */
        public Builder setPrefix(
            java.lang.String value) {
          copyOnWrite();
          instance.setPrefix(value);
          return this;
        }
        /**
         * <code>optional string prefix = 1;</code>
         */
        public Builder clearPrefix() {
          copyOnWrite();
          instance.clearPrefix();
          return this;
        }
        /**
         * <code>optional string prefix = 1;</code>
         */
        public Builder setPrefixBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setPrefixBytes(value);
          return this;
        }
  
        /**
         * <code>optional string uri = 2;</code>
         */
        public boolean hasUri() {
          return instance.hasUri();
        }
        /**
         * <code>optional string uri = 2;</code>
         */
        public java.lang.String getUri() {
          return instance.getUri();
        }
        /**
         * <code>optional string uri = 2;</code>
         */
        public com.google.protobuf.ByteString
            getUriBytes() {
          return instance.getUriBytes();
        }
        /**
         * <code>optional string uri = 2;</code>
         */
        public Builder setUri(
            java.lang.String value) {
          copyOnWrite();
          instance.setUri(value);
          return this;
        }
        /**
         * <code>optional string uri = 2;</code>
         */
        public Builder clearUri() {
          copyOnWrite();
          instance.clearUri();
          return this;
        }
        /**
         * <code>optional string uri = 2;</code>
         */
        public Builder setUriBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setUriBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public com.android.aapt.Resources.SourcePosition getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public Builder setSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue);
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 3;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.XmlNamespace)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.XmlNamespace();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.XmlNamespace other = (com.android.aapt.Resources.XmlNamespace) arg1;
            prefix_ = visitor.visitString(
                hasPrefix(), prefix_,
                other.hasPrefix(), other.prefix_);
            uri_ = visitor.visitString(
                hasUri(), uri_,
                other.hasUri(), other.uri_);
            source_ = visitor.visitMessage(source_, other.source_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000001;
                    prefix_ = s;
                    break;
                  }
                  case 18: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000002;
                    uri_ = s;
                    break;
                  }
                  case 26: {
                    com.android.aapt.Resources.SourcePosition.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000004) == 0x00000004)) {
                      subBuilder = source_.toBuilder();
                    }
                    source_ = input.readMessage(com.android.aapt.Resources.SourcePosition.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(source_);
                      source_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000004;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.XmlNamespace.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.XmlNamespace)
      private static final com.android.aapt.Resources.XmlNamespace DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new XmlNamespace();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.XmlNamespace getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<XmlNamespace> PARSER;
  
      public static com.google.protobuf.Parser<XmlNamespace> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface XmlAttributeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:aapt.pb.XmlAttribute)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional string namespace_uri = 1;</code>
       */
      boolean hasNamespaceUri();
      /**
       * <code>optional string namespace_uri = 1;</code>
       */
      java.lang.String getNamespaceUri();
      /**
       * <code>optional string namespace_uri = 1;</code>
       */
      com.google.protobuf.ByteString
          getNamespaceUriBytes();
  
      /**
       * <code>optional string name = 2;</code>
       */
      boolean hasName();
      /**
       * <code>optional string name = 2;</code>
       */
      java.lang.String getName();
      /**
       * <code>optional string name = 2;</code>
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <code>optional string value = 3;</code>
       */
      boolean hasValue();
      /**
       * <code>optional string value = 3;</code>
       */
      java.lang.String getValue();
      /**
       * <code>optional string value = 3;</code>
       */
      com.google.protobuf.ByteString
          getValueBytes();
  
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 4;</code>
       */
      boolean hasSource();
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 4;</code>
       */
      com.android.aapt.Resources.SourcePosition getSource();
  
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the attribute.
       * </pre>
       *
       * <code>optional uint32 resource_id = 5;</code>
       */
      boolean hasResourceId();
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the attribute.
       * </pre>
       *
       * <code>optional uint32 resource_id = 5;</code>
       */
      int getResourceId();
  
      /**
       * <pre>
       * The interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>optional .aapt.pb.Item compiled_item = 6;</code>
       */
      boolean hasCompiledItem();
      /**
       * <pre>
       * The interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>optional .aapt.pb.Item compiled_item = 6;</code>
       */
      com.android.aapt.Resources.Item getCompiledItem();
    }
    /**
     * <pre>
     * An attribute defined on an XmlElement (android:text="...").
     * </pre>
     *
     * Protobuf type {@code aapt.pb.XmlAttribute}
     */
    public  static final class XmlAttribute extends
        com.google.protobuf.GeneratedMessageLite<
            XmlAttribute, XmlAttribute.Builder> implements
        // @@protoc_insertion_point(message_implements:aapt.pb.XmlAttribute)
        XmlAttributeOrBuilder {
      private XmlAttribute() {
        namespaceUri_ = "";
        name_ = "";
        value_ = "";
      }
      private int bitField0_;
      public static final int NAMESPACE_URI_FIELD_NUMBER = 1;
      private java.lang.String namespaceUri_;
      /**
       * <code>optional string namespace_uri = 1;</code>
       */
      public boolean hasNamespaceUri() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string namespace_uri = 1;</code>
       */
      public java.lang.String getNamespaceUri() {
        return namespaceUri_;
      }
      /**
       * <code>optional string namespace_uri = 1;</code>
       */
      public com.google.protobuf.ByteString
          getNamespaceUriBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(namespaceUri_);
      }
      /**
       * <code>optional string namespace_uri = 1;</code>
       */
      private void setNamespaceUri(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        namespaceUri_ = value;
      }
      /**
       * <code>optional string namespace_uri = 1;</code>
       */
      private void clearNamespaceUri() {
        bitField0_ = (bitField0_ & ~0x00000001);
        namespaceUri_ = getDefaultInstance().getNamespaceUri();
      }
      /**
       * <code>optional string namespace_uri = 1;</code>
       */
      private void setNamespaceUriBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
        namespaceUri_ = value.toStringUtf8();
      }
  
      public static final int NAME_FIELD_NUMBER = 2;
      private java.lang.String name_;
      /**
       * <code>optional string name = 2;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string name = 2;</code>
       */
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <code>optional string name = 2;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <code>optional string name = 2;</code>
       */
      private void setName(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        name_ = value;
      }
      /**
       * <code>optional string name = 2;</code>
       */
      private void clearName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = getDefaultInstance().getName();
      }
      /**
       * <code>optional string name = 2;</code>
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
        name_ = value.toStringUtf8();
      }
  
      public static final int VALUE_FIELD_NUMBER = 3;
      private java.lang.String value_;
      /**
       * <code>optional string value = 3;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string value = 3;</code>
       */
      public java.lang.String getValue() {
        return value_;
      }
      /**
       * <code>optional string value = 3;</code>
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(value_);
      }
      /**
       * <code>optional string value = 3;</code>
       */
      private void setValue(
          java.lang.String value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
        value_ = value;
      }
      /**
       * <code>optional string value = 3;</code>
       */
      private void clearValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        value_ = getDefaultInstance().getValue();
      }
      /**
       * <code>optional string value = 3;</code>
       */
      private void setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
        value_ = value.toStringUtf8();
      }
  
      public static final int SOURCE_FIELD_NUMBER = 4;
      private com.android.aapt.Resources.SourcePosition source_;
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 4;</code>
       */
      public boolean hasSource() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 4;</code>
       */
      public com.android.aapt.Resources.SourcePosition getSource() {
        return source_ == null ? com.android.aapt.Resources.SourcePosition.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 4;</code>
       */
      private void setSource(com.android.aapt.Resources.SourcePosition value) {
        if (value == null) {
          throw new NullPointerException();
        }
        source_ = value;
        bitField0_ |= 0x00000008;
        }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 4;</code>
       */
      private void setSource(
          com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
        source_ = builderForValue.build();
        bitField0_ |= 0x00000008;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 4;</code>
       */
      private void mergeSource(com.android.aapt.Resources.SourcePosition value) {
        if (source_ != null &&
            source_ != com.android.aapt.Resources.SourcePosition.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.SourcePosition.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>optional .aapt.pb.SourcePosition source = 4;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000008);
      }
  
      public static final int RESOURCE_ID_FIELD_NUMBER = 5;
      private int resourceId_;
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the attribute.
       * </pre>
       *
       * <code>optional uint32 resource_id = 5;</code>
       */
      public boolean hasResourceId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the attribute.
       * </pre>
       *
       * <code>optional uint32 resource_id = 5;</code>
       */
      public int getResourceId() {
        return resourceId_;
      }
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the attribute.
       * </pre>
       *
       * <code>optional uint32 resource_id = 5;</code>
       */
      private void setResourceId(int value) {
        bitField0_ |= 0x00000010;
        resourceId_ = value;
      }
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the attribute.
       * </pre>
       *
       * <code>optional uint32 resource_id = 5;</code>
       */
      private void clearResourceId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        resourceId_ = 0;
      }
  
      public static final int COMPILED_ITEM_FIELD_NUMBER = 6;
      private com.android.aapt.Resources.Item compiledItem_;
      /**
       * <pre>
       * The interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>optional .aapt.pb.Item compiled_item = 6;</code>
       */
      public boolean hasCompiledItem() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       * The interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>optional .aapt.pb.Item compiled_item = 6;</code>
       */
      public com.android.aapt.Resources.Item getCompiledItem() {
        return compiledItem_ == null ? com.android.aapt.Resources.Item.getDefaultInstance() : compiledItem_;
      }
      /**
       * <pre>
       * The interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>optional .aapt.pb.Item compiled_item = 6;</code>
       */
      private void setCompiledItem(com.android.aapt.Resources.Item value) {
        if (value == null) {
          throw new NullPointerException();
        }
        compiledItem_ = value;
        bitField0_ |= 0x00000020;
        }
      /**
       * <pre>
       * The interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>optional .aapt.pb.Item compiled_item = 6;</code>
       */
      private void setCompiledItem(
          com.android.aapt.Resources.Item.Builder builderForValue) {
        compiledItem_ = builderForValue.build();
        bitField0_ |= 0x00000020;
      }
      /**
       * <pre>
       * The interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>optional .aapt.pb.Item compiled_item = 6;</code>
       */
      private void mergeCompiledItem(com.android.aapt.Resources.Item value) {
        if (compiledItem_ != null &&
            compiledItem_ != com.android.aapt.Resources.Item.getDefaultInstance()) {
          compiledItem_ =
            com.android.aapt.Resources.Item.newBuilder(compiledItem_).mergeFrom(value).buildPartial();
        } else {
          compiledItem_ = value;
        }
        bitField0_ |= 0x00000020;
      }
      /**
       * <pre>
       * The interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>optional .aapt.pb.Item compiled_item = 6;</code>
       */
      private void clearCompiledItem() {  compiledItem_ = null;
        bitField0_ = (bitField0_ & ~0x00000020);
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeString(1, getNamespaceUri());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeString(2, getName());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeString(3, getValue());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(4, getSource());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeUInt32(5, resourceId_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeMessage(6, getCompiledItem());
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(1, getNamespaceUri());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(2, getName());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeStringSize(3, getValue());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getSource());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(5, resourceId_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, getCompiledItem());
        }
        size += unknownFields.getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      public static com.android.aapt.Resources.XmlAttribute parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlAttribute 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 com.android.aapt.Resources.XmlAttribute parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlAttribute 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 com.android.aapt.Resources.XmlAttribute parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlAttribute 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 com.android.aapt.Resources.XmlAttribute parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlAttribute parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.XmlAttribute parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlAttribute 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 DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.android.aapt.Resources.XmlAttribute prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
  
      /**
       * <pre>
       * An attribute defined on an XmlElement (android:text="...").
       * </pre>
       *
       * Protobuf type {@code aapt.pb.XmlAttribute}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.XmlAttribute, Builder> implements
          // @@protoc_insertion_point(builder_implements:aapt.pb.XmlAttribute)
          com.android.aapt.Resources.XmlAttributeOrBuilder {
        // Construct using com.android.aapt.Resources.XmlAttribute.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional string namespace_uri = 1;</code>
         */
        public boolean hasNamespaceUri() {
          return instance.hasNamespaceUri();
        }
        /**
         * <code>optional string namespace_uri = 1;</code>
         */
        public java.lang.String getNamespaceUri() {
          return instance.getNamespaceUri();
        }
        /**
         * <code>optional string namespace_uri = 1;</code>
         */
        public com.google.protobuf.ByteString
            getNamespaceUriBytes() {
          return instance.getNamespaceUriBytes();
        }
        /**
         * <code>optional string namespace_uri = 1;</code>
         */
        public Builder setNamespaceUri(
            java.lang.String value) {
          copyOnWrite();
          instance.setNamespaceUri(value);
          return this;
        }
        /**
         * <code>optional string namespace_uri = 1;</code>
         */
        public Builder clearNamespaceUri() {
          copyOnWrite();
          instance.clearNamespaceUri();
          return this;
        }
        /**
         * <code>optional string namespace_uri = 1;</code>
         */
        public Builder setNamespaceUriBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNamespaceUriBytes(value);
          return this;
        }
  
        /**
         * <code>optional string name = 2;</code>
         */
        public boolean hasName() {
          return instance.hasName();
        }
        /**
         * <code>optional string name = 2;</code>
         */
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <code>optional string name = 2;</code>
         */
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <code>optional string name = 2;</code>
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <code>optional string name = 2;</code>
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <code>optional string name = 2;</code>
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <code>optional string value = 3;</code>
         */
        public boolean hasValue() {
          return instance.hasValue();
        }
        /**
         * <code>optional string value = 3;</code>
         */
        public java.lang.String getValue() {
          return instance.getValue();
        }
        /**
         * <code>optional string value = 3;</code>
         */
        public com.google.protobuf.ByteString
            getValueBytes() {
          return instance.getValueBytes();
        }
        /**
         * <code>optional string value = 3;</code>
         */
        public Builder setValue(
            java.lang.String value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
        }
        /**
         * <code>optional string value = 3;</code>
         */
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
        /**
         * <code>optional string value = 3;</code>
         */
        public Builder setValueBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setValueBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 4;</code>
         */
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 4;</code>
         */
        public com.android.aapt.Resources.SourcePosition getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 4;</code>
         */
        public Builder setSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 4;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue);
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 4;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>optional .aapt.pb.SourcePosition source = 4;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the attribute.
         * </pre>
         *
         * <code>optional uint32 resource_id = 5;</code>
         */
        public boolean hasResourceId() {
          return instance.hasResourceId();
        }
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the attribute.
         * </pre>
         *
         * <code>optional uint32 resource_id = 5;</code>
         */
        public int getResourceId() {
          return instance.getResourceId();
        }
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the attribute.
         * </pre>
         *
         * <code>optional uint32 resource_id = 5;</code>
         */
        public Builder setResourceId(int value) {
          copyOnWrite();
          instance.setResourceId(value);
          return this;
        }
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the attribute.
         * </pre>
         *
         * <code>optional uint32 resource_id = 5;</code>
         */
        public Builder clearResourceId() {
          copyOnWrite();
          instance.clearResourceId();
          return this;
        }
  
        /**
         * <pre>
         * The interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>optional .aapt.pb.Item compiled_item = 6;</code>
         */
        public boolean hasCompiledItem() {
          return instance.hasCompiledItem();
        }
        /**
         * <pre>
         * The interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>optional .aapt.pb.Item compiled_item = 6;</code>
         */
        public com.android.aapt.Resources.Item getCompiledItem() {
          return instance.getCompiledItem();
        }
        /**
         * <pre>
         * The interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>optional .aapt.pb.Item compiled_item = 6;</code>
         */
        public Builder setCompiledItem(com.android.aapt.Resources.Item value) {
          copyOnWrite();
          instance.setCompiledItem(value);
          return this;
          }
        /**
         * <pre>
         * The interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>optional .aapt.pb.Item compiled_item = 6;</code>
         */
        public Builder setCompiledItem(
            com.android.aapt.Resources.Item.Builder builderForValue) {
          copyOnWrite();
          instance.setCompiledItem(builderForValue);
          return this;
        }
        /**
         * <pre>
         * The interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>optional .aapt.pb.Item compiled_item = 6;</code>
         */
        public Builder mergeCompiledItem(com.android.aapt.Resources.Item value) {
          copyOnWrite();
          instance.mergeCompiledItem(value);
          return this;
        }
        /**
         * <pre>
         * The interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>optional .aapt.pb.Item compiled_item = 6;</code>
         */
        public Builder clearCompiledItem() {  copyOnWrite();
          instance.clearCompiledItem();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:aapt.pb.XmlAttribute)
      }
      protected final Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          Object arg0, Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new com.android.aapt.Resources.XmlAttribute();
          }
          case IS_INITIALIZED: {
            return DEFAULT_INSTANCE;
          }
          case MAKE_IMMUTABLE: {
            return null;
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case VISIT: {
            Visitor visitor = (Visitor) arg0;
            com.android.aapt.Resources.XmlAttribute other = (com.android.aapt.Resources.XmlAttribute) arg1;
            namespaceUri_ = visitor.visitString(
                hasNamespaceUri(), namespaceUri_,
                other.hasNamespaceUri(), other.namespaceUri_);
            name_ = visitor.visitString(
                hasName(), name_,
                other.hasName(), other.name_);
            value_ = visitor.visitString(
                hasValue(), value_,
                other.hasValue(), other.value_);
            source_ = visitor.visitMessage(source_, other.source_);
            resourceId_ = visitor.visitInt(
                hasResourceId(), resourceId_,
                other.hasResourceId(), other.resourceId_);
            compiledItem_ = visitor.visitMessage(compiledItem_, other.compiledItem_);
            if (visitor == com.google.protobuf.GeneratedMessageLite.MergeFromVisitor
                .INSTANCE) {
              bitField0_ |= other.bitField0_;
            }
            return this;
          }
          case MERGE_FROM_STREAM: {
            com.google.protobuf.CodedInputStream input =
                (com.google.protobuf.CodedInputStream) arg0;
            com.google.protobuf.ExtensionRegistryLite extensionRegistry =
                (com.google.protobuf.ExtensionRegistryLite) arg1;
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(tag, input)) {
                      done = true;
                    }
                    break;
                  }
                  case 10: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000001;
                    namespaceUri_ = s;
                    break;
                  }
                  case 18: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000002;
                    name_ = s;
                    break;
                  }
                  case 26: {
                    java.lang.String s = input.readString();
                    bitField0_ |= 0x00000004;
                    value_ = s;
                    break;
                  }
                  case 34: {
                    com.android.aapt.Resources.SourcePosition.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000008) == 0x00000008)) {
                      subBuilder = source_.toBuilder();
                    }
                    source_ = input.readMessage(com.android.aapt.Resources.SourcePosition.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(source_);
                      source_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000008;
                    break;
                  }
                  case 40: {
                    bitField0_ |= 0x00000010;
                    resourceId_ = input.readUInt32();
                    break;
                  }
                  case 50: {
                    com.android.aapt.Resources.Item.Builder subBuilder = null;
                    if (((bitField0_ & 0x00000020) == 0x00000020)) {
                      subBuilder = compiledItem_.toBuilder();
                    }
                    compiledItem_ = input.readMessage(com.android.aapt.Resources.Item.parser(), extensionRegistry);
                    if (subBuilder != null) {
                      subBuilder.mergeFrom(compiledItem_);
                      compiledItem_ = subBuilder.buildPartial();
                    }
                    bitField0_ |= 0x00000020;
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw new RuntimeException(e.setUnfinishedMessage(this));
            } catch (java.io.IOException e) {
              throw new RuntimeException(
                  new com.google.protobuf.InvalidProtocolBufferException(
                      e.getMessage()).setUnfinishedMessage(this));
            } finally {
            }
          }
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            if (PARSER == null) {    synchronized (com.android.aapt.Resources.XmlAttribute.class) {
                if (PARSER == null) {
                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                }
              }
            }
            return PARSER;
          }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:aapt.pb.XmlAttribute)
      private static final com.android.aapt.Resources.XmlAttribute DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new XmlAttribute();
        DEFAULT_INSTANCE.makeImmutable();
      }
  
      public static com.android.aapt.Resources.XmlAttribute getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<XmlAttribute> PARSER;
  
      public static com.google.protobuf.Parser<XmlAttribute> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
  
    static {
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  