content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: frameworks/base/tools/aapt2/ResourcesInternal.proto
  
  package android.aapt.pb.internal;
  
  public final class ResourcesInternal {
      private ResourcesInternal() {
      }
  
      public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {
      }
  
      public interface CompiledFileOrBuilder extends
          // @@protoc_insertion_point(interface_extends:aapt.pb.internal.CompiledFile)
          com.google.protobuf.MessageLiteOrBuilder {
  
          /**
           * <pre>
           * The name of the resource (in the form package:type/name).
           * </pre>
           *
           * <code>optional string resource_name = 1;</code>
           */
          boolean hasResourceName();
  
          /**
           * <pre>
           * The name of the resource (in the form package:type/name).
           * </pre>
           *
           * <code>optional string resource_name = 1;</code>
           */
          String getResourceName();
  
          /**
           * <pre>
           * The name of the resource (in the form package:type/name).
           * </pre>
           *
           * <code>optional string resource_name = 1;</code>
           */
          com.google.protobuf.ByteString getResourceNameBytes();
  
          /**
           * <pre>
           * The configuration for which the resource is defined.
           * </pre>
           *
           * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
           */
          boolean hasConfig();
  
          /**
           * <pre>
           * The configuration for which the resource is defined.
           * </pre>
           *
           * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
           */
          com.android.aapt.Resources.ConfigDescription getConfig();
  
          /**
           * <pre>
           * The filesystem path to where the source file originated.
           * Mainly used to display helpful error messages.
           * </pre>
           *
           * <code>optional string source_path = 3;</code>
           */
          boolean hasSourcePath();
  
          /**
           * <pre>
           * The filesystem path to where the source file originated.
           * Mainly used to display helpful error messages.
           * </pre>
           *
           * <code>optional string source_path = 3;</code>
           */
          String getSourcePath();
  
          /**
           * <pre>
           * The filesystem path to where the source file originated.
           * Mainly used to display helpful error messages.
           * </pre>
           *
           * <code>optional string source_path = 3;</code>
           */
          com.google.protobuf.ByteString getSourcePathBytes();
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          java.util.List<CompiledFile.Symbol> getExportedSymbolList();
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          CompiledFile.Symbol getExportedSymbol(int index);
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          int getExportedSymbolCount();
  
          /**
           * <pre>
           * If this is a compiled XML file, this is the root node.
           * </pre>
           *
           * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
           */
          boolean hasXmlRoot();
  
          /**
           * <pre>
           * If this is a compiled XML file, this is the root node.
           * </pre>
           *
           * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
           */
          com.android.aapt.Resources.XmlNode getXmlRoot();
      }
  
      /**
       * <pre>
       * The top level message representing an external resource file (layout XML, PNG, etc).
       * This is used to represent a compiled file before it is linked. Only useful to aapt2.
       * </pre>
       *
       * Protobuf type {@code aapt.pb.internal.CompiledFile}
       */
      public static final class CompiledFile
          extends com.google.protobuf.GeneratedMessageLite<CompiledFile, CompiledFile.Builder> implements
          // @@protoc_insertion_point(message_implements:aapt.pb.internal.CompiledFile)
          CompiledFileOrBuilder {
          private CompiledFile() {
              resourceName_ = "";
              sourcePath_ = "";
              exportedSymbol_ = emptyProtobufList();
          }
  
          public interface SymbolOrBuilder extends
              // @@protoc_insertion_point(interface_extends:aapt.pb.internal.CompiledFile.Symbol)
              com.google.protobuf.MessageLiteOrBuilder {
  
              /**
               * <pre>
               * The name of the symbol (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              boolean hasResourceName();
  
              /**
               * <pre>
               * The name of the symbol (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              String getResourceName();
  
              /**
               * <pre>
               * The name of the symbol (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              com.google.protobuf.ByteString getResourceNameBytes();
  
              /**
               * <pre>
               * The position in the file at which this symbol is defined. For debug use.
               * </pre>
               *
               * <code>optional .aapt.pb.SourcePosition source = 2;</code>
               */
              boolean hasSource();
  
              /**
               * <pre>
               * The position in the file at which this symbol is defined. For debug use.
               * </pre>
               *
               * <code>optional .aapt.pb.SourcePosition source = 2;</code>
               */
              com.android.aapt.Resources.SourcePosition getSource();
          }
  
          /**
           * Protobuf type {@code aapt.pb.internal.CompiledFile.Symbol}
           */
          public static final class Symbol extends com.google.protobuf.GeneratedMessageLite<Symbol, Symbol.Builder>
              implements
              // @@protoc_insertion_point(message_implements:aapt.pb.internal.CompiledFile.Symbol)
              SymbolOrBuilder {
              private Symbol() {
                  resourceName_ = "";
              }
  
              private int bitField0_;
  
              public static final int RESOURCE_NAME_FIELD_NUMBER = 1;
  
              private String resourceName_;
  
              /**
               * <pre>
               * The name of the symbol (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              @Override
              public boolean hasResourceName() {
                  return ((bitField0_ & 0x00000001) == 0x00000001);
              }
  
              /**
               * <pre>
               * The name of the symbol (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              @Override
              public String getResourceName() {
                  return resourceName_;
              }
  
              /**
               * <pre>
               * The name of the symbol (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              @Override
              public com.google.protobuf.ByteString getResourceNameBytes() {
                  return com.google.protobuf.ByteString.copyFromUtf8(resourceName_);
              }
  
              /**
               * <pre>
               * The name of the symbol (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              private void setResourceName(String value) {
                  if (value == null) {
                      throw new NullPointerException();
                  }
                  bitField0_ |= 0x00000001;
                  resourceName_ = value;
              }
  
              /**
               * <pre>
               * The name of the symbol (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              private void clearResourceName() {
                  bitField0_ = (bitField0_ & ~0x00000001);
                  resourceName_ = getDefaultInstance().getResourceName();
              }
  
              /**
               * <pre>
               * The name of the symbol (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              private void setResourceNameBytes(com.google.protobuf.ByteString value) {
                  if (value == null) {
                      throw new NullPointerException();
                  }
                  bitField0_ |= 0x00000001;
                  resourceName_ = value.toStringUtf8();
              }
  
              public static final int SOURCE_FIELD_NUMBER = 2;
  
              private com.android.aapt.Resources.SourcePosition source_;
  
              /**
               * <pre>
               * The position in the file at which this symbol is defined. For debug use.
               * </pre>
               *
               * <code>optional .aapt.pb.SourcePosition source = 2;</code>
               */
              @Override
              public boolean hasSource() {
                  return ((bitField0_ & 0x00000002) == 0x00000002);
              }
  
              /**
               * <pre>
               * The position in the file at which this symbol is defined. For debug use.
               * </pre>
               *
               * <code>optional .aapt.pb.SourcePosition source = 2;</code>
               */
              @Override
              public com.android.aapt.Resources.SourcePosition getSource() {
                  return source_ == null ? com.android.aapt.Resources.SourcePosition.getDefaultInstance() : source_;
              }
  
              /**
               * <pre>
               * The position in the file at which this symbol is defined. For debug use.
               * </pre>
               *
               * <code>optional .aapt.pb.SourcePosition source = 2;</code>
               */
              private void setSource(com.android.aapt.Resources.SourcePosition value) {
                  if (value == null) {
                      throw new NullPointerException();
                  }
                  source_ = value;
                  bitField0_ |= 0x00000002;
              }
  
              /**
               * <pre>
               * The position in the file at which this symbol is defined. For debug use.
               * </pre>
               *
               * <code>optional .aapt.pb.SourcePosition source = 2;</code>
               */
              private void setSource(com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
                  source_ = builderForValue.build();
                  bitField0_ |= 0x00000002;
              }
  
              /**
               * <pre>
               * The position in the file at which this symbol is defined. For debug use.
               * </pre>
               *
               * <code>optional .aapt.pb.SourcePosition source = 2;</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_ |= 0x00000002;
              }
  
              /**
               * <pre>
               * The position in the file at which this symbol is defined. For debug use.
               * </pre>
               *
               * <code>optional .aapt.pb.SourcePosition source = 2;</code>
               */
              private void clearSource() {
                  source_ = null;
                  bitField0_ = (bitField0_ & ~0x00000002);
              }
  
              @Override
              public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
                  if (((bitField0_ & 0x00000001) == 0x00000001)) {
                      output.writeString(1, getResourceName());
                  }
                  if (((bitField0_ & 0x00000002) == 0x00000002)) {
                      output.writeMessage(2, getSource());
                  }
                  unknownFields.writeTo(output);
              }
  
              @Override
              public int getSerializedSize() {
                  int size = memoizedSerializedSize;
                  if (size != -1) {
                      return size;
                  }
  
                  size = 0;
                  if (((bitField0_ & 0x00000001) == 0x00000001)) {
                      size += com.google.protobuf.CodedOutputStream.computeStringSize(1, getResourceName());
                  }
                  if (((bitField0_ & 0x00000002) == 0x00000002)) {
                      size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSource());
                  }
                  size += unknownFields.getSerializedSize();
                  memoizedSerializedSize = size;
                  return size;
              }
  
              public static Symbol parseFrom(com.google.protobuf.ByteString data)
                  throws com.google.protobuf.InvalidProtocolBufferException {
                  return com.google.protobuf.GeneratedMessageLite.parseFrom(DEFAULT_INSTANCE, data);
              }
  
              public static 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 Symbol parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
                  return com.google.protobuf.GeneratedMessageLite.parseFrom(DEFAULT_INSTANCE, data);
              }
  
              public static 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 Symbol parseFrom(java.io.InputStream input) throws java.io.IOException {
                  return com.google.protobuf.GeneratedMessageLite.parseFrom(DEFAULT_INSTANCE, input);
              }
  
              public static 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 Symbol parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
                  return parseDelimitedFrom(DEFAULT_INSTANCE, input);
              }
  
              public static Symbol parseDelimitedFrom(java.io.InputStream input,
                                                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
                  return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
              }
  
              public static Symbol parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
                  return com.google.protobuf.GeneratedMessageLite.parseFrom(DEFAULT_INSTANCE, input);
              }
  
              public static 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(Symbol prototype) {
                  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
              }
  
              /**
               * Protobuf type {@code aapt.pb.internal.CompiledFile.Symbol}
               */
              public static final class Builder extends com.google.protobuf.GeneratedMessageLite.Builder<Symbol, Builder>
                  implements
                  // @@protoc_insertion_point(builder_implements:aapt.pb.internal.CompiledFile.Symbol)
                  SymbolOrBuilder {
                  // Construct using android.aapt.pb.internal.ResourcesInternal.CompiledFile.Symbol.newBuilder()
                  private Builder() {
                      super(DEFAULT_INSTANCE);
                  }
  
                  /**
                   * <pre>
                   * The name of the symbol (in the form package:type/name).
                   * </pre>
                   *
                   * <code>optional string resource_name = 1;</code>
                   */
                  @Override
                  public boolean hasResourceName() {
                      return instance.hasResourceName();
                  }
  
                  /**
                   * <pre>
                   * The name of the symbol (in the form package:type/name).
                   * </pre>
                   *
                   * <code>optional string resource_name = 1;</code>
                   */
                  @Override
                  public String getResourceName() {
                      return instance.getResourceName();
                  }
  
                  /**
                   * <pre>
                   * The name of the symbol (in the form package:type/name).
                   * </pre>
                   *
                   * <code>optional string resource_name = 1;</code>
                   */
                  @Override
                  public com.google.protobuf.ByteString getResourceNameBytes() {
                      return instance.getResourceNameBytes();
                  }
  
                  /**
                   * <pre>
                   * The name of the symbol (in the form package:type/name).
                   * </pre>
                   *
                   * <code>optional string resource_name = 1;</code>
                   */
                  public Builder setResourceName(String value) {
                      copyOnWrite();
                      instance.setResourceName(value);
                      return this;
                  }
  
                  /**
                   * <pre>
                   * The name of the symbol (in the form package:type/name).
                   * </pre>
                   *
                   * <code>optional string resource_name = 1;</code>
                   */
                  public Builder clearResourceName() {
                      copyOnWrite();
                      instance.clearResourceName();
                      return this;
                  }
  
                  /**
                   * <pre>
                   * The name of the symbol (in the form package:type/name).
                   * </pre>
                   *
                   * <code>optional string resource_name = 1;</code>
                   */
                  public Builder setResourceNameBytes(com.google.protobuf.ByteString value) {
                      copyOnWrite();
                      instance.setResourceNameBytes(value);
                      return this;
                  }
  
                  /**
                   * <pre>
                   * The position in the file at which this symbol is defined. For debug use.
                   * </pre>
                   *
                   * <code>optional .aapt.pb.SourcePosition source = 2;</code>
                   */
                  @Override
                  public boolean hasSource() {
                      return instance.hasSource();
                  }
  
                  /**
                   * <pre>
                   * The position in the file at which this symbol is defined. For debug use.
                   * </pre>
                   *
                   * <code>optional .aapt.pb.SourcePosition source = 2;</code>
                   */
                  @Override
                  public com.android.aapt.Resources.SourcePosition getSource() {
                      return instance.getSource();
                  }
  
                  /**
                   * <pre>
                   * The position in the file at which this symbol is defined. For debug use.
                   * </pre>
                   *
                   * <code>optional .aapt.pb.SourcePosition source = 2;</code>
                   */
                  public Builder setSource(com.android.aapt.Resources.SourcePosition value) {
                      copyOnWrite();
                      instance.setSource(value);
                      return this;
                  }
  
                  /**
                   * <pre>
                   * The position in the file at which this symbol is defined. For debug use.
                   * </pre>
                   *
                   * <code>optional .aapt.pb.SourcePosition source = 2;</code>
                   */
                  public Builder setSource(com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
                      copyOnWrite();
                      instance.setSource(builderForValue);
                      return this;
                  }
  
                  /**
                   * <pre>
                   * The position in the file at which this symbol is defined. For debug use.
                   * </pre>
                   *
                   * <code>optional .aapt.pb.SourcePosition source = 2;</code>
                   */
                  public Builder mergeSource(com.android.aapt.Resources.SourcePosition value) {
                      copyOnWrite();
                      instance.mergeSource(value);
                      return this;
                  }
  
                  /**
                   * <pre>
                   * The position in the file at which this symbol is defined. For debug use.
                   * </pre>
                   *
                   * <code>optional .aapt.pb.SourcePosition source = 2;</code>
                   */
                  public Builder clearSource() {
                      copyOnWrite();
                      instance.clearSource();
                      return this;
                  }
  
                  // @@protoc_insertion_point(builder_scope:aapt.pb.internal.CompiledFile.Symbol)
              }
  
              @Override
              protected final Object dynamicMethod(MethodToInvoke method, Object arg0, Object arg1) {
                  switch (method) {
                      case NEW_MUTABLE_INSTANCE: {
                          return new Symbol();
                      }
                      case IS_INITIALIZED: {
                          return DEFAULT_INSTANCE;
                      }
                      case MAKE_IMMUTABLE: {
                          return null;
                      }
                      case NEW_BUILDER: {
                          return new Builder();
                      }
                      case VISIT: {
                          Visitor visitor = (Visitor)arg0;
                          Symbol other = (Symbol)arg1;
                          resourceName_ = visitor.visitString(hasResourceName(),
                              resourceName_,
                              other.hasResourceName(),
                              other.resourceName_);
                          source_ = visitor.visitMessage(source_, other.source_);
                          if (visitor == 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: {
                                          String s = input.readString();
                                          bitField0_ |= 0x00000001;
                                          resourceName_ = s;
                                          break;
                                      }
                                      case 18: {
                                          com.android.aapt.Resources.SourcePosition.Builder subBuilder = null;
                                          if (((bitField0_ & 0x00000002) == 0x00000002)) {
                                              subBuilder = source_.toBuilder();
                                          }
                                          source_ = input.readMessage(com.android.aapt.Resources.SourcePosition.parser(),
                                              extensionRegistry);
                                          if (subBuilder != null) {
                                              subBuilder.mergeFrom(source_);
                                              source_ = 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 (Symbol.class) {
                                  if (PARSER == null) {
                                      PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                                  }
                              }
                          }
                          return PARSER;
                      }
                  }
                  throw new UnsupportedOperationException();
              }
  
              // @@protoc_insertion_point(class_scope:aapt.pb.internal.CompiledFile.Symbol)
              private static final Symbol DEFAULT_INSTANCE;
  
              static {
                  DEFAULT_INSTANCE = new Symbol();
                  DEFAULT_INSTANCE.makeImmutable();
              }
  
              public static 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 RESOURCE_NAME_FIELD_NUMBER = 1;
  
          private String resourceName_;
  
          /**
           * <pre>
           * The name of the resource (in the form package:type/name).
           * </pre>
           *
           * <code>optional string resource_name = 1;</code>
           */
          @Override
          public boolean hasResourceName() {
              return ((bitField0_ & 0x00000001) == 0x00000001);
          }
  
          /**
           * <pre>
           * The name of the resource (in the form package:type/name).
           * </pre>
           *
           * <code>optional string resource_name = 1;</code>
           */
          @Override
          public String getResourceName() {
              return resourceName_;
          }
  
          /**
           * <pre>
           * The name of the resource (in the form package:type/name).
           * </pre>
           *
           * <code>optional string resource_name = 1;</code>
           */
          @Override
          public com.google.protobuf.ByteString getResourceNameBytes() {
              return com.google.protobuf.ByteString.copyFromUtf8(resourceName_);
          }
  
          /**
           * <pre>
           * The name of the resource (in the form package:type/name).
           * </pre>
           *
           * <code>optional string resource_name = 1;</code>
           */
          private void setResourceName(String value) {
              if (value == null) {
                  throw new NullPointerException();
              }
              bitField0_ |= 0x00000001;
              resourceName_ = value;
          }
  
          /**
           * <pre>
           * The name of the resource (in the form package:type/name).
           * </pre>
           *
           * <code>optional string resource_name = 1;</code>
           */
          private void clearResourceName() {
              bitField0_ = (bitField0_ & ~0x00000001);
              resourceName_ = getDefaultInstance().getResourceName();
          }
  
          /**
           * <pre>
           * The name of the resource (in the form package:type/name).
           * </pre>
           *
           * <code>optional string resource_name = 1;</code>
           */
          private void setResourceNameBytes(com.google.protobuf.ByteString value) {
              if (value == null) {
                  throw new NullPointerException();
              }
              bitField0_ |= 0x00000001;
              resourceName_ = value.toStringUtf8();
          }
  
          public static final int CONFIG_FIELD_NUMBER = 2;
  
          private com.android.aapt.Resources.ConfigDescription config_;
  
          /**
           * <pre>
           * The configuration for which the resource is defined.
           * </pre>
           *
           * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
           */
          @Override
          public boolean hasConfig() {
              return ((bitField0_ & 0x00000002) == 0x00000002);
          }
  
          /**
           * <pre>
           * The configuration for which the resource is defined.
           * </pre>
           *
           * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
           */
          @Override
          public com.android.aapt.Resources.ConfigDescription getConfig() {
              return config_ == null ? com.android.aapt.Resources.ConfigDescription.getDefaultInstance() : config_;
          }
  
          /**
           * <pre>
           * The configuration for which the resource is defined.
           * </pre>
           *
           * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
           */
          private void setConfig(com.android.aapt.Resources.ConfigDescription value) {
              if (value == null) {
                  throw new NullPointerException();
              }
              config_ = value;
              bitField0_ |= 0x00000002;
          }
  
          /**
           * <pre>
           * The configuration for which the resource is defined.
           * </pre>
           *
           * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
           */
          private void setConfig(com.android.aapt.Resources.ConfigDescription.Builder builderForValue) {
              config_ = builderForValue.build();
              bitField0_ |= 0x00000002;
          }
  
          /**
           * <pre>
           * The configuration for which the resource is defined.
           * </pre>
           *
           * <code>optional .aapt.pb.ConfigDescription config = 2;</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_ |= 0x00000002;
          }
  
          /**
           * <pre>
           * The configuration for which the resource is defined.
           * </pre>
           *
           * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
           */
          private void clearConfig() {
              config_ = null;
              bitField0_ = (bitField0_ & ~0x00000002);
          }
  
          public static final int SOURCE_PATH_FIELD_NUMBER = 3;
  
          private String sourcePath_;
  
          /**
           * <pre>
           * The filesystem path to where the source file originated.
           * Mainly used to display helpful error messages.
           * </pre>
           *
           * <code>optional string source_path = 3;</code>
           */
          @Override
          public boolean hasSourcePath() {
              return ((bitField0_ & 0x00000004) == 0x00000004);
          }
  
          /**
           * <pre>
           * The filesystem path to where the source file originated.
           * Mainly used to display helpful error messages.
           * </pre>
           *
           * <code>optional string source_path = 3;</code>
           */
          @Override
          public String getSourcePath() {
              return sourcePath_;
          }
  
          /**
           * <pre>
           * The filesystem path to where the source file originated.
           * Mainly used to display helpful error messages.
           * </pre>
           *
           * <code>optional string source_path = 3;</code>
           */
          @Override
          public com.google.protobuf.ByteString getSourcePathBytes() {
              return com.google.protobuf.ByteString.copyFromUtf8(sourcePath_);
          }
  
          /**
           * <pre>
           * The filesystem path to where the source file originated.
           * Mainly used to display helpful error messages.
           * </pre>
           *
           * <code>optional string source_path = 3;</code>
           */
          private void setSourcePath(String value) {
              if (value == null) {
                  throw new NullPointerException();
              }
              bitField0_ |= 0x00000004;
              sourcePath_ = value;
          }
  
          /**
           * <pre>
           * The filesystem path to where the source file originated.
           * Mainly used to display helpful error messages.
           * </pre>
           *
           * <code>optional string source_path = 3;</code>
           */
          private void clearSourcePath() {
              bitField0_ = (bitField0_ & ~0x00000004);
              sourcePath_ = getDefaultInstance().getSourcePath();
          }
  
          /**
           * <pre>
           * The filesystem path to where the source file originated.
           * Mainly used to display helpful error messages.
           * </pre>
           *
           * <code>optional string source_path = 3;</code>
           */
          private void setSourcePathBytes(com.google.protobuf.ByteString value) {
              if (value == null) {
                  throw new NullPointerException();
              }
              bitField0_ |= 0x00000004;
              sourcePath_ = value.toStringUtf8();
          }
  
          public static final int EXPORTED_SYMBOL_FIELD_NUMBER = 4;
  
          private com.google.protobuf.Internal.ProtobufList<Symbol> exportedSymbol_;
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          @Override
          public java.util.List<Symbol> getExportedSymbolList() {
              return exportedSymbol_;
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          public java.util.List<? extends SymbolOrBuilder> getExportedSymbolOrBuilderList() {
              return exportedSymbol_;
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          @Override
          public int getExportedSymbolCount() {
              return exportedSymbol_.size();
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          @Override
          public Symbol getExportedSymbol(int index) {
              return exportedSymbol_.get(index);
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          public SymbolOrBuilder getExportedSymbolOrBuilder(int index) {
              return exportedSymbol_.get(index);
          }
  
          private void ensureExportedSymbolIsMutable() {
              if (!exportedSymbol_.isModifiable()) {
                  exportedSymbol_ = com.google.protobuf.GeneratedMessageLite.mutableCopy(exportedSymbol_);
              }
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          private void setExportedSymbol(int index, Symbol value) {
              if (value == null) {
                  throw new NullPointerException();
              }
              ensureExportedSymbolIsMutable();
              exportedSymbol_.set(index, value);
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          private void setExportedSymbol(int index, Symbol.Builder builderForValue) {
              ensureExportedSymbolIsMutable();
              exportedSymbol_.set(index, builderForValue.build());
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          private void addExportedSymbol(Symbol value) {
              if (value == null) {
                  throw new NullPointerException();
              }
              ensureExportedSymbolIsMutable();
              exportedSymbol_.add(value);
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          private void addExportedSymbol(int index, Symbol value) {
              if (value == null) {
                  throw new NullPointerException();
              }
              ensureExportedSymbolIsMutable();
              exportedSymbol_.add(index, value);
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          private void addExportedSymbol(Symbol.Builder builderForValue) {
              ensureExportedSymbolIsMutable();
              exportedSymbol_.add(builderForValue.build());
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          private void addExportedSymbol(int index, Symbol.Builder builderForValue) {
              ensureExportedSymbolIsMutable();
              exportedSymbol_.add(index, builderForValue.build());
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          private void addAllExportedSymbol(Iterable<? extends Symbol> values) {
              ensureExportedSymbolIsMutable();
              com.google.protobuf.AbstractMessageLite.addAll(values, exportedSymbol_);
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          private void clearExportedSymbol() {
              exportedSymbol_ = emptyProtobufList();
          }
  
          /**
           * <pre>
           * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
           * </pre>
           *
           * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
           */
          private void removeExportedSymbol(int index) {
              ensureExportedSymbolIsMutable();
              exportedSymbol_.remove(index);
          }
  
          public static final int XML_ROOT_FIELD_NUMBER = 5;
  
          private com.android.aapt.Resources.XmlNode xmlRoot_;
  
          /**
           * <pre>
           * If this is a compiled XML file, this is the root node.
           * </pre>
           *
           * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
           */
          @Override
          public boolean hasXmlRoot() {
              return ((bitField0_ & 0x00000008) == 0x00000008);
          }
  
          /**
           * <pre>
           * If this is a compiled XML file, this is the root node.
           * </pre>
           *
           * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
           */
          @Override
          public com.android.aapt.Resources.XmlNode getXmlRoot() {
              return xmlRoot_ == null ? com.android.aapt.Resources.XmlNode.getDefaultInstance() : xmlRoot_;
          }
  
          /**
           * <pre>
           * If this is a compiled XML file, this is the root node.
           * </pre>
           *
           * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
           */
          private void setXmlRoot(com.android.aapt.Resources.XmlNode value) {
              if (value == null) {
                  throw new NullPointerException();
              }
              xmlRoot_ = value;
              bitField0_ |= 0x00000008;
          }
  
          /**
           * <pre>
           * If this is a compiled XML file, this is the root node.
           * </pre>
           *
           * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
           */
          private void setXmlRoot(com.android.aapt.Resources.XmlNode.Builder builderForValue) {
              xmlRoot_ = builderForValue.build();
              bitField0_ |= 0x00000008;
          }
  
          /**
           * <pre>
           * If this is a compiled XML file, this is the root node.
           * </pre>
           *
           * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
           */
          private void mergeXmlRoot(com.android.aapt.Resources.XmlNode value) {
              if (xmlRoot_ != null && xmlRoot_ != com.android.aapt.Resources.XmlNode.getDefaultInstance()) {
                  xmlRoot_ = com.android.aapt.Resources.XmlNode.newBuilder(xmlRoot_).mergeFrom(value).buildPartial();
              } else {
                  xmlRoot_ = value;
              }
              bitField0_ |= 0x00000008;
          }
  
          /**
           * <pre>
           * If this is a compiled XML file, this is the root node.
           * </pre>
           *
           * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
           */
          private void clearXmlRoot() {
              xmlRoot_ = null;
              bitField0_ = (bitField0_ & ~0x00000008);
          }
  
          @Override
          public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  output.writeString(1, getResourceName());
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  output.writeMessage(2, getConfig());
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  output.writeString(3, getSourcePath());
              }
              for (int i = 0; i < exportedSymbol_.size(); i++) {
                  output.writeMessage(4, exportedSymbol_.get(i));
              }
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  output.writeMessage(5, getXmlRoot());
              }
              unknownFields.writeTo(output);
          }
  
          @Override
          public int getSerializedSize() {
              int size = memoizedSerializedSize;
              if (size != -1) {
                  return size;
              }
  
              size = 0;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  size += com.google.protobuf.CodedOutputStream.computeStringSize(1, getResourceName());
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getConfig());
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  size += com.google.protobuf.CodedOutputStream.computeStringSize(3, getSourcePath());
              }
              for (int i = 0; i < exportedSymbol_.size(); i++) {
                  size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, exportedSymbol_.get(i));
              }
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getXmlRoot());
              }
              size += unknownFields.getSerializedSize();
              memoizedSerializedSize = size;
              return size;
          }
  
          public static CompiledFile parseFrom(com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
              return com.google.protobuf.GeneratedMessageLite.parseFrom(DEFAULT_INSTANCE, data);
          }
  
          public static CompiledFile 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 CompiledFile parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
              return com.google.protobuf.GeneratedMessageLite.parseFrom(DEFAULT_INSTANCE, data);
          }
  
          public static CompiledFile 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 CompiledFile parseFrom(java.io.InputStream input) throws java.io.IOException {
              return com.google.protobuf.GeneratedMessageLite.parseFrom(DEFAULT_INSTANCE, input);
          }
  
          public static CompiledFile 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 CompiledFile parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
              return parseDelimitedFrom(DEFAULT_INSTANCE, input);
          }
  
          public static CompiledFile parseDelimitedFrom(java.io.InputStream input,
                                                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
              return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
          }
  
          public static CompiledFile parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
              return com.google.protobuf.GeneratedMessageLite.parseFrom(DEFAULT_INSTANCE, input);
          }
  
          public static CompiledFile 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(CompiledFile prototype) {
              return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
          }
  
          /**
           * <pre>
           * The top level message representing an external resource file (layout XML, PNG, etc).
           * This is used to represent a compiled file before it is linked. Only useful to aapt2.
           * </pre>
           *
           * Protobuf type {@code aapt.pb.internal.CompiledFile}
           */
          public static final class Builder
              extends com.google.protobuf.GeneratedMessageLite.Builder<CompiledFile, Builder> implements
              // @@protoc_insertion_point(builder_implements:aapt.pb.internal.CompiledFile)
              CompiledFileOrBuilder {
              // Construct using android.aapt.pb.internal.ResourcesInternal.CompiledFile.newBuilder()
              private Builder() {
                  super(DEFAULT_INSTANCE);
              }
  
              /**
               * <pre>
               * The name of the resource (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              @Override
              public boolean hasResourceName() {
                  return instance.hasResourceName();
              }
  
              /**
               * <pre>
               * The name of the resource (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              @Override
              public String getResourceName() {
                  return instance.getResourceName();
              }
  
              /**
               * <pre>
               * The name of the resource (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              @Override
              public com.google.protobuf.ByteString getResourceNameBytes() {
                  return instance.getResourceNameBytes();
              }
  
              /**
               * <pre>
               * The name of the resource (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              public Builder setResourceName(String value) {
                  copyOnWrite();
                  instance.setResourceName(value);
                  return this;
              }
  
              /**
               * <pre>
               * The name of the resource (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              public Builder clearResourceName() {
                  copyOnWrite();
                  instance.clearResourceName();
                  return this;
              }
  
              /**
               * <pre>
               * The name of the resource (in the form package:type/name).
               * </pre>
               *
               * <code>optional string resource_name = 1;</code>
               */
              public Builder setResourceNameBytes(com.google.protobuf.ByteString value) {
                  copyOnWrite();
                  instance.setResourceNameBytes(value);
                  return this;
              }
  
              /**
               * <pre>
               * The configuration for which the resource is defined.
               * </pre>
               *
               * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
               */
              @Override
              public boolean hasConfig() {
                  return instance.hasConfig();
              }
  
              /**
               * <pre>
               * The configuration for which the resource is defined.
               * </pre>
               *
               * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
               */
              @Override
              public com.android.aapt.Resources.ConfigDescription getConfig() {
                  return instance.getConfig();
              }
  
              /**
               * <pre>
               * The configuration for which the resource is defined.
               * </pre>
               *
               * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
               */
              public Builder setConfig(com.android.aapt.Resources.ConfigDescription value) {
                  copyOnWrite();
                  instance.setConfig(value);
                  return this;
              }
  
              /**
               * <pre>
               * The configuration for which the resource is defined.
               * </pre>
               *
               * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
               */
              public Builder setConfig(com.android.aapt.Resources.ConfigDescription.Builder builderForValue) {
                  copyOnWrite();
                  instance.setConfig(builderForValue);
                  return this;
              }
  
              /**
               * <pre>
               * The configuration for which the resource is defined.
               * </pre>
               *
               * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
               */
              public Builder mergeConfig(com.android.aapt.Resources.ConfigDescription value) {
                  copyOnWrite();
                  instance.mergeConfig(value);
                  return this;
              }
  
              /**
               * <pre>
               * The configuration for which the resource is defined.
               * </pre>
               *
               * <code>optional .aapt.pb.ConfigDescription config = 2;</code>
               */
              public Builder clearConfig() {
                  copyOnWrite();
                  instance.clearConfig();
                  return this;
              }
  
              /**
               * <pre>
               * The filesystem path to where the source file originated.
               * Mainly used to display helpful error messages.
               * </pre>
               *
               * <code>optional string source_path = 3;</code>
               */
              @Override
              public boolean hasSourcePath() {
                  return instance.hasSourcePath();
              }
  
              /**
               * <pre>
               * The filesystem path to where the source file originated.
               * Mainly used to display helpful error messages.
               * </pre>
               *
               * <code>optional string source_path = 3;</code>
               */
              @Override
              public String getSourcePath() {
                  return instance.getSourcePath();
              }
  
              /**
               * <pre>
               * The filesystem path to where the source file originated.
               * Mainly used to display helpful error messages.
               * </pre>
               *
               * <code>optional string source_path = 3;</code>
               */
              @Override
              public com.google.protobuf.ByteString getSourcePathBytes() {
                  return instance.getSourcePathBytes();
              }
  
              /**
               * <pre>
               * The filesystem path to where the source file originated.
               * Mainly used to display helpful error messages.
               * </pre>
               *
               * <code>optional string source_path = 3;</code>
               */
              public Builder setSourcePath(String value) {
                  copyOnWrite();
                  instance.setSourcePath(value);
                  return this;
              }
  
              /**
               * <pre>
               * The filesystem path to where the source file originated.
               * Mainly used to display helpful error messages.
               * </pre>
               *
               * <code>optional string source_path = 3;</code>
               */
              public Builder clearSourcePath() {
                  copyOnWrite();
                  instance.clearSourcePath();
                  return this;
              }
  
              /**
               * <pre>
               * The filesystem path to where the source file originated.
               * Mainly used to display helpful error messages.
               * </pre>
               *
               * <code>optional string source_path = 3;</code>
               */
              public Builder setSourcePathBytes(com.google.protobuf.ByteString value) {
                  copyOnWrite();
                  instance.setSourcePathBytes(value);
                  return this;
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              @Override
              public java.util.List<Symbol> getExportedSymbolList() {
                  return java.util.Collections.unmodifiableList(instance.getExportedSymbolList());
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              @Override
              public int getExportedSymbolCount() {
                  return instance.getExportedSymbolCount();
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              @Override
              public Symbol getExportedSymbol(int index) {
                  return instance.getExportedSymbol(index);
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              public Builder setExportedSymbol(int index, Symbol value) {
                  copyOnWrite();
                  instance.setExportedSymbol(index, value);
                  return this;
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              public Builder setExportedSymbol(int index, Symbol.Builder builderForValue) {
                  copyOnWrite();
                  instance.setExportedSymbol(index, builderForValue);
                  return this;
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              public Builder addExportedSymbol(Symbol value) {
                  copyOnWrite();
                  instance.addExportedSymbol(value);
                  return this;
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              public Builder addExportedSymbol(int index, Symbol value) {
                  copyOnWrite();
                  instance.addExportedSymbol(index, value);
                  return this;
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              public Builder addExportedSymbol(Symbol.Builder builderForValue) {
                  copyOnWrite();
                  instance.addExportedSymbol(builderForValue);
                  return this;
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              public Builder addExportedSymbol(int index, Symbol.Builder builderForValue) {
                  copyOnWrite();
                  instance.addExportedSymbol(index, builderForValue);
                  return this;
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              public Builder addAllExportedSymbol(Iterable<? extends Symbol> values) {
                  copyOnWrite();
                  instance.addAllExportedSymbol(values);
                  return this;
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              public Builder clearExportedSymbol() {
                  copyOnWrite();
                  instance.clearExportedSymbol();
                  return this;
              }
  
              /**
               * <pre>
               * Any symbols this file auto-generates/exports (eg. &#64;+id/foo in an XML file).
               * </pre>
               *
               * <code>repeated .aapt.pb.internal.CompiledFile.Symbol exported_symbol = 4;</code>
               */
              public Builder removeExportedSymbol(int index) {
                  copyOnWrite();
                  instance.removeExportedSymbol(index);
                  return this;
              }
  
              /**
               * <pre>
               * If this is a compiled XML file, this is the root node.
               * </pre>
               *
               * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
               */
              @Override
              public boolean hasXmlRoot() {
                  return instance.hasXmlRoot();
              }
  
              /**
               * <pre>
               * If this is a compiled XML file, this is the root node.
               * </pre>
               *
               * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
               */
              @Override
              public com.android.aapt.Resources.XmlNode getXmlRoot() {
                  return instance.getXmlRoot();
              }
  
              /**
               * <pre>
               * If this is a compiled XML file, this is the root node.
               * </pre>
               *
               * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
               */
              public Builder setXmlRoot(com.android.aapt.Resources.XmlNode value) {
                  copyOnWrite();
                  instance.setXmlRoot(value);
                  return this;
              }
  
              /**
               * <pre>
               * If this is a compiled XML file, this is the root node.
               * </pre>
               *
               * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
               */
              public Builder setXmlRoot(com.android.aapt.Resources.XmlNode.Builder builderForValue) {
                  copyOnWrite();
                  instance.setXmlRoot(builderForValue);
                  return this;
              }
  
              /**
               * <pre>
               * If this is a compiled XML file, this is the root node.
               * </pre>
               *
               * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
               */
              public Builder mergeXmlRoot(com.android.aapt.Resources.XmlNode value) {
                  copyOnWrite();
                  instance.mergeXmlRoot(value);
                  return this;
              }
  
              /**
               * <pre>
               * If this is a compiled XML file, this is the root node.
               * </pre>
               *
               * <code>optional .aapt.pb.XmlNode xml_root = 5;</code>
               */
              public Builder clearXmlRoot() {
                  copyOnWrite();
                  instance.clearXmlRoot();
                  return this;
              }
  
              // @@protoc_insertion_point(builder_scope:aapt.pb.internal.CompiledFile)
          }
  
          @Override
          protected final Object dynamicMethod(MethodToInvoke method, Object arg0, Object arg1) {
              switch (method) {
                  case NEW_MUTABLE_INSTANCE: {
                      return new CompiledFile();
                  }
                  case IS_INITIALIZED: {
                      return DEFAULT_INSTANCE;
                  }
                  case MAKE_IMMUTABLE: {
                      exportedSymbol_.makeImmutable();
                      return null;
                  }
                  case NEW_BUILDER: {
                      return new Builder();
                  }
                  case VISIT: {
                      Visitor visitor = (Visitor)arg0;
                      CompiledFile other = (CompiledFile)arg1;
                      resourceName_ = visitor.visitString(hasResourceName(),
                          resourceName_,
                          other.hasResourceName(),
                          other.resourceName_);
                      config_ = visitor.visitMessage(config_, other.config_);
                      sourcePath_ = visitor.visitString(hasSourcePath(),
                          sourcePath_,
                          other.hasSourcePath(),
                          other.sourcePath_);
                      exportedSymbol_ = visitor.visitList(exportedSymbol_, other.exportedSymbol_);
                      xmlRoot_ = visitor.visitMessage(xmlRoot_, other.xmlRoot_);
                      if (visitor == 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: {
                                      String s = input.readString();
                                      bitField0_ |= 0x00000001;
                                      resourceName_ = s;
                                      break;
                                  }
                                  case 18: {
                                      com.android.aapt.Resources.ConfigDescription.Builder subBuilder = null;
                                      if (((bitField0_ & 0x00000002) == 0x00000002)) {
                                          subBuilder = config_.toBuilder();
                                      }
                                      config_ = input.readMessage(com.android.aapt.Resources.ConfigDescription.parser(),
                                          extensionRegistry);
                                      if (subBuilder != null) {
                                          subBuilder.mergeFrom(config_);
                                          config_ = subBuilder.buildPartial();
                                      }
                                      bitField0_ |= 0x00000002;
                                      break;
                                  }
                                  case 26: {
                                      String s = input.readString();
                                      bitField0_ |= 0x00000004;
                                      sourcePath_ = s;
                                      break;
                                  }
                                  case 34: {
                                      if (!exportedSymbol_.isModifiable()) {
                                          exportedSymbol_ = com.google.protobuf.GeneratedMessageLite.mutableCopy(
                                              exportedSymbol_);
                                      }
                                      exportedSymbol_.add(input.readMessage(Symbol.parser(), extensionRegistry));
                                      break;
                                  }
                                  case 42: {
                                      com.android.aapt.Resources.XmlNode.Builder subBuilder = null;
                                      if (((bitField0_ & 0x00000008) == 0x00000008)) {
                                          subBuilder = xmlRoot_.toBuilder();
                                      }
                                      xmlRoot_ = input.readMessage(com.android.aapt.Resources.XmlNode.parser(),
                                          extensionRegistry);
                                      if (subBuilder != null) {
                                          subBuilder.mergeFrom(xmlRoot_);
                                          xmlRoot_ = 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 (CompiledFile.class) {
                              if (PARSER == null) {
                                  PARSER = new DefaultInstanceBasedParser(DEFAULT_INSTANCE);
                              }
                          }
                      }
                      return PARSER;
                  }
              }
              throw new UnsupportedOperationException();
          }
  
          // @@protoc_insertion_point(class_scope:aapt.pb.internal.CompiledFile)
          private static final CompiledFile DEFAULT_INSTANCE;
  
          static {
              DEFAULT_INSTANCE = new CompiledFile();
              DEFAULT_INSTANCE.makeImmutable();
          }
  
          public static CompiledFile getDefaultInstance() {
              return DEFAULT_INSTANCE;
          }
  
          private static volatile com.google.protobuf.Parser<CompiledFile> PARSER;
  
          public static com.google.protobuf.Parser<CompiledFile> parser() {
              return DEFAULT_INSTANCE.getParserForType();
          }
      }
  
      static {
      }
  
      // @@protoc_insertion_point(outer_class_scope)
  }
  