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

package proto;

public final class Info {
  private Info() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface ReleaseInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ReleaseInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string name = 1;</code>
     */
    java.lang.String getName();
    /**
     * <code>string name = 1;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <code>string timestamp = 2;</code>
     */
    java.lang.String getTimestamp();
    /**
     * <code>string timestamp = 2;</code>
     */
    com.google.protobuf.ByteString
        getTimestampBytes();
  }
  /**
   * Protobuf type {@code proto.ReleaseInfo}
   */
  public  static final class ReleaseInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:proto.ReleaseInfo)
      ReleaseInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ReleaseInfo.newBuilder() to construct.
    private ReleaseInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ReleaseInfo() {
      name_ = "";
      timestamp_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ReleaseInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              name_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              timestamp_ = s;
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return proto.Info.internal_static_proto_ReleaseInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return proto.Info.internal_static_proto_ReleaseInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              proto.Info.ReleaseInfo.class, proto.Info.ReleaseInfo.Builder.class);
    }

    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <code>string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * <code>string name = 1;</code>
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 2;
    private volatile java.lang.Object timestamp_;
    /**
     * <code>string timestamp = 2;</code>
     */
    public java.lang.String getTimestamp() {
      java.lang.Object ref = timestamp_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        timestamp_ = s;
        return s;
      }
    }
    /**
     * <code>string timestamp = 2;</code>
     */
    public com.google.protobuf.ByteString
        getTimestampBytes() {
      java.lang.Object ref = timestamp_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        timestamp_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (!getTimestampBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, timestamp_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (!getTimestampBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, timestamp_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof proto.Info.ReleaseInfo)) {
        return super.equals(obj);
      }
      proto.Info.ReleaseInfo other = (proto.Info.ReleaseInfo) obj;

      boolean result = true;
      result = result && getName()
          .equals(other.getName());
      result = result && getTimestamp()
          .equals(other.getTimestamp());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + getTimestamp().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static proto.Info.ReleaseInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.ReleaseInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.ReleaseInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.ReleaseInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.ReleaseInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.ReleaseInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.ReleaseInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static proto.Info.ReleaseInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static proto.Info.ReleaseInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static proto.Info.ReleaseInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static proto.Info.ReleaseInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static proto.Info.ReleaseInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(proto.Info.ReleaseInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ReleaseInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ReleaseInfo)
        proto.Info.ReleaseInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return proto.Info.internal_static_proto_ReleaseInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return proto.Info.internal_static_proto_ReleaseInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                proto.Info.ReleaseInfo.class, proto.Info.ReleaseInfo.Builder.class);
      }

      // Construct using proto.Info.ReleaseInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";

        timestamp_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return proto.Info.internal_static_proto_ReleaseInfo_descriptor;
      }

      @java.lang.Override
      public proto.Info.ReleaseInfo getDefaultInstanceForType() {
        return proto.Info.ReleaseInfo.getDefaultInstance();
      }

      @java.lang.Override
      public proto.Info.ReleaseInfo build() {
        proto.Info.ReleaseInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public proto.Info.ReleaseInfo buildPartial() {
        proto.Info.ReleaseInfo result = new proto.Info.ReleaseInfo(this);
        result.name_ = name_;
        result.timestamp_ = timestamp_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof proto.Info.ReleaseInfo) {
          return mergeFrom((proto.Info.ReleaseInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(proto.Info.ReleaseInfo other) {
        if (other == proto.Info.ReleaseInfo.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getTimestamp().isEmpty()) {
          timestamp_ = other.timestamp_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        proto.Info.ReleaseInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (proto.Info.ReleaseInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * <code>string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string name = 1;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string name = 1;</code>
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string name = 1;</code>
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>string name = 1;</code>
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object timestamp_ = "";
      /**
       * <code>string timestamp = 2;</code>
       */
      public java.lang.String getTimestamp() {
        java.lang.Object ref = timestamp_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          timestamp_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string timestamp = 2;</code>
       */
      public com.google.protobuf.ByteString
          getTimestampBytes() {
        java.lang.Object ref = timestamp_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          timestamp_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string timestamp = 2;</code>
       */
      public Builder setTimestamp(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string timestamp = 2;</code>
       */
      public Builder clearTimestamp() {
        
        timestamp_ = getDefaultInstance().getTimestamp();
        onChanged();
        return this;
      }
      /**
       * <code>string timestamp = 2;</code>
       */
      public Builder setTimestampBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        timestamp_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:proto.ReleaseInfo)
    }

    // @@protoc_insertion_point(class_scope:proto.ReleaseInfo)
    private static final proto.Info.ReleaseInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new proto.Info.ReleaseInfo();
    }

    public static proto.Info.ReleaseInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<ReleaseInfo> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public proto.Info.ReleaseInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RepositoryInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.RepositoryInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * link to the repository
     * </pre>
     *
     * <code>string url = 1;</code>
     */
    java.lang.String getUrl();
    /**
     * <pre>
     * link to the repository
     * </pre>
     *
     * <code>string url = 1;</code>
     */
    com.google.protobuf.ByteString
        getUrlBytes();

    /**
     * <pre>
     * type can be git/svn/hg etc.
     * </pre>
     *
     * <code>string type = 2;</code>
     */
    java.lang.String getType();
    /**
     * <pre>
     * type can be git/svn/hg etc.
     * </pre>
     *
     * <code>string type = 2;</code>
     */
    com.google.protobuf.ByteString
        getTypeBytes();
  }
  /**
   * Protobuf type {@code proto.RepositoryInfo}
   */
  public  static final class RepositoryInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:proto.RepositoryInfo)
      RepositoryInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RepositoryInfo.newBuilder() to construct.
    private RepositoryInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RepositoryInfo() {
      url_ = "";
      type_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RepositoryInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              url_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              type_ = s;
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return proto.Info.internal_static_proto_RepositoryInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return proto.Info.internal_static_proto_RepositoryInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              proto.Info.RepositoryInfo.class, proto.Info.RepositoryInfo.Builder.class);
    }

    public static final int URL_FIELD_NUMBER = 1;
    private volatile java.lang.Object url_;
    /**
     * <pre>
     * link to the repository
     * </pre>
     *
     * <code>string url = 1;</code>
     */
    public java.lang.String getUrl() {
      java.lang.Object ref = url_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        url_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * link to the repository
     * </pre>
     *
     * <code>string url = 1;</code>
     */
    public com.google.protobuf.ByteString
        getUrlBytes() {
      java.lang.Object ref = url_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        url_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object type_;
    /**
     * <pre>
     * type can be git/svn/hg etc.
     * </pre>
     *
     * <code>string type = 2;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        type_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * type can be git/svn/hg etc.
     * </pre>
     *
     * <code>string type = 2;</code>
     */
    public com.google.protobuf.ByteString
        getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getUrlBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, url_);
      }
      if (!getTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, type_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getUrlBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, url_);
      }
      if (!getTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, type_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof proto.Info.RepositoryInfo)) {
        return super.equals(obj);
      }
      proto.Info.RepositoryInfo other = (proto.Info.RepositoryInfo) obj;

      boolean result = true;
      result = result && getUrl()
          .equals(other.getUrl());
      result = result && getType()
          .equals(other.getType());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + URL_FIELD_NUMBER;
      hash = (53 * hash) + getUrl().hashCode();
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getType().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static proto.Info.RepositoryInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.RepositoryInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.RepositoryInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.RepositoryInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.RepositoryInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.RepositoryInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.RepositoryInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static proto.Info.RepositoryInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static proto.Info.RepositoryInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static proto.Info.RepositoryInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static proto.Info.RepositoryInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static proto.Info.RepositoryInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(proto.Info.RepositoryInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.RepositoryInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.RepositoryInfo)
        proto.Info.RepositoryInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return proto.Info.internal_static_proto_RepositoryInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return proto.Info.internal_static_proto_RepositoryInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                proto.Info.RepositoryInfo.class, proto.Info.RepositoryInfo.Builder.class);
      }

      // Construct using proto.Info.RepositoryInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        url_ = "";

        type_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return proto.Info.internal_static_proto_RepositoryInfo_descriptor;
      }

      @java.lang.Override
      public proto.Info.RepositoryInfo getDefaultInstanceForType() {
        return proto.Info.RepositoryInfo.getDefaultInstance();
      }

      @java.lang.Override
      public proto.Info.RepositoryInfo build() {
        proto.Info.RepositoryInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public proto.Info.RepositoryInfo buildPartial() {
        proto.Info.RepositoryInfo result = new proto.Info.RepositoryInfo(this);
        result.url_ = url_;
        result.type_ = type_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof proto.Info.RepositoryInfo) {
          return mergeFrom((proto.Info.RepositoryInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(proto.Info.RepositoryInfo other) {
        if (other == proto.Info.RepositoryInfo.getDefaultInstance()) return this;
        if (!other.getUrl().isEmpty()) {
          url_ = other.url_;
          onChanged();
        }
        if (!other.getType().isEmpty()) {
          type_ = other.type_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        proto.Info.RepositoryInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (proto.Info.RepositoryInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object url_ = "";
      /**
       * <pre>
       * link to the repository
       * </pre>
       *
       * <code>string url = 1;</code>
       */
      public java.lang.String getUrl() {
        java.lang.Object ref = url_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          url_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * link to the repository
       * </pre>
       *
       * <code>string url = 1;</code>
       */
      public com.google.protobuf.ByteString
          getUrlBytes() {
        java.lang.Object ref = url_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          url_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * link to the repository
       * </pre>
       *
       * <code>string url = 1;</code>
       */
      public Builder setUrl(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        url_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * link to the repository
       * </pre>
       *
       * <code>string url = 1;</code>
       */
      public Builder clearUrl() {
        
        url_ = getDefaultInstance().getUrl();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * link to the repository
       * </pre>
       *
       * <code>string url = 1;</code>
       */
      public Builder setUrlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        url_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object type_ = "";
      /**
       * <pre>
       * type can be git/svn/hg etc.
       * </pre>
       *
       * <code>string type = 2;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          type_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * type can be git/svn/hg etc.
       * </pre>
       *
       * <code>string type = 2;</code>
       */
      public com.google.protobuf.ByteString
          getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * type can be git/svn/hg etc.
       * </pre>
       *
       * <code>string type = 2;</code>
       */
      public Builder setType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * type can be git/svn/hg etc.
       * </pre>
       *
       * <code>string type = 2;</code>
       */
      public Builder clearType() {
        
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * type can be git/svn/hg etc.
       * </pre>
       *
       * <code>string type = 2;</code>
       */
      public Builder setTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        type_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:proto.RepositoryInfo)
    }

    // @@protoc_insertion_point(class_scope:proto.RepositoryInfo)
    private static final proto.Info.RepositoryInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new proto.Info.RepositoryInfo();
    }

    public static proto.Info.RepositoryInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<RepositoryInfo> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public proto.Info.RepositoryInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExecuteInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ExecuteInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string target = 1;</code>
     */
    java.lang.String getTarget();
    /**
     * <code>string target = 1;</code>
     */
    com.google.protobuf.ByteString
        getTargetBytes();

    /**
     * <code>string command = 2;</code>
     */
    java.lang.String getCommand();
    /**
     * <code>string command = 2;</code>
     */
    com.google.protobuf.ByteString
        getCommandBytes();
  }
  /**
   * Protobuf type {@code proto.ExecuteInfo}
   */
  public  static final class ExecuteInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:proto.ExecuteInfo)
      ExecuteInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExecuteInfo.newBuilder() to construct.
    private ExecuteInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ExecuteInfo() {
      target_ = "";
      command_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ExecuteInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              target_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              command_ = s;
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return proto.Info.internal_static_proto_ExecuteInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return proto.Info.internal_static_proto_ExecuteInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              proto.Info.ExecuteInfo.class, proto.Info.ExecuteInfo.Builder.class);
    }

    public static final int TARGET_FIELD_NUMBER = 1;
    private volatile java.lang.Object target_;
    /**
     * <code>string target = 1;</code>
     */
    public java.lang.String getTarget() {
      java.lang.Object ref = target_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        target_ = s;
        return s;
      }
    }
    /**
     * <code>string target = 1;</code>
     */
    public com.google.protobuf.ByteString
        getTargetBytes() {
      java.lang.Object ref = target_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        target_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMMAND_FIELD_NUMBER = 2;
    private volatile java.lang.Object command_;
    /**
     * <code>string command = 2;</code>
     */
    public java.lang.String getCommand() {
      java.lang.Object ref = command_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        command_ = s;
        return s;
      }
    }
    /**
     * <code>string command = 2;</code>
     */
    public com.google.protobuf.ByteString
        getCommandBytes() {
      java.lang.Object ref = command_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        command_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getTargetBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, target_);
      }
      if (!getCommandBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, command_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getTargetBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, target_);
      }
      if (!getCommandBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, command_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof proto.Info.ExecuteInfo)) {
        return super.equals(obj);
      }
      proto.Info.ExecuteInfo other = (proto.Info.ExecuteInfo) obj;

      boolean result = true;
      result = result && getTarget()
          .equals(other.getTarget());
      result = result && getCommand()
          .equals(other.getCommand());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TARGET_FIELD_NUMBER;
      hash = (53 * hash) + getTarget().hashCode();
      hash = (37 * hash) + COMMAND_FIELD_NUMBER;
      hash = (53 * hash) + getCommand().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static proto.Info.ExecuteInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.ExecuteInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.ExecuteInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.ExecuteInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.ExecuteInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.ExecuteInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.ExecuteInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static proto.Info.ExecuteInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static proto.Info.ExecuteInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static proto.Info.ExecuteInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static proto.Info.ExecuteInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static proto.Info.ExecuteInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(proto.Info.ExecuteInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ExecuteInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ExecuteInfo)
        proto.Info.ExecuteInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return proto.Info.internal_static_proto_ExecuteInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return proto.Info.internal_static_proto_ExecuteInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                proto.Info.ExecuteInfo.class, proto.Info.ExecuteInfo.Builder.class);
      }

      // Construct using proto.Info.ExecuteInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        target_ = "";

        command_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return proto.Info.internal_static_proto_ExecuteInfo_descriptor;
      }

      @java.lang.Override
      public proto.Info.ExecuteInfo getDefaultInstanceForType() {
        return proto.Info.ExecuteInfo.getDefaultInstance();
      }

      @java.lang.Override
      public proto.Info.ExecuteInfo build() {
        proto.Info.ExecuteInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public proto.Info.ExecuteInfo buildPartial() {
        proto.Info.ExecuteInfo result = new proto.Info.ExecuteInfo(this);
        result.target_ = target_;
        result.command_ = command_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof proto.Info.ExecuteInfo) {
          return mergeFrom((proto.Info.ExecuteInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(proto.Info.ExecuteInfo other) {
        if (other == proto.Info.ExecuteInfo.getDefaultInstance()) return this;
        if (!other.getTarget().isEmpty()) {
          target_ = other.target_;
          onChanged();
        }
        if (!other.getCommand().isEmpty()) {
          command_ = other.command_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        proto.Info.ExecuteInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (proto.Info.ExecuteInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object target_ = "";
      /**
       * <code>string target = 1;</code>
       */
      public java.lang.String getTarget() {
        java.lang.Object ref = target_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          target_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string target = 1;</code>
       */
      public com.google.protobuf.ByteString
          getTargetBytes() {
        java.lang.Object ref = target_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          target_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string target = 1;</code>
       */
      public Builder setTarget(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        target_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string target = 1;</code>
       */
      public Builder clearTarget() {
        
        target_ = getDefaultInstance().getTarget();
        onChanged();
        return this;
      }
      /**
       * <code>string target = 1;</code>
       */
      public Builder setTargetBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        target_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object command_ = "";
      /**
       * <code>string command = 2;</code>
       */
      public java.lang.String getCommand() {
        java.lang.Object ref = command_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          command_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string command = 2;</code>
       */
      public com.google.protobuf.ByteString
          getCommandBytes() {
        java.lang.Object ref = command_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          command_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string command = 2;</code>
       */
      public Builder setCommand(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        command_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string command = 2;</code>
       */
      public Builder clearCommand() {
        
        command_ = getDefaultInstance().getCommand();
        onChanged();
        return this;
      }
      /**
       * <code>string command = 2;</code>
       */
      public Builder setCommandBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        command_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:proto.ExecuteInfo)
    }

    // @@protoc_insertion_point(class_scope:proto.ExecuteInfo)
    private static final proto.Info.ExecuteInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new proto.Info.ExecuteInfo();
    }

    public static proto.Info.ExecuteInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<ExecuteInfo> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public proto.Info.ExecuteInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PackageInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.PackageInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.proto.PackageInfo.Metadata info = 1;</code>
     */
    boolean hasInfo();
    /**
     * <code>.proto.PackageInfo.Metadata info = 1;</code>
     */
    proto.Info.PackageInfo.Metadata getInfo();
    /**
     * <code>.proto.PackageInfo.Metadata info = 1;</code>
     */
    proto.Info.PackageInfo.MetadataOrBuilder getInfoOrBuilder();

    /**
     * <pre>
     * Runtime dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
     */
    java.util.List<proto.Info.PackageInfo.Metadata> 
        getDependenciesList();
    /**
     * <pre>
     * Runtime dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
     */
    proto.Info.PackageInfo.Metadata getDependencies(int index);
    /**
     * <pre>
     * Runtime dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
     */
    int getDependenciesCount();
    /**
     * <pre>
     * Runtime dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
     */
    java.util.List<? extends proto.Info.PackageInfo.MetadataOrBuilder> 
        getDependenciesOrBuilderList();
    /**
     * <pre>
     * Runtime dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
     */
    proto.Info.PackageInfo.MetadataOrBuilder getDependenciesOrBuilder(
        int index);

    /**
     * <pre>
     * Development dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
     */
    java.util.List<proto.Info.PackageInfo.Metadata> 
        getDevDependenciesList();
    /**
     * <pre>
     * Development dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
     */
    proto.Info.PackageInfo.Metadata getDevDependencies(int index);
    /**
     * <pre>
     * Development dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
     */
    int getDevDependenciesCount();
    /**
     * <pre>
     * Development dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
     */
    java.util.List<? extends proto.Info.PackageInfo.MetadataOrBuilder> 
        getDevDependenciesOrBuilderList();
    /**
     * <pre>
     * Development dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
     */
    proto.Info.PackageInfo.MetadataOrBuilder getDevDependenciesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.PackageInfo}
   */
  public  static final class PackageInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:proto.PackageInfo)
      PackageInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PackageInfo.newBuilder() to construct.
    private PackageInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PackageInfo() {
      dependencies_ = java.util.Collections.emptyList();
      devDependencies_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PackageInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              proto.Info.PackageInfo.Metadata.Builder subBuilder = null;
              if (info_ != null) {
                subBuilder = info_.toBuilder();
              }
              info_ = input.readMessage(proto.Info.PackageInfo.Metadata.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(info_);
                info_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                dependencies_ = new java.util.ArrayList<proto.Info.PackageInfo.Metadata>();
                mutable_bitField0_ |= 0x00000002;
              }
              dependencies_.add(
                  input.readMessage(proto.Info.PackageInfo.Metadata.parser(), extensionRegistry));
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                devDependencies_ = new java.util.ArrayList<proto.Info.PackageInfo.Metadata>();
                mutable_bitField0_ |= 0x00000004;
              }
              devDependencies_.add(
                  input.readMessage(proto.Info.PackageInfo.Metadata.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          dependencies_ = java.util.Collections.unmodifiableList(dependencies_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          devDependencies_ = java.util.Collections.unmodifiableList(devDependencies_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return proto.Info.internal_static_proto_PackageInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return proto.Info.internal_static_proto_PackageInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              proto.Info.PackageInfo.class, proto.Info.PackageInfo.Builder.class);
    }

    public interface MetadataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:proto.PackageInfo.Metadata)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * basic info
       * </pre>
       *
       * <code>string package_name = 1;</code>
       */
      java.lang.String getPackageName();
      /**
       * <pre>
       * basic info
       * </pre>
       *
       * <code>string package_name = 1;</code>
       */
      com.google.protobuf.ByteString
          getPackageNameBytes();

      /**
       * <code>string package_version = 2;</code>
       */
      java.lang.String getPackageVersion();
      /**
       * <code>string package_version = 2;</code>
       */
      com.google.protobuf.ByteString
          getPackageVersionBytes();

      /**
       * <code>string email = 3;</code>
       */
      java.lang.String getEmail();
      /**
       * <code>string email = 3;</code>
       */
      com.google.protobuf.ByteString
          getEmailBytes();

      /**
       * <code>string homepage = 4;</code>
       */
      java.lang.String getHomepage();
      /**
       * <code>string homepage = 4;</code>
       */
      com.google.protobuf.ByteString
          getHomepageBytes();

      /**
       * <code>string license = 5;</code>
       */
      java.lang.String getLicense();
      /**
       * <code>string license = 5;</code>
       */
      com.google.protobuf.ByteString
          getLicenseBytes();

      /**
       * <pre>
       * host info
       * </pre>
       *
       * <code>.proto.RepositoryInfo repository = 6;</code>
       */
      boolean hasRepository();
      /**
       * <pre>
       * host info
       * </pre>
       *
       * <code>.proto.RepositoryInfo repository = 6;</code>
       */
      proto.Info.RepositoryInfo getRepository();
      /**
       * <pre>
       * host info
       * </pre>
       *
       * <code>.proto.RepositoryInfo repository = 6;</code>
       */
      proto.Info.RepositoryInfoOrBuilder getRepositoryOrBuilder();

      /**
       * <pre>
       * execute info
       * </pre>
       *
       * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
       */
      java.util.List<proto.Info.ExecuteInfo> 
          getExecJobsList();
      /**
       * <pre>
       * execute info
       * </pre>
       *
       * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
       */
      proto.Info.ExecuteInfo getExecJobs(int index);
      /**
       * <pre>
       * execute info
       * </pre>
       *
       * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
       */
      int getExecJobsCount();
      /**
       * <pre>
       * execute info
       * </pre>
       *
       * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
       */
      java.util.List<? extends proto.Info.ExecuteInfoOrBuilder> 
          getExecJobsOrBuilderList();
      /**
       * <pre>
       * execute info
       * </pre>
       *
       * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
       */
      proto.Info.ExecuteInfoOrBuilder getExecJobsOrBuilder(
          int index);

      /**
       * <pre>
       * author info
       * </pre>
       *
       * <code>repeated string authors = 8;</code>
       */
      java.util.List<java.lang.String>
          getAuthorsList();
      /**
       * <pre>
       * author info
       * </pre>
       *
       * <code>repeated string authors = 8;</code>
       */
      int getAuthorsCount();
      /**
       * <pre>
       * author info
       * </pre>
       *
       * <code>repeated string authors = 8;</code>
       */
      java.lang.String getAuthors(int index);
      /**
       * <pre>
       * author info
       * </pre>
       *
       * <code>repeated string authors = 8;</code>
       */
      com.google.protobuf.ByteString
          getAuthorsBytes(int index);

      /**
       * <code>repeated string contributors = 9;</code>
       */
      java.util.List<java.lang.String>
          getContributorsList();
      /**
       * <code>repeated string contributors = 9;</code>
       */
      int getContributorsCount();
      /**
       * <code>repeated string contributors = 9;</code>
       */
      java.lang.String getContributors(int index);
      /**
       * <code>repeated string contributors = 9;</code>
       */
      com.google.protobuf.ByteString
          getContributorsBytes(int index);

      /**
       * <code>repeated string maintainers = 10;</code>
       */
      java.util.List<java.lang.String>
          getMaintainersList();
      /**
       * <code>repeated string maintainers = 10;</code>
       */
      int getMaintainersCount();
      /**
       * <code>repeated string maintainers = 10;</code>
       */
      java.lang.String getMaintainers(int index);
      /**
       * <code>repeated string maintainers = 10;</code>
       */
      com.google.protobuf.ByteString
          getMaintainersBytes(int index);

      /**
       * <pre>
       * release info
       * </pre>
       *
       * <code>repeated .proto.ReleaseInfo releases = 11;</code>
       */
      java.util.List<proto.Info.ReleaseInfo> 
          getReleasesList();
      /**
       * <pre>
       * release info
       * </pre>
       *
       * <code>repeated .proto.ReleaseInfo releases = 11;</code>
       */
      proto.Info.ReleaseInfo getReleases(int index);
      /**
       * <pre>
       * release info
       * </pre>
       *
       * <code>repeated .proto.ReleaseInfo releases = 11;</code>
       */
      int getReleasesCount();
      /**
       * <pre>
       * release info
       * </pre>
       *
       * <code>repeated .proto.ReleaseInfo releases = 11;</code>
       */
      java.util.List<? extends proto.Info.ReleaseInfoOrBuilder> 
          getReleasesOrBuilderList();
      /**
       * <pre>
       * release info
       * </pre>
       *
       * <code>repeated .proto.ReleaseInfo releases = 11;</code>
       */
      proto.Info.ReleaseInfoOrBuilder getReleasesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code proto.PackageInfo.Metadata}
     */
    public  static final class Metadata extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:proto.PackageInfo.Metadata)
        MetadataOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Metadata.newBuilder() to construct.
      private Metadata(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Metadata() {
        packageName_ = "";
        packageVersion_ = "";
        email_ = "";
        homepage_ = "";
        license_ = "";
        execJobs_ = java.util.Collections.emptyList();
        authors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        contributors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        maintainers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        releases_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Metadata(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();

                packageName_ = s;
                break;
              }
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();

                packageVersion_ = s;
                break;
              }
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();

                email_ = s;
                break;
              }
              case 34: {
                java.lang.String s = input.readStringRequireUtf8();

                homepage_ = s;
                break;
              }
              case 42: {
                java.lang.String s = input.readStringRequireUtf8();

                license_ = s;
                break;
              }
              case 50: {
                proto.Info.RepositoryInfo.Builder subBuilder = null;
                if (repository_ != null) {
                  subBuilder = repository_.toBuilder();
                }
                repository_ = input.readMessage(proto.Info.RepositoryInfo.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(repository_);
                  repository_ = subBuilder.buildPartial();
                }

                break;
              }
              case 58: {
                if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                  execJobs_ = new java.util.ArrayList<proto.Info.ExecuteInfo>();
                  mutable_bitField0_ |= 0x00000040;
                }
                execJobs_.add(
                    input.readMessage(proto.Info.ExecuteInfo.parser(), extensionRegistry));
                break;
              }
              case 66: {
                java.lang.String s = input.readStringRequireUtf8();
                if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                  authors_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000080;
                }
                authors_.add(s);
                break;
              }
              case 74: {
                java.lang.String s = input.readStringRequireUtf8();
                if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                  contributors_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000100;
                }
                contributors_.add(s);
                break;
              }
              case 82: {
                java.lang.String s = input.readStringRequireUtf8();
                if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
                  maintainers_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000200;
                }
                maintainers_.add(s);
                break;
              }
              case 90: {
                if (!((mutable_bitField0_ & 0x00000400) == 0x00000400)) {
                  releases_ = new java.util.ArrayList<proto.Info.ReleaseInfo>();
                  mutable_bitField0_ |= 0x00000400;
                }
                releases_.add(
                    input.readMessage(proto.Info.ReleaseInfo.parser(), extensionRegistry));
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
            execJobs_ = java.util.Collections.unmodifiableList(execJobs_);
          }
          if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
            authors_ = authors_.getUnmodifiableView();
          }
          if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
            contributors_ = contributors_.getUnmodifiableView();
          }
          if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
            maintainers_ = maintainers_.getUnmodifiableView();
          }
          if (((mutable_bitField0_ & 0x00000400) == 0x00000400)) {
            releases_ = java.util.Collections.unmodifiableList(releases_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return proto.Info.internal_static_proto_PackageInfo_Metadata_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return proto.Info.internal_static_proto_PackageInfo_Metadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                proto.Info.PackageInfo.Metadata.class, proto.Info.PackageInfo.Metadata.Builder.class);
      }

      private int bitField0_;
      public static final int PACKAGE_NAME_FIELD_NUMBER = 1;
      private volatile java.lang.Object packageName_;
      /**
       * <pre>
       * basic info
       * </pre>
       *
       * <code>string package_name = 1;</code>
       */
      public java.lang.String getPackageName() {
        java.lang.Object ref = packageName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          packageName_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * basic info
       * </pre>
       *
       * <code>string package_name = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPackageNameBytes() {
        java.lang.Object ref = packageName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          packageName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int PACKAGE_VERSION_FIELD_NUMBER = 2;
      private volatile java.lang.Object packageVersion_;
      /**
       * <code>string package_version = 2;</code>
       */
      public java.lang.String getPackageVersion() {
        java.lang.Object ref = packageVersion_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          packageVersion_ = s;
          return s;
        }
      }
      /**
       * <code>string package_version = 2;</code>
       */
      public com.google.protobuf.ByteString
          getPackageVersionBytes() {
        java.lang.Object ref = packageVersion_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          packageVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int EMAIL_FIELD_NUMBER = 3;
      private volatile java.lang.Object email_;
      /**
       * <code>string email = 3;</code>
       */
      public java.lang.String getEmail() {
        java.lang.Object ref = email_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          email_ = s;
          return s;
        }
      }
      /**
       * <code>string email = 3;</code>
       */
      public com.google.protobuf.ByteString
          getEmailBytes() {
        java.lang.Object ref = email_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          email_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int HOMEPAGE_FIELD_NUMBER = 4;
      private volatile java.lang.Object homepage_;
      /**
       * <code>string homepage = 4;</code>
       */
      public java.lang.String getHomepage() {
        java.lang.Object ref = homepage_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          homepage_ = s;
          return s;
        }
      }
      /**
       * <code>string homepage = 4;</code>
       */
      public com.google.protobuf.ByteString
          getHomepageBytes() {
        java.lang.Object ref = homepage_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          homepage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int LICENSE_FIELD_NUMBER = 5;
      private volatile java.lang.Object license_;
      /**
       * <code>string license = 5;</code>
       */
      public java.lang.String getLicense() {
        java.lang.Object ref = license_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          license_ = s;
          return s;
        }
      }
      /**
       * <code>string license = 5;</code>
       */
      public com.google.protobuf.ByteString
          getLicenseBytes() {
        java.lang.Object ref = license_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          license_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int REPOSITORY_FIELD_NUMBER = 6;
      private proto.Info.RepositoryInfo repository_;
      /**
       * <pre>
       * host info
       * </pre>
       *
       * <code>.proto.RepositoryInfo repository = 6;</code>
       */
      public boolean hasRepository() {
        return repository_ != null;
      }
      /**
       * <pre>
       * host info
       * </pre>
       *
       * <code>.proto.RepositoryInfo repository = 6;</code>
       */
      public proto.Info.RepositoryInfo getRepository() {
        return repository_ == null ? proto.Info.RepositoryInfo.getDefaultInstance() : repository_;
      }
      /**
       * <pre>
       * host info
       * </pre>
       *
       * <code>.proto.RepositoryInfo repository = 6;</code>
       */
      public proto.Info.RepositoryInfoOrBuilder getRepositoryOrBuilder() {
        return getRepository();
      }

      public static final int EXEC_JOBS_FIELD_NUMBER = 7;
      private java.util.List<proto.Info.ExecuteInfo> execJobs_;
      /**
       * <pre>
       * execute info
       * </pre>
       *
       * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
       */
      public java.util.List<proto.Info.ExecuteInfo> getExecJobsList() {
        return execJobs_;
      }
      /**
       * <pre>
       * execute info
       * </pre>
       *
       * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
       */
      public java.util.List<? extends proto.Info.ExecuteInfoOrBuilder> 
          getExecJobsOrBuilderList() {
        return execJobs_;
      }
      /**
       * <pre>
       * execute info
       * </pre>
       *
       * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
       */
      public int getExecJobsCount() {
        return execJobs_.size();
      }
      /**
       * <pre>
       * execute info
       * </pre>
       *
       * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
       */
      public proto.Info.ExecuteInfo getExecJobs(int index) {
        return execJobs_.get(index);
      }
      /**
       * <pre>
       * execute info
       * </pre>
       *
       * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
       */
      public proto.Info.ExecuteInfoOrBuilder getExecJobsOrBuilder(
          int index) {
        return execJobs_.get(index);
      }

      public static final int AUTHORS_FIELD_NUMBER = 8;
      private com.google.protobuf.LazyStringList authors_;
      /**
       * <pre>
       * author info
       * </pre>
       *
       * <code>repeated string authors = 8;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getAuthorsList() {
        return authors_;
      }
      /**
       * <pre>
       * author info
       * </pre>
       *
       * <code>repeated string authors = 8;</code>
       */
      public int getAuthorsCount() {
        return authors_.size();
      }
      /**
       * <pre>
       * author info
       * </pre>
       *
       * <code>repeated string authors = 8;</code>
       */
      public java.lang.String getAuthors(int index) {
        return authors_.get(index);
      }
      /**
       * <pre>
       * author info
       * </pre>
       *
       * <code>repeated string authors = 8;</code>
       */
      public com.google.protobuf.ByteString
          getAuthorsBytes(int index) {
        return authors_.getByteString(index);
      }

      public static final int CONTRIBUTORS_FIELD_NUMBER = 9;
      private com.google.protobuf.LazyStringList contributors_;
      /**
       * <code>repeated string contributors = 9;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getContributorsList() {
        return contributors_;
      }
      /**
       * <code>repeated string contributors = 9;</code>
       */
      public int getContributorsCount() {
        return contributors_.size();
      }
      /**
       * <code>repeated string contributors = 9;</code>
       */
      public java.lang.String getContributors(int index) {
        return contributors_.get(index);
      }
      /**
       * <code>repeated string contributors = 9;</code>
       */
      public com.google.protobuf.ByteString
          getContributorsBytes(int index) {
        return contributors_.getByteString(index);
      }

      public static final int MAINTAINERS_FIELD_NUMBER = 10;
      private com.google.protobuf.LazyStringList maintainers_;
      /**
       * <code>repeated string maintainers = 10;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getMaintainersList() {
        return maintainers_;
      }
      /**
       * <code>repeated string maintainers = 10;</code>
       */
      public int getMaintainersCount() {
        return maintainers_.size();
      }
      /**
       * <code>repeated string maintainers = 10;</code>
       */
      public java.lang.String getMaintainers(int index) {
        return maintainers_.get(index);
      }
      /**
       * <code>repeated string maintainers = 10;</code>
       */
      public com.google.protobuf.ByteString
          getMaintainersBytes(int index) {
        return maintainers_.getByteString(index);
      }

      public static final int RELEASES_FIELD_NUMBER = 11;
      private java.util.List<proto.Info.ReleaseInfo> releases_;
      /**
       * <pre>
       * release info
       * </pre>
       *
       * <code>repeated .proto.ReleaseInfo releases = 11;</code>
       */
      public java.util.List<proto.Info.ReleaseInfo> getReleasesList() {
        return releases_;
      }
      /**
       * <pre>
       * release info
       * </pre>
       *
       * <code>repeated .proto.ReleaseInfo releases = 11;</code>
       */
      public java.util.List<? extends proto.Info.ReleaseInfoOrBuilder> 
          getReleasesOrBuilderList() {
        return releases_;
      }
      /**
       * <pre>
       * release info
       * </pre>
       *
       * <code>repeated .proto.ReleaseInfo releases = 11;</code>
       */
      public int getReleasesCount() {
        return releases_.size();
      }
      /**
       * <pre>
       * release info
       * </pre>
       *
       * <code>repeated .proto.ReleaseInfo releases = 11;</code>
       */
      public proto.Info.ReleaseInfo getReleases(int index) {
        return releases_.get(index);
      }
      /**
       * <pre>
       * release info
       * </pre>
       *
       * <code>repeated .proto.ReleaseInfo releases = 11;</code>
       */
      public proto.Info.ReleaseInfoOrBuilder getReleasesOrBuilder(
          int index) {
        return releases_.get(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getPackageNameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, packageName_);
        }
        if (!getPackageVersionBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, packageVersion_);
        }
        if (!getEmailBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, email_);
        }
        if (!getHomepageBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, homepage_);
        }
        if (!getLicenseBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 5, license_);
        }
        if (repository_ != null) {
          output.writeMessage(6, getRepository());
        }
        for (int i = 0; i < execJobs_.size(); i++) {
          output.writeMessage(7, execJobs_.get(i));
        }
        for (int i = 0; i < authors_.size(); i++) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 8, authors_.getRaw(i));
        }
        for (int i = 0; i < contributors_.size(); i++) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 9, contributors_.getRaw(i));
        }
        for (int i = 0; i < maintainers_.size(); i++) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 10, maintainers_.getRaw(i));
        }
        for (int i = 0; i < releases_.size(); i++) {
          output.writeMessage(11, releases_.get(i));
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (!getPackageNameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, packageName_);
        }
        if (!getPackageVersionBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, packageVersion_);
        }
        if (!getEmailBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, email_);
        }
        if (!getHomepageBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, homepage_);
        }
        if (!getLicenseBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, license_);
        }
        if (repository_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, getRepository());
        }
        for (int i = 0; i < execJobs_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, execJobs_.get(i));
        }
        {
          int dataSize = 0;
          for (int i = 0; i < authors_.size(); i++) {
            dataSize += computeStringSizeNoTag(authors_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getAuthorsList().size();
        }
        {
          int dataSize = 0;
          for (int i = 0; i < contributors_.size(); i++) {
            dataSize += computeStringSizeNoTag(contributors_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getContributorsList().size();
        }
        {
          int dataSize = 0;
          for (int i = 0; i < maintainers_.size(); i++) {
            dataSize += computeStringSizeNoTag(maintainers_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getMaintainersList().size();
        }
        for (int i = 0; i < releases_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(11, releases_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof proto.Info.PackageInfo.Metadata)) {
          return super.equals(obj);
        }
        proto.Info.PackageInfo.Metadata other = (proto.Info.PackageInfo.Metadata) obj;

        boolean result = true;
        result = result && getPackageName()
            .equals(other.getPackageName());
        result = result && getPackageVersion()
            .equals(other.getPackageVersion());
        result = result && getEmail()
            .equals(other.getEmail());
        result = result && getHomepage()
            .equals(other.getHomepage());
        result = result && getLicense()
            .equals(other.getLicense());
        result = result && (hasRepository() == other.hasRepository());
        if (hasRepository()) {
          result = result && getRepository()
              .equals(other.getRepository());
        }
        result = result && getExecJobsList()
            .equals(other.getExecJobsList());
        result = result && getAuthorsList()
            .equals(other.getAuthorsList());
        result = result && getContributorsList()
            .equals(other.getContributorsList());
        result = result && getMaintainersList()
            .equals(other.getMaintainersList());
        result = result && getReleasesList()
            .equals(other.getReleasesList());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + PACKAGE_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getPackageName().hashCode();
        hash = (37 * hash) + PACKAGE_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getPackageVersion().hashCode();
        hash = (37 * hash) + EMAIL_FIELD_NUMBER;
        hash = (53 * hash) + getEmail().hashCode();
        hash = (37 * hash) + HOMEPAGE_FIELD_NUMBER;
        hash = (53 * hash) + getHomepage().hashCode();
        hash = (37 * hash) + LICENSE_FIELD_NUMBER;
        hash = (53 * hash) + getLicense().hashCode();
        if (hasRepository()) {
          hash = (37 * hash) + REPOSITORY_FIELD_NUMBER;
          hash = (53 * hash) + getRepository().hashCode();
        }
        if (getExecJobsCount() > 0) {
          hash = (37 * hash) + EXEC_JOBS_FIELD_NUMBER;
          hash = (53 * hash) + getExecJobsList().hashCode();
        }
        if (getAuthorsCount() > 0) {
          hash = (37 * hash) + AUTHORS_FIELD_NUMBER;
          hash = (53 * hash) + getAuthorsList().hashCode();
        }
        if (getContributorsCount() > 0) {
          hash = (37 * hash) + CONTRIBUTORS_FIELD_NUMBER;
          hash = (53 * hash) + getContributorsList().hashCode();
        }
        if (getMaintainersCount() > 0) {
          hash = (37 * hash) + MAINTAINERS_FIELD_NUMBER;
          hash = (53 * hash) + getMaintainersList().hashCode();
        }
        if (getReleasesCount() > 0) {
          hash = (37 * hash) + RELEASES_FIELD_NUMBER;
          hash = (53 * hash) + getReleasesList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static proto.Info.PackageInfo.Metadata parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static proto.Info.PackageInfo.Metadata parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static proto.Info.PackageInfo.Metadata parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static proto.Info.PackageInfo.Metadata parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static proto.Info.PackageInfo.Metadata parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static proto.Info.PackageInfo.Metadata parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static proto.Info.PackageInfo.Metadata parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static proto.Info.PackageInfo.Metadata parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static proto.Info.PackageInfo.Metadata parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static proto.Info.PackageInfo.Metadata parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static proto.Info.PackageInfo.Metadata parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static proto.Info.PackageInfo.Metadata parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(proto.Info.PackageInfo.Metadata prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code proto.PackageInfo.Metadata}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:proto.PackageInfo.Metadata)
          proto.Info.PackageInfo.MetadataOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return proto.Info.internal_static_proto_PackageInfo_Metadata_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return proto.Info.internal_static_proto_PackageInfo_Metadata_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  proto.Info.PackageInfo.Metadata.class, proto.Info.PackageInfo.Metadata.Builder.class);
        }

        // Construct using proto.Info.PackageInfo.Metadata.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getExecJobsFieldBuilder();
            getReleasesFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          packageName_ = "";

          packageVersion_ = "";

          email_ = "";

          homepage_ = "";

          license_ = "";

          if (repositoryBuilder_ == null) {
            repository_ = null;
          } else {
            repository_ = null;
            repositoryBuilder_ = null;
          }
          if (execJobsBuilder_ == null) {
            execJobs_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            execJobsBuilder_.clear();
          }
          authors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000080);
          contributors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000100);
          maintainers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000200);
          if (releasesBuilder_ == null) {
            releases_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000400);
          } else {
            releasesBuilder_.clear();
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return proto.Info.internal_static_proto_PackageInfo_Metadata_descriptor;
        }

        @java.lang.Override
        public proto.Info.PackageInfo.Metadata getDefaultInstanceForType() {
          return proto.Info.PackageInfo.Metadata.getDefaultInstance();
        }

        @java.lang.Override
        public proto.Info.PackageInfo.Metadata build() {
          proto.Info.PackageInfo.Metadata result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public proto.Info.PackageInfo.Metadata buildPartial() {
          proto.Info.PackageInfo.Metadata result = new proto.Info.PackageInfo.Metadata(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          result.packageName_ = packageName_;
          result.packageVersion_ = packageVersion_;
          result.email_ = email_;
          result.homepage_ = homepage_;
          result.license_ = license_;
          if (repositoryBuilder_ == null) {
            result.repository_ = repository_;
          } else {
            result.repository_ = repositoryBuilder_.build();
          }
          if (execJobsBuilder_ == null) {
            if (((bitField0_ & 0x00000040) == 0x00000040)) {
              execJobs_ = java.util.Collections.unmodifiableList(execJobs_);
              bitField0_ = (bitField0_ & ~0x00000040);
            }
            result.execJobs_ = execJobs_;
          } else {
            result.execJobs_ = execJobsBuilder_.build();
          }
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            authors_ = authors_.getUnmodifiableView();
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.authors_ = authors_;
          if (((bitField0_ & 0x00000100) == 0x00000100)) {
            contributors_ = contributors_.getUnmodifiableView();
            bitField0_ = (bitField0_ & ~0x00000100);
          }
          result.contributors_ = contributors_;
          if (((bitField0_ & 0x00000200) == 0x00000200)) {
            maintainers_ = maintainers_.getUnmodifiableView();
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.maintainers_ = maintainers_;
          if (releasesBuilder_ == null) {
            if (((bitField0_ & 0x00000400) == 0x00000400)) {
              releases_ = java.util.Collections.unmodifiableList(releases_);
              bitField0_ = (bitField0_ & ~0x00000400);
            }
            result.releases_ = releases_;
          } else {
            result.releases_ = releasesBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof proto.Info.PackageInfo.Metadata) {
            return mergeFrom((proto.Info.PackageInfo.Metadata)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(proto.Info.PackageInfo.Metadata other) {
          if (other == proto.Info.PackageInfo.Metadata.getDefaultInstance()) return this;
          if (!other.getPackageName().isEmpty()) {
            packageName_ = other.packageName_;
            onChanged();
          }
          if (!other.getPackageVersion().isEmpty()) {
            packageVersion_ = other.packageVersion_;
            onChanged();
          }
          if (!other.getEmail().isEmpty()) {
            email_ = other.email_;
            onChanged();
          }
          if (!other.getHomepage().isEmpty()) {
            homepage_ = other.homepage_;
            onChanged();
          }
          if (!other.getLicense().isEmpty()) {
            license_ = other.license_;
            onChanged();
          }
          if (other.hasRepository()) {
            mergeRepository(other.getRepository());
          }
          if (execJobsBuilder_ == null) {
            if (!other.execJobs_.isEmpty()) {
              if (execJobs_.isEmpty()) {
                execJobs_ = other.execJobs_;
                bitField0_ = (bitField0_ & ~0x00000040);
              } else {
                ensureExecJobsIsMutable();
                execJobs_.addAll(other.execJobs_);
              }
              onChanged();
            }
          } else {
            if (!other.execJobs_.isEmpty()) {
              if (execJobsBuilder_.isEmpty()) {
                execJobsBuilder_.dispose();
                execJobsBuilder_ = null;
                execJobs_ = other.execJobs_;
                bitField0_ = (bitField0_ & ~0x00000040);
                execJobsBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getExecJobsFieldBuilder() : null;
              } else {
                execJobsBuilder_.addAllMessages(other.execJobs_);
              }
            }
          }
          if (!other.authors_.isEmpty()) {
            if (authors_.isEmpty()) {
              authors_ = other.authors_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureAuthorsIsMutable();
              authors_.addAll(other.authors_);
            }
            onChanged();
          }
          if (!other.contributors_.isEmpty()) {
            if (contributors_.isEmpty()) {
              contributors_ = other.contributors_;
              bitField0_ = (bitField0_ & ~0x00000100);
            } else {
              ensureContributorsIsMutable();
              contributors_.addAll(other.contributors_);
            }
            onChanged();
          }
          if (!other.maintainers_.isEmpty()) {
            if (maintainers_.isEmpty()) {
              maintainers_ = other.maintainers_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensureMaintainersIsMutable();
              maintainers_.addAll(other.maintainers_);
            }
            onChanged();
          }
          if (releasesBuilder_ == null) {
            if (!other.releases_.isEmpty()) {
              if (releases_.isEmpty()) {
                releases_ = other.releases_;
                bitField0_ = (bitField0_ & ~0x00000400);
              } else {
                ensureReleasesIsMutable();
                releases_.addAll(other.releases_);
              }
              onChanged();
            }
          } else {
            if (!other.releases_.isEmpty()) {
              if (releasesBuilder_.isEmpty()) {
                releasesBuilder_.dispose();
                releasesBuilder_ = null;
                releases_ = other.releases_;
                bitField0_ = (bitField0_ & ~0x00000400);
                releasesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getReleasesFieldBuilder() : null;
              } else {
                releasesBuilder_.addAllMessages(other.releases_);
              }
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          proto.Info.PackageInfo.Metadata parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (proto.Info.PackageInfo.Metadata) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object packageName_ = "";
        /**
         * <pre>
         * basic info
         * </pre>
         *
         * <code>string package_name = 1;</code>
         */
        public java.lang.String getPackageName() {
          java.lang.Object ref = packageName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            packageName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * basic info
         * </pre>
         *
         * <code>string package_name = 1;</code>
         */
        public com.google.protobuf.ByteString
            getPackageNameBytes() {
          java.lang.Object ref = packageName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            packageName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * basic info
         * </pre>
         *
         * <code>string package_name = 1;</code>
         */
        public Builder setPackageName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          packageName_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * basic info
         * </pre>
         *
         * <code>string package_name = 1;</code>
         */
        public Builder clearPackageName() {
          
          packageName_ = getDefaultInstance().getPackageName();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * basic info
         * </pre>
         *
         * <code>string package_name = 1;</code>
         */
        public Builder setPackageNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          packageName_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object packageVersion_ = "";
        /**
         * <code>string package_version = 2;</code>
         */
        public java.lang.String getPackageVersion() {
          java.lang.Object ref = packageVersion_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            packageVersion_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string package_version = 2;</code>
         */
        public com.google.protobuf.ByteString
            getPackageVersionBytes() {
          java.lang.Object ref = packageVersion_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            packageVersion_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string package_version = 2;</code>
         */
        public Builder setPackageVersion(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          packageVersion_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string package_version = 2;</code>
         */
        public Builder clearPackageVersion() {
          
          packageVersion_ = getDefaultInstance().getPackageVersion();
          onChanged();
          return this;
        }
        /**
         * <code>string package_version = 2;</code>
         */
        public Builder setPackageVersionBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          packageVersion_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object email_ = "";
        /**
         * <code>string email = 3;</code>
         */
        public java.lang.String getEmail() {
          java.lang.Object ref = email_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            email_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string email = 3;</code>
         */
        public com.google.protobuf.ByteString
            getEmailBytes() {
          java.lang.Object ref = email_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            email_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string email = 3;</code>
         */
        public Builder setEmail(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          email_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string email = 3;</code>
         */
        public Builder clearEmail() {
          
          email_ = getDefaultInstance().getEmail();
          onChanged();
          return this;
        }
        /**
         * <code>string email = 3;</code>
         */
        public Builder setEmailBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          email_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object homepage_ = "";
        /**
         * <code>string homepage = 4;</code>
         */
        public java.lang.String getHomepage() {
          java.lang.Object ref = homepage_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            homepage_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string homepage = 4;</code>
         */
        public com.google.protobuf.ByteString
            getHomepageBytes() {
          java.lang.Object ref = homepage_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            homepage_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string homepage = 4;</code>
         */
        public Builder setHomepage(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          homepage_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string homepage = 4;</code>
         */
        public Builder clearHomepage() {
          
          homepage_ = getDefaultInstance().getHomepage();
          onChanged();
          return this;
        }
        /**
         * <code>string homepage = 4;</code>
         */
        public Builder setHomepageBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          homepage_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object license_ = "";
        /**
         * <code>string license = 5;</code>
         */
        public java.lang.String getLicense() {
          java.lang.Object ref = license_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            license_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string license = 5;</code>
         */
        public com.google.protobuf.ByteString
            getLicenseBytes() {
          java.lang.Object ref = license_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            license_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string license = 5;</code>
         */
        public Builder setLicense(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          license_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string license = 5;</code>
         */
        public Builder clearLicense() {
          
          license_ = getDefaultInstance().getLicense();
          onChanged();
          return this;
        }
        /**
         * <code>string license = 5;</code>
         */
        public Builder setLicenseBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          license_ = value;
          onChanged();
          return this;
        }

        private proto.Info.RepositoryInfo repository_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            proto.Info.RepositoryInfo, proto.Info.RepositoryInfo.Builder, proto.Info.RepositoryInfoOrBuilder> repositoryBuilder_;
        /**
         * <pre>
         * host info
         * </pre>
         *
         * <code>.proto.RepositoryInfo repository = 6;</code>
         */
        public boolean hasRepository() {
          return repositoryBuilder_ != null || repository_ != null;
        }
        /**
         * <pre>
         * host info
         * </pre>
         *
         * <code>.proto.RepositoryInfo repository = 6;</code>
         */
        public proto.Info.RepositoryInfo getRepository() {
          if (repositoryBuilder_ == null) {
            return repository_ == null ? proto.Info.RepositoryInfo.getDefaultInstance() : repository_;
          } else {
            return repositoryBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * host info
         * </pre>
         *
         * <code>.proto.RepositoryInfo repository = 6;</code>
         */
        public Builder setRepository(proto.Info.RepositoryInfo value) {
          if (repositoryBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            repository_ = value;
            onChanged();
          } else {
            repositoryBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * host info
         * </pre>
         *
         * <code>.proto.RepositoryInfo repository = 6;</code>
         */
        public Builder setRepository(
            proto.Info.RepositoryInfo.Builder builderForValue) {
          if (repositoryBuilder_ == null) {
            repository_ = builderForValue.build();
            onChanged();
          } else {
            repositoryBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * host info
         * </pre>
         *
         * <code>.proto.RepositoryInfo repository = 6;</code>
         */
        public Builder mergeRepository(proto.Info.RepositoryInfo value) {
          if (repositoryBuilder_ == null) {
            if (repository_ != null) {
              repository_ =
                proto.Info.RepositoryInfo.newBuilder(repository_).mergeFrom(value).buildPartial();
            } else {
              repository_ = value;
            }
            onChanged();
          } else {
            repositoryBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * host info
         * </pre>
         *
         * <code>.proto.RepositoryInfo repository = 6;</code>
         */
        public Builder clearRepository() {
          if (repositoryBuilder_ == null) {
            repository_ = null;
            onChanged();
          } else {
            repository_ = null;
            repositoryBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * host info
         * </pre>
         *
         * <code>.proto.RepositoryInfo repository = 6;</code>
         */
        public proto.Info.RepositoryInfo.Builder getRepositoryBuilder() {
          
          onChanged();
          return getRepositoryFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * host info
         * </pre>
         *
         * <code>.proto.RepositoryInfo repository = 6;</code>
         */
        public proto.Info.RepositoryInfoOrBuilder getRepositoryOrBuilder() {
          if (repositoryBuilder_ != null) {
            return repositoryBuilder_.getMessageOrBuilder();
          } else {
            return repository_ == null ?
                proto.Info.RepositoryInfo.getDefaultInstance() : repository_;
          }
        }
        /**
         * <pre>
         * host info
         * </pre>
         *
         * <code>.proto.RepositoryInfo repository = 6;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            proto.Info.RepositoryInfo, proto.Info.RepositoryInfo.Builder, proto.Info.RepositoryInfoOrBuilder> 
            getRepositoryFieldBuilder() {
          if (repositoryBuilder_ == null) {
            repositoryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                proto.Info.RepositoryInfo, proto.Info.RepositoryInfo.Builder, proto.Info.RepositoryInfoOrBuilder>(
                    getRepository(),
                    getParentForChildren(),
                    isClean());
            repository_ = null;
          }
          return repositoryBuilder_;
        }

        private java.util.List<proto.Info.ExecuteInfo> execJobs_ =
          java.util.Collections.emptyList();
        private void ensureExecJobsIsMutable() {
          if (!((bitField0_ & 0x00000040) == 0x00000040)) {
            execJobs_ = new java.util.ArrayList<proto.Info.ExecuteInfo>(execJobs_);
            bitField0_ |= 0x00000040;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            proto.Info.ExecuteInfo, proto.Info.ExecuteInfo.Builder, proto.Info.ExecuteInfoOrBuilder> execJobsBuilder_;

        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public java.util.List<proto.Info.ExecuteInfo> getExecJobsList() {
          if (execJobsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(execJobs_);
          } else {
            return execJobsBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public int getExecJobsCount() {
          if (execJobsBuilder_ == null) {
            return execJobs_.size();
          } else {
            return execJobsBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public proto.Info.ExecuteInfo getExecJobs(int index) {
          if (execJobsBuilder_ == null) {
            return execJobs_.get(index);
          } else {
            return execJobsBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public Builder setExecJobs(
            int index, proto.Info.ExecuteInfo value) {
          if (execJobsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureExecJobsIsMutable();
            execJobs_.set(index, value);
            onChanged();
          } else {
            execJobsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public Builder setExecJobs(
            int index, proto.Info.ExecuteInfo.Builder builderForValue) {
          if (execJobsBuilder_ == null) {
            ensureExecJobsIsMutable();
            execJobs_.set(index, builderForValue.build());
            onChanged();
          } else {
            execJobsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public Builder addExecJobs(proto.Info.ExecuteInfo value) {
          if (execJobsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureExecJobsIsMutable();
            execJobs_.add(value);
            onChanged();
          } else {
            execJobsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public Builder addExecJobs(
            int index, proto.Info.ExecuteInfo value) {
          if (execJobsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureExecJobsIsMutable();
            execJobs_.add(index, value);
            onChanged();
          } else {
            execJobsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public Builder addExecJobs(
            proto.Info.ExecuteInfo.Builder builderForValue) {
          if (execJobsBuilder_ == null) {
            ensureExecJobsIsMutable();
            execJobs_.add(builderForValue.build());
            onChanged();
          } else {
            execJobsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public Builder addExecJobs(
            int index, proto.Info.ExecuteInfo.Builder builderForValue) {
          if (execJobsBuilder_ == null) {
            ensureExecJobsIsMutable();
            execJobs_.add(index, builderForValue.build());
            onChanged();
          } else {
            execJobsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public Builder addAllExecJobs(
            java.lang.Iterable<? extends proto.Info.ExecuteInfo> values) {
          if (execJobsBuilder_ == null) {
            ensureExecJobsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, execJobs_);
            onChanged();
          } else {
            execJobsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public Builder clearExecJobs() {
          if (execJobsBuilder_ == null) {
            execJobs_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000040);
            onChanged();
          } else {
            execJobsBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public Builder removeExecJobs(int index) {
          if (execJobsBuilder_ == null) {
            ensureExecJobsIsMutable();
            execJobs_.remove(index);
            onChanged();
          } else {
            execJobsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public proto.Info.ExecuteInfo.Builder getExecJobsBuilder(
            int index) {
          return getExecJobsFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public proto.Info.ExecuteInfoOrBuilder getExecJobsOrBuilder(
            int index) {
          if (execJobsBuilder_ == null) {
            return execJobs_.get(index);  } else {
            return execJobsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public java.util.List<? extends proto.Info.ExecuteInfoOrBuilder> 
             getExecJobsOrBuilderList() {
          if (execJobsBuilder_ != null) {
            return execJobsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(execJobs_);
          }
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public proto.Info.ExecuteInfo.Builder addExecJobsBuilder() {
          return getExecJobsFieldBuilder().addBuilder(
              proto.Info.ExecuteInfo.getDefaultInstance());
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public proto.Info.ExecuteInfo.Builder addExecJobsBuilder(
            int index) {
          return getExecJobsFieldBuilder().addBuilder(
              index, proto.Info.ExecuteInfo.getDefaultInstance());
        }
        /**
         * <pre>
         * execute info
         * </pre>
         *
         * <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
         */
        public java.util.List<proto.Info.ExecuteInfo.Builder> 
             getExecJobsBuilderList() {
          return getExecJobsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            proto.Info.ExecuteInfo, proto.Info.ExecuteInfo.Builder, proto.Info.ExecuteInfoOrBuilder> 
            getExecJobsFieldBuilder() {
          if (execJobsBuilder_ == null) {
            execJobsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                proto.Info.ExecuteInfo, proto.Info.ExecuteInfo.Builder, proto.Info.ExecuteInfoOrBuilder>(
                    execJobs_,
                    ((bitField0_ & 0x00000040) == 0x00000040),
                    getParentForChildren(),
                    isClean());
            execJobs_ = null;
          }
          return execJobsBuilder_;
        }

        private com.google.protobuf.LazyStringList authors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        private void ensureAuthorsIsMutable() {
          if (!((bitField0_ & 0x00000080) == 0x00000080)) {
            authors_ = new com.google.protobuf.LazyStringArrayList(authors_);
            bitField0_ |= 0x00000080;
           }
        }
        /**
         * <pre>
         * author info
         * </pre>
         *
         * <code>repeated string authors = 8;</code>
         */
        public com.google.protobuf.ProtocolStringList
            getAuthorsList() {
          return authors_.getUnmodifiableView();
        }
        /**
         * <pre>
         * author info
         * </pre>
         *
         * <code>repeated string authors = 8;</code>
         */
        public int getAuthorsCount() {
          return authors_.size();
        }
        /**
         * <pre>
         * author info
         * </pre>
         *
         * <code>repeated string authors = 8;</code>
         */
        public java.lang.String getAuthors(int index) {
          return authors_.get(index);
        }
        /**
         * <pre>
         * author info
         * </pre>
         *
         * <code>repeated string authors = 8;</code>
         */
        public com.google.protobuf.ByteString
            getAuthorsBytes(int index) {
          return authors_.getByteString(index);
        }
        /**
         * <pre>
         * author info
         * </pre>
         *
         * <code>repeated string authors = 8;</code>
         */
        public Builder setAuthors(
            int index, java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensureAuthorsIsMutable();
          authors_.set(index, value);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * author info
         * </pre>
         *
         * <code>repeated string authors = 8;</code>
         */
        public Builder addAuthors(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensureAuthorsIsMutable();
          authors_.add(value);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * author info
         * </pre>
         *
         * <code>repeated string authors = 8;</code>
         */
        public Builder addAllAuthors(
            java.lang.Iterable<java.lang.String> values) {
          ensureAuthorsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, authors_);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * author info
         * </pre>
         *
         * <code>repeated string authors = 8;</code>
         */
        public Builder clearAuthors() {
          authors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * author info
         * </pre>
         *
         * <code>repeated string authors = 8;</code>
         */
        public Builder addAuthorsBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          ensureAuthorsIsMutable();
          authors_.add(value);
          onChanged();
          return this;
        }

        private com.google.protobuf.LazyStringList contributors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        private void ensureContributorsIsMutable() {
          if (!((bitField0_ & 0x00000100) == 0x00000100)) {
            contributors_ = new com.google.protobuf.LazyStringArrayList(contributors_);
            bitField0_ |= 0x00000100;
           }
        }
        /**
         * <code>repeated string contributors = 9;</code>
         */
        public com.google.protobuf.ProtocolStringList
            getContributorsList() {
          return contributors_.getUnmodifiableView();
        }
        /**
         * <code>repeated string contributors = 9;</code>
         */
        public int getContributorsCount() {
          return contributors_.size();
        }
        /**
         * <code>repeated string contributors = 9;</code>
         */
        public java.lang.String getContributors(int index) {
          return contributors_.get(index);
        }
        /**
         * <code>repeated string contributors = 9;</code>
         */
        public com.google.protobuf.ByteString
            getContributorsBytes(int index) {
          return contributors_.getByteString(index);
        }
        /**
         * <code>repeated string contributors = 9;</code>
         */
        public Builder setContributors(
            int index, java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensureContributorsIsMutable();
          contributors_.set(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string contributors = 9;</code>
         */
        public Builder addContributors(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensureContributorsIsMutable();
          contributors_.add(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string contributors = 9;</code>
         */
        public Builder addAllContributors(
            java.lang.Iterable<java.lang.String> values) {
          ensureContributorsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, contributors_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string contributors = 9;</code>
         */
        public Builder clearContributors() {
          contributors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000100);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string contributors = 9;</code>
         */
        public Builder addContributorsBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          ensureContributorsIsMutable();
          contributors_.add(value);
          onChanged();
          return this;
        }

        private com.google.protobuf.LazyStringList maintainers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        private void ensureMaintainersIsMutable() {
          if (!((bitField0_ & 0x00000200) == 0x00000200)) {
            maintainers_ = new com.google.protobuf.LazyStringArrayList(maintainers_);
            bitField0_ |= 0x00000200;
           }
        }
        /**
         * <code>repeated string maintainers = 10;</code>
         */
        public com.google.protobuf.ProtocolStringList
            getMaintainersList() {
          return maintainers_.getUnmodifiableView();
        }
        /**
         * <code>repeated string maintainers = 10;</code>
         */
        public int getMaintainersCount() {
          return maintainers_.size();
        }
        /**
         * <code>repeated string maintainers = 10;</code>
         */
        public java.lang.String getMaintainers(int index) {
          return maintainers_.get(index);
        }
        /**
         * <code>repeated string maintainers = 10;</code>
         */
        public com.google.protobuf.ByteString
            getMaintainersBytes(int index) {
          return maintainers_.getByteString(index);
        }
        /**
         * <code>repeated string maintainers = 10;</code>
         */
        public Builder setMaintainers(
            int index, java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensureMaintainersIsMutable();
          maintainers_.set(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string maintainers = 10;</code>
         */
        public Builder addMaintainers(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensureMaintainersIsMutable();
          maintainers_.add(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string maintainers = 10;</code>
         */
        public Builder addAllMaintainers(
            java.lang.Iterable<java.lang.String> values) {
          ensureMaintainersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, maintainers_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string maintainers = 10;</code>
         */
        public Builder clearMaintainers() {
          maintainers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string maintainers = 10;</code>
         */
        public Builder addMaintainersBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          ensureMaintainersIsMutable();
          maintainers_.add(value);
          onChanged();
          return this;
        }

        private java.util.List<proto.Info.ReleaseInfo> releases_ =
          java.util.Collections.emptyList();
        private void ensureReleasesIsMutable() {
          if (!((bitField0_ & 0x00000400) == 0x00000400)) {
            releases_ = new java.util.ArrayList<proto.Info.ReleaseInfo>(releases_);
            bitField0_ |= 0x00000400;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            proto.Info.ReleaseInfo, proto.Info.ReleaseInfo.Builder, proto.Info.ReleaseInfoOrBuilder> releasesBuilder_;

        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public java.util.List<proto.Info.ReleaseInfo> getReleasesList() {
          if (releasesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(releases_);
          } else {
            return releasesBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public int getReleasesCount() {
          if (releasesBuilder_ == null) {
            return releases_.size();
          } else {
            return releasesBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public proto.Info.ReleaseInfo getReleases(int index) {
          if (releasesBuilder_ == null) {
            return releases_.get(index);
          } else {
            return releasesBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public Builder setReleases(
            int index, proto.Info.ReleaseInfo value) {
          if (releasesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureReleasesIsMutable();
            releases_.set(index, value);
            onChanged();
          } else {
            releasesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public Builder setReleases(
            int index, proto.Info.ReleaseInfo.Builder builderForValue) {
          if (releasesBuilder_ == null) {
            ensureReleasesIsMutable();
            releases_.set(index, builderForValue.build());
            onChanged();
          } else {
            releasesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public Builder addReleases(proto.Info.ReleaseInfo value) {
          if (releasesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureReleasesIsMutable();
            releases_.add(value);
            onChanged();
          } else {
            releasesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public Builder addReleases(
            int index, proto.Info.ReleaseInfo value) {
          if (releasesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureReleasesIsMutable();
            releases_.add(index, value);
            onChanged();
          } else {
            releasesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public Builder addReleases(
            proto.Info.ReleaseInfo.Builder builderForValue) {
          if (releasesBuilder_ == null) {
            ensureReleasesIsMutable();
            releases_.add(builderForValue.build());
            onChanged();
          } else {
            releasesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public Builder addReleases(
            int index, proto.Info.ReleaseInfo.Builder builderForValue) {
          if (releasesBuilder_ == null) {
            ensureReleasesIsMutable();
            releases_.add(index, builderForValue.build());
            onChanged();
          } else {
            releasesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public Builder addAllReleases(
            java.lang.Iterable<? extends proto.Info.ReleaseInfo> values) {
          if (releasesBuilder_ == null) {
            ensureReleasesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, releases_);
            onChanged();
          } else {
            releasesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public Builder clearReleases() {
          if (releasesBuilder_ == null) {
            releases_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000400);
            onChanged();
          } else {
            releasesBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public Builder removeReleases(int index) {
          if (releasesBuilder_ == null) {
            ensureReleasesIsMutable();
            releases_.remove(index);
            onChanged();
          } else {
            releasesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public proto.Info.ReleaseInfo.Builder getReleasesBuilder(
            int index) {
          return getReleasesFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public proto.Info.ReleaseInfoOrBuilder getReleasesOrBuilder(
            int index) {
          if (releasesBuilder_ == null) {
            return releases_.get(index);  } else {
            return releasesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public java.util.List<? extends proto.Info.ReleaseInfoOrBuilder> 
             getReleasesOrBuilderList() {
          if (releasesBuilder_ != null) {
            return releasesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(releases_);
          }
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public proto.Info.ReleaseInfo.Builder addReleasesBuilder() {
          return getReleasesFieldBuilder().addBuilder(
              proto.Info.ReleaseInfo.getDefaultInstance());
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public proto.Info.ReleaseInfo.Builder addReleasesBuilder(
            int index) {
          return getReleasesFieldBuilder().addBuilder(
              index, proto.Info.ReleaseInfo.getDefaultInstance());
        }
        /**
         * <pre>
         * release info
         * </pre>
         *
         * <code>repeated .proto.ReleaseInfo releases = 11;</code>
         */
        public java.util.List<proto.Info.ReleaseInfo.Builder> 
             getReleasesBuilderList() {
          return getReleasesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            proto.Info.ReleaseInfo, proto.Info.ReleaseInfo.Builder, proto.Info.ReleaseInfoOrBuilder> 
            getReleasesFieldBuilder() {
          if (releasesBuilder_ == null) {
            releasesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                proto.Info.ReleaseInfo, proto.Info.ReleaseInfo.Builder, proto.Info.ReleaseInfoOrBuilder>(
                    releases_,
                    ((bitField0_ & 0x00000400) == 0x00000400),
                    getParentForChildren(),
                    isClean());
            releases_ = null;
          }
          return releasesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:proto.PackageInfo.Metadata)
      }

      // @@protoc_insertion_point(class_scope:proto.PackageInfo.Metadata)
      private static final proto.Info.PackageInfo.Metadata DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new proto.Info.PackageInfo.Metadata();
      }

      public static proto.Info.PackageInfo.Metadata getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

      public static com.google.protobuf.Parser<Metadata> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public proto.Info.PackageInfo.Metadata getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int INFO_FIELD_NUMBER = 1;
    private proto.Info.PackageInfo.Metadata info_;
    /**
     * <code>.proto.PackageInfo.Metadata info = 1;</code>
     */
    public boolean hasInfo() {
      return info_ != null;
    }
    /**
     * <code>.proto.PackageInfo.Metadata info = 1;</code>
     */
    public proto.Info.PackageInfo.Metadata getInfo() {
      return info_ == null ? proto.Info.PackageInfo.Metadata.getDefaultInstance() : info_;
    }
    /**
     * <code>.proto.PackageInfo.Metadata info = 1;</code>
     */
    public proto.Info.PackageInfo.MetadataOrBuilder getInfoOrBuilder() {
      return getInfo();
    }

    public static final int DEPENDENCIES_FIELD_NUMBER = 2;
    private java.util.List<proto.Info.PackageInfo.Metadata> dependencies_;
    /**
     * <pre>
     * Runtime dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
     */
    public java.util.List<proto.Info.PackageInfo.Metadata> getDependenciesList() {
      return dependencies_;
    }
    /**
     * <pre>
     * Runtime dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
     */
    public java.util.List<? extends proto.Info.PackageInfo.MetadataOrBuilder> 
        getDependenciesOrBuilderList() {
      return dependencies_;
    }
    /**
     * <pre>
     * Runtime dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
     */
    public int getDependenciesCount() {
      return dependencies_.size();
    }
    /**
     * <pre>
     * Runtime dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
     */
    public proto.Info.PackageInfo.Metadata getDependencies(int index) {
      return dependencies_.get(index);
    }
    /**
     * <pre>
     * Runtime dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
     */
    public proto.Info.PackageInfo.MetadataOrBuilder getDependenciesOrBuilder(
        int index) {
      return dependencies_.get(index);
    }

    public static final int DEV_DEPENDENCIES_FIELD_NUMBER = 3;
    private java.util.List<proto.Info.PackageInfo.Metadata> devDependencies_;
    /**
     * <pre>
     * Development dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
     */
    public java.util.List<proto.Info.PackageInfo.Metadata> getDevDependenciesList() {
      return devDependencies_;
    }
    /**
     * <pre>
     * Development dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
     */
    public java.util.List<? extends proto.Info.PackageInfo.MetadataOrBuilder> 
        getDevDependenciesOrBuilderList() {
      return devDependencies_;
    }
    /**
     * <pre>
     * Development dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
     */
    public int getDevDependenciesCount() {
      return devDependencies_.size();
    }
    /**
     * <pre>
     * Development dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
     */
    public proto.Info.PackageInfo.Metadata getDevDependencies(int index) {
      return devDependencies_.get(index);
    }
    /**
     * <pre>
     * Development dependencies
     * </pre>
     *
     * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
     */
    public proto.Info.PackageInfo.MetadataOrBuilder getDevDependenciesOrBuilder(
        int index) {
      return devDependencies_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (info_ != null) {
        output.writeMessage(1, getInfo());
      }
      for (int i = 0; i < dependencies_.size(); i++) {
        output.writeMessage(2, dependencies_.get(i));
      }
      for (int i = 0; i < devDependencies_.size(); i++) {
        output.writeMessage(3, devDependencies_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (info_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getInfo());
      }
      for (int i = 0; i < dependencies_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, dependencies_.get(i));
      }
      for (int i = 0; i < devDependencies_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, devDependencies_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof proto.Info.PackageInfo)) {
        return super.equals(obj);
      }
      proto.Info.PackageInfo other = (proto.Info.PackageInfo) obj;

      boolean result = true;
      result = result && (hasInfo() == other.hasInfo());
      if (hasInfo()) {
        result = result && getInfo()
            .equals(other.getInfo());
      }
      result = result && getDependenciesList()
          .equals(other.getDependenciesList());
      result = result && getDevDependenciesList()
          .equals(other.getDevDependenciesList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasInfo()) {
        hash = (37 * hash) + INFO_FIELD_NUMBER;
        hash = (53 * hash) + getInfo().hashCode();
      }
      if (getDependenciesCount() > 0) {
        hash = (37 * hash) + DEPENDENCIES_FIELD_NUMBER;
        hash = (53 * hash) + getDependenciesList().hashCode();
      }
      if (getDevDependenciesCount() > 0) {
        hash = (37 * hash) + DEV_DEPENDENCIES_FIELD_NUMBER;
        hash = (53 * hash) + getDevDependenciesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static proto.Info.PackageInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.PackageInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.PackageInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.PackageInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.PackageInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static proto.Info.PackageInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static proto.Info.PackageInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static proto.Info.PackageInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static proto.Info.PackageInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static proto.Info.PackageInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static proto.Info.PackageInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static proto.Info.PackageInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(proto.Info.PackageInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.PackageInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.PackageInfo)
        proto.Info.PackageInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return proto.Info.internal_static_proto_PackageInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return proto.Info.internal_static_proto_PackageInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                proto.Info.PackageInfo.class, proto.Info.PackageInfo.Builder.class);
      }

      // Construct using proto.Info.PackageInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getDependenciesFieldBuilder();
          getDevDependenciesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (infoBuilder_ == null) {
          info_ = null;
        } else {
          info_ = null;
          infoBuilder_ = null;
        }
        if (dependenciesBuilder_ == null) {
          dependencies_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          dependenciesBuilder_.clear();
        }
        if (devDependenciesBuilder_ == null) {
          devDependencies_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          devDependenciesBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return proto.Info.internal_static_proto_PackageInfo_descriptor;
      }

      @java.lang.Override
      public proto.Info.PackageInfo getDefaultInstanceForType() {
        return proto.Info.PackageInfo.getDefaultInstance();
      }

      @java.lang.Override
      public proto.Info.PackageInfo build() {
        proto.Info.PackageInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public proto.Info.PackageInfo buildPartial() {
        proto.Info.PackageInfo result = new proto.Info.PackageInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (infoBuilder_ == null) {
          result.info_ = info_;
        } else {
          result.info_ = infoBuilder_.build();
        }
        if (dependenciesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            dependencies_ = java.util.Collections.unmodifiableList(dependencies_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.dependencies_ = dependencies_;
        } else {
          result.dependencies_ = dependenciesBuilder_.build();
        }
        if (devDependenciesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            devDependencies_ = java.util.Collections.unmodifiableList(devDependencies_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.devDependencies_ = devDependencies_;
        } else {
          result.devDependencies_ = devDependenciesBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof proto.Info.PackageInfo) {
          return mergeFrom((proto.Info.PackageInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(proto.Info.PackageInfo other) {
        if (other == proto.Info.PackageInfo.getDefaultInstance()) return this;
        if (other.hasInfo()) {
          mergeInfo(other.getInfo());
        }
        if (dependenciesBuilder_ == null) {
          if (!other.dependencies_.isEmpty()) {
            if (dependencies_.isEmpty()) {
              dependencies_ = other.dependencies_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureDependenciesIsMutable();
              dependencies_.addAll(other.dependencies_);
            }
            onChanged();
          }
        } else {
          if (!other.dependencies_.isEmpty()) {
            if (dependenciesBuilder_.isEmpty()) {
              dependenciesBuilder_.dispose();
              dependenciesBuilder_ = null;
              dependencies_ = other.dependencies_;
              bitField0_ = (bitField0_ & ~0x00000002);
              dependenciesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDependenciesFieldBuilder() : null;
            } else {
              dependenciesBuilder_.addAllMessages(other.dependencies_);
            }
          }
        }
        if (devDependenciesBuilder_ == null) {
          if (!other.devDependencies_.isEmpty()) {
            if (devDependencies_.isEmpty()) {
              devDependencies_ = other.devDependencies_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureDevDependenciesIsMutable();
              devDependencies_.addAll(other.devDependencies_);
            }
            onChanged();
          }
        } else {
          if (!other.devDependencies_.isEmpty()) {
            if (devDependenciesBuilder_.isEmpty()) {
              devDependenciesBuilder_.dispose();
              devDependenciesBuilder_ = null;
              devDependencies_ = other.devDependencies_;
              bitField0_ = (bitField0_ & ~0x00000004);
              devDependenciesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDevDependenciesFieldBuilder() : null;
            } else {
              devDependenciesBuilder_.addAllMessages(other.devDependencies_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        proto.Info.PackageInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (proto.Info.PackageInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private proto.Info.PackageInfo.Metadata info_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          proto.Info.PackageInfo.Metadata, proto.Info.PackageInfo.Metadata.Builder, proto.Info.PackageInfo.MetadataOrBuilder> infoBuilder_;
      /**
       * <code>.proto.PackageInfo.Metadata info = 1;</code>
       */
      public boolean hasInfo() {
        return infoBuilder_ != null || info_ != null;
      }
      /**
       * <code>.proto.PackageInfo.Metadata info = 1;</code>
       */
      public proto.Info.PackageInfo.Metadata getInfo() {
        if (infoBuilder_ == null) {
          return info_ == null ? proto.Info.PackageInfo.Metadata.getDefaultInstance() : info_;
        } else {
          return infoBuilder_.getMessage();
        }
      }
      /**
       * <code>.proto.PackageInfo.Metadata info = 1;</code>
       */
      public Builder setInfo(proto.Info.PackageInfo.Metadata value) {
        if (infoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          info_ = value;
          onChanged();
        } else {
          infoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.proto.PackageInfo.Metadata info = 1;</code>
       */
      public Builder setInfo(
          proto.Info.PackageInfo.Metadata.Builder builderForValue) {
        if (infoBuilder_ == null) {
          info_ = builderForValue.build();
          onChanged();
        } else {
          infoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.proto.PackageInfo.Metadata info = 1;</code>
       */
      public Builder mergeInfo(proto.Info.PackageInfo.Metadata value) {
        if (infoBuilder_ == null) {
          if (info_ != null) {
            info_ =
              proto.Info.PackageInfo.Metadata.newBuilder(info_).mergeFrom(value).buildPartial();
          } else {
            info_ = value;
          }
          onChanged();
        } else {
          infoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.proto.PackageInfo.Metadata info = 1;</code>
       */
      public Builder clearInfo() {
        if (infoBuilder_ == null) {
          info_ = null;
          onChanged();
        } else {
          info_ = null;
          infoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.proto.PackageInfo.Metadata info = 1;</code>
       */
      public proto.Info.PackageInfo.Metadata.Builder getInfoBuilder() {
        
        onChanged();
        return getInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.PackageInfo.Metadata info = 1;</code>
       */
      public proto.Info.PackageInfo.MetadataOrBuilder getInfoOrBuilder() {
        if (infoBuilder_ != null) {
          return infoBuilder_.getMessageOrBuilder();
        } else {
          return info_ == null ?
              proto.Info.PackageInfo.Metadata.getDefaultInstance() : info_;
        }
      }
      /**
       * <code>.proto.PackageInfo.Metadata info = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          proto.Info.PackageInfo.Metadata, proto.Info.PackageInfo.Metadata.Builder, proto.Info.PackageInfo.MetadataOrBuilder> 
          getInfoFieldBuilder() {
        if (infoBuilder_ == null) {
          infoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              proto.Info.PackageInfo.Metadata, proto.Info.PackageInfo.Metadata.Builder, proto.Info.PackageInfo.MetadataOrBuilder>(
                  getInfo(),
                  getParentForChildren(),
                  isClean());
          info_ = null;
        }
        return infoBuilder_;
      }

      private java.util.List<proto.Info.PackageInfo.Metadata> dependencies_ =
        java.util.Collections.emptyList();
      private void ensureDependenciesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          dependencies_ = new java.util.ArrayList<proto.Info.PackageInfo.Metadata>(dependencies_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          proto.Info.PackageInfo.Metadata, proto.Info.PackageInfo.Metadata.Builder, proto.Info.PackageInfo.MetadataOrBuilder> dependenciesBuilder_;

      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public java.util.List<proto.Info.PackageInfo.Metadata> getDependenciesList() {
        if (dependenciesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dependencies_);
        } else {
          return dependenciesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public int getDependenciesCount() {
        if (dependenciesBuilder_ == null) {
          return dependencies_.size();
        } else {
          return dependenciesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public proto.Info.PackageInfo.Metadata getDependencies(int index) {
        if (dependenciesBuilder_ == null) {
          return dependencies_.get(index);
        } else {
          return dependenciesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public Builder setDependencies(
          int index, proto.Info.PackageInfo.Metadata value) {
        if (dependenciesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDependenciesIsMutable();
          dependencies_.set(index, value);
          onChanged();
        } else {
          dependenciesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public Builder setDependencies(
          int index, proto.Info.PackageInfo.Metadata.Builder builderForValue) {
        if (dependenciesBuilder_ == null) {
          ensureDependenciesIsMutable();
          dependencies_.set(index, builderForValue.build());
          onChanged();
        } else {
          dependenciesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public Builder addDependencies(proto.Info.PackageInfo.Metadata value) {
        if (dependenciesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDependenciesIsMutable();
          dependencies_.add(value);
          onChanged();
        } else {
          dependenciesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public Builder addDependencies(
          int index, proto.Info.PackageInfo.Metadata value) {
        if (dependenciesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDependenciesIsMutable();
          dependencies_.add(index, value);
          onChanged();
        } else {
          dependenciesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public Builder addDependencies(
          proto.Info.PackageInfo.Metadata.Builder builderForValue) {
        if (dependenciesBuilder_ == null) {
          ensureDependenciesIsMutable();
          dependencies_.add(builderForValue.build());
          onChanged();
        } else {
          dependenciesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public Builder addDependencies(
          int index, proto.Info.PackageInfo.Metadata.Builder builderForValue) {
        if (dependenciesBuilder_ == null) {
          ensureDependenciesIsMutable();
          dependencies_.add(index, builderForValue.build());
          onChanged();
        } else {
          dependenciesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public Builder addAllDependencies(
          java.lang.Iterable<? extends proto.Info.PackageInfo.Metadata> values) {
        if (dependenciesBuilder_ == null) {
          ensureDependenciesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dependencies_);
          onChanged();
        } else {
          dependenciesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public Builder clearDependencies() {
        if (dependenciesBuilder_ == null) {
          dependencies_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          dependenciesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public Builder removeDependencies(int index) {
        if (dependenciesBuilder_ == null) {
          ensureDependenciesIsMutable();
          dependencies_.remove(index);
          onChanged();
        } else {
          dependenciesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public proto.Info.PackageInfo.Metadata.Builder getDependenciesBuilder(
          int index) {
        return getDependenciesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public proto.Info.PackageInfo.MetadataOrBuilder getDependenciesOrBuilder(
          int index) {
        if (dependenciesBuilder_ == null) {
          return dependencies_.get(index);  } else {
          return dependenciesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public java.util.List<? extends proto.Info.PackageInfo.MetadataOrBuilder> 
           getDependenciesOrBuilderList() {
        if (dependenciesBuilder_ != null) {
          return dependenciesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dependencies_);
        }
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public proto.Info.PackageInfo.Metadata.Builder addDependenciesBuilder() {
        return getDependenciesFieldBuilder().addBuilder(
            proto.Info.PackageInfo.Metadata.getDefaultInstance());
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public proto.Info.PackageInfo.Metadata.Builder addDependenciesBuilder(
          int index) {
        return getDependenciesFieldBuilder().addBuilder(
            index, proto.Info.PackageInfo.Metadata.getDefaultInstance());
      }
      /**
       * <pre>
       * Runtime dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dependencies = 2;</code>
       */
      public java.util.List<proto.Info.PackageInfo.Metadata.Builder> 
           getDependenciesBuilderList() {
        return getDependenciesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          proto.Info.PackageInfo.Metadata, proto.Info.PackageInfo.Metadata.Builder, proto.Info.PackageInfo.MetadataOrBuilder> 
          getDependenciesFieldBuilder() {
        if (dependenciesBuilder_ == null) {
          dependenciesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              proto.Info.PackageInfo.Metadata, proto.Info.PackageInfo.Metadata.Builder, proto.Info.PackageInfo.MetadataOrBuilder>(
                  dependencies_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          dependencies_ = null;
        }
        return dependenciesBuilder_;
      }

      private java.util.List<proto.Info.PackageInfo.Metadata> devDependencies_ =
        java.util.Collections.emptyList();
      private void ensureDevDependenciesIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          devDependencies_ = new java.util.ArrayList<proto.Info.PackageInfo.Metadata>(devDependencies_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          proto.Info.PackageInfo.Metadata, proto.Info.PackageInfo.Metadata.Builder, proto.Info.PackageInfo.MetadataOrBuilder> devDependenciesBuilder_;

      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public java.util.List<proto.Info.PackageInfo.Metadata> getDevDependenciesList() {
        if (devDependenciesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(devDependencies_);
        } else {
          return devDependenciesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public int getDevDependenciesCount() {
        if (devDependenciesBuilder_ == null) {
          return devDependencies_.size();
        } else {
          return devDependenciesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public proto.Info.PackageInfo.Metadata getDevDependencies(int index) {
        if (devDependenciesBuilder_ == null) {
          return devDependencies_.get(index);
        } else {
          return devDependenciesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public Builder setDevDependencies(
          int index, proto.Info.PackageInfo.Metadata value) {
        if (devDependenciesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDevDependenciesIsMutable();
          devDependencies_.set(index, value);
          onChanged();
        } else {
          devDependenciesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public Builder setDevDependencies(
          int index, proto.Info.PackageInfo.Metadata.Builder builderForValue) {
        if (devDependenciesBuilder_ == null) {
          ensureDevDependenciesIsMutable();
          devDependencies_.set(index, builderForValue.build());
          onChanged();
        } else {
          devDependenciesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public Builder addDevDependencies(proto.Info.PackageInfo.Metadata value) {
        if (devDependenciesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDevDependenciesIsMutable();
          devDependencies_.add(value);
          onChanged();
        } else {
          devDependenciesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public Builder addDevDependencies(
          int index, proto.Info.PackageInfo.Metadata value) {
        if (devDependenciesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDevDependenciesIsMutable();
          devDependencies_.add(index, value);
          onChanged();
        } else {
          devDependenciesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public Builder addDevDependencies(
          proto.Info.PackageInfo.Metadata.Builder builderForValue) {
        if (devDependenciesBuilder_ == null) {
          ensureDevDependenciesIsMutable();
          devDependencies_.add(builderForValue.build());
          onChanged();
        } else {
          devDependenciesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public Builder addDevDependencies(
          int index, proto.Info.PackageInfo.Metadata.Builder builderForValue) {
        if (devDependenciesBuilder_ == null) {
          ensureDevDependenciesIsMutable();
          devDependencies_.add(index, builderForValue.build());
          onChanged();
        } else {
          devDependenciesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public Builder addAllDevDependencies(
          java.lang.Iterable<? extends proto.Info.PackageInfo.Metadata> values) {
        if (devDependenciesBuilder_ == null) {
          ensureDevDependenciesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, devDependencies_);
          onChanged();
        } else {
          devDependenciesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public Builder clearDevDependencies() {
        if (devDependenciesBuilder_ == null) {
          devDependencies_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          devDependenciesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public Builder removeDevDependencies(int index) {
        if (devDependenciesBuilder_ == null) {
          ensureDevDependenciesIsMutable();
          devDependencies_.remove(index);
          onChanged();
        } else {
          devDependenciesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public proto.Info.PackageInfo.Metadata.Builder getDevDependenciesBuilder(
          int index) {
        return getDevDependenciesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public proto.Info.PackageInfo.MetadataOrBuilder getDevDependenciesOrBuilder(
          int index) {
        if (devDependenciesBuilder_ == null) {
          return devDependencies_.get(index);  } else {
          return devDependenciesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public java.util.List<? extends proto.Info.PackageInfo.MetadataOrBuilder> 
           getDevDependenciesOrBuilderList() {
        if (devDependenciesBuilder_ != null) {
          return devDependenciesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(devDependencies_);
        }
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public proto.Info.PackageInfo.Metadata.Builder addDevDependenciesBuilder() {
        return getDevDependenciesFieldBuilder().addBuilder(
            proto.Info.PackageInfo.Metadata.getDefaultInstance());
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public proto.Info.PackageInfo.Metadata.Builder addDevDependenciesBuilder(
          int index) {
        return getDevDependenciesFieldBuilder().addBuilder(
            index, proto.Info.PackageInfo.Metadata.getDefaultInstance());
      }
      /**
       * <pre>
       * Development dependencies
       * </pre>
       *
       * <code>repeated .proto.PackageInfo.Metadata dev_dependencies = 3;</code>
       */
      public java.util.List<proto.Info.PackageInfo.Metadata.Builder> 
           getDevDependenciesBuilderList() {
        return getDevDependenciesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          proto.Info.PackageInfo.Metadata, proto.Info.PackageInfo.Metadata.Builder, proto.Info.PackageInfo.MetadataOrBuilder> 
          getDevDependenciesFieldBuilder() {
        if (devDependenciesBuilder_ == null) {
          devDependenciesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              proto.Info.PackageInfo.Metadata, proto.Info.PackageInfo.Metadata.Builder, proto.Info.PackageInfo.MetadataOrBuilder>(
                  devDependencies_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          devDependencies_ = null;
        }
        return devDependenciesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:proto.PackageInfo)
    }

    // @@protoc_insertion_point(class_scope:proto.PackageInfo)
    private static final proto.Info.PackageInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new proto.Info.PackageInfo();
    }

    public static proto.Info.PackageInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<PackageInfo> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public proto.Info.PackageInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ReleaseInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_proto_ReleaseInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_RepositoryInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_proto_RepositoryInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ExecuteInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_proto_ExecuteInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_PackageInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_proto_PackageInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_PackageInfo_Metadata_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_proto_PackageInfo_Metadata_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\ninfo.proto\022\005proto\".\n\013ReleaseInfo\022\014\n\004na" +
      "me\030\001 \001(\t\022\021\n\ttimestamp\030\002 \001(\t\"+\n\016Repositor" +
      "yInfo\022\013\n\003url\030\001 \001(\t\022\014\n\004type\030\002 \001(\t\".\n\013Exec" +
      "uteInfo\022\016\n\006target\030\001 \001(\t\022\017\n\007command\030\002 \001(\t" +
      "\"\304\003\n\013PackageInfo\022)\n\004info\030\001 \001(\0132\033.proto.P" +
      "ackageInfo.Metadata\0221\n\014dependencies\030\002 \003(" +
      "\0132\033.proto.PackageInfo.Metadata\0225\n\020dev_de" +
      "pendencies\030\003 \003(\0132\033.proto.PackageInfo.Met" +
      "adata\032\237\002\n\010Metadata\022\024\n\014package_name\030\001 \001(\t" +
      "\022\027\n\017package_version\030\002 \001(\t\022\r\n\005email\030\003 \001(\t" +
      "\022\020\n\010homepage\030\004 \001(\t\022\017\n\007license\030\005 \001(\t\022)\n\nr" +
      "epository\030\006 \001(\0132\025.proto.RepositoryInfo\022%" +
      "\n\texec_jobs\030\007 \003(\0132\022.proto.ExecuteInfo\022\017\n" +
      "\007authors\030\010 \003(\t\022\024\n\014contributors\030\t \003(\t\022\023\n\013" +
      "maintainers\030\n \003(\t\022$\n\010releases\030\013 \003(\0132\022.pr" +
      "oto.ReleaseInfob\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_proto_ReleaseInfo_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_proto_ReleaseInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_proto_ReleaseInfo_descriptor,
        new java.lang.String[] { "Name", "Timestamp", });
    internal_static_proto_RepositoryInfo_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_proto_RepositoryInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_proto_RepositoryInfo_descriptor,
        new java.lang.String[] { "Url", "Type", });
    internal_static_proto_ExecuteInfo_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_proto_ExecuteInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_proto_ExecuteInfo_descriptor,
        new java.lang.String[] { "Target", "Command", });
    internal_static_proto_PackageInfo_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_proto_PackageInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_proto_PackageInfo_descriptor,
        new java.lang.String[] { "Info", "Dependencies", "DevDependencies", });
    internal_static_proto_PackageInfo_Metadata_descriptor =
      internal_static_proto_PackageInfo_descriptor.getNestedTypes().get(0);
    internal_static_proto_PackageInfo_Metadata_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_proto_PackageInfo_Metadata_descriptor,
        new java.lang.String[] { "PackageName", "PackageVersion", "Email", "Homepage", "License", "Repository", "ExecJobs", "Authors", "Contributors", "Maintainers", "Releases", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
