// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: bazel-out/local-fastbuild/bin/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/libbuild_event_stream_java_proto_srcjar.srcjar.preprocessed/build_event_stream.proto

package com.google.devtools.build.lib.buildeventstream;

public final class BuildEventStreamProtos {
  private BuildEventStreamProtos() {}
  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 BuildEventIdOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId getUnknown();
    /**
     * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventIdOrBuilder getUnknownOrBuilder();

    /**
     * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId getProgress();
    /**
     * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressIdOrBuilder getProgressOrBuilder();

    /**
     * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId getStarted();
    /**
     * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedIdOrBuilder getStartedOrBuilder();

    /**
     * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId getPattern();
    /**
     * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder getPatternOrBuilder();

    /**
     * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId getTargetCompleted();
    /**
     * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedIdOrBuilder getTargetCompletedOrBuilder();

    /**
     * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId getActionCompleted();
    /**
     * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedIdOrBuilder getActionCompletedOrBuilder();

    /**
     * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId getTestSummary();
    /**
     * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryIdOrBuilder getTestSummaryOrBuilder();

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.IdCase getIdCase();
  }
  /**
   * <pre>
   * Identifier for a build event. It is deliberately structured to also provide
   * information about which build target etc the event is related to.
   * Events are chained via the event id as follows: each event has an id and a
   * set of ids of children events such that apart from the initial event each
   * event has an id that is mentioned as child id in an earlier event and a build
   * invocation is complete if and only if all direct and indirect children of the
   * initial event have been posted.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.BuildEventId}
   */
  public  static final class BuildEventId extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId)
      BuildEventIdOrBuilder {
    // Use BuildEventId.newBuilder() to construct.
    private BuildEventId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BuildEventId() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private BuildEventId(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.Builder subBuilder = null;
              if (idCase_ == 1) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 1;
              break;
            }
            case 18: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.Builder subBuilder = null;
              if (idCase_ == 2) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 2;
              break;
            }
            case 26: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.Builder subBuilder = null;
              if (idCase_ == 3) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 3;
              break;
            }
            case 34: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder subBuilder = null;
              if (idCase_ == 4) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 4;
              break;
            }
            case 42: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.Builder subBuilder = null;
              if (idCase_ == 5) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 5;
              break;
            }
            case 50: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.Builder subBuilder = null;
              if (idCase_ == 6) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 6;
              break;
            }
            case 58: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.Builder subBuilder = null;
              if (idCase_ == 7) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 7;
              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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder.class);
    }

    public interface UnknownBuildEventIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.UnknownBuildEventId)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional string details = 1;</code>
       */
      java.lang.String getDetails();
      /**
       * <code>optional string details = 1;</code>
       */
      com.google.protobuf.ByteString
          getDetailsBytes();
    }
    /**
     * <pre>
     * Generic identifier for a build event. This is the default type of
     * BuildEventId, but should not be used outside testing; nevertheless,
     * tools should handle build events with this kind of id gracefully.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.UnknownBuildEventId}
     */
    public  static final class UnknownBuildEventId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.UnknownBuildEventId)
        UnknownBuildEventIdOrBuilder {
      // Use UnknownBuildEventId.newBuilder() to construct.
      private UnknownBuildEventId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private UnknownBuildEventId() {
        details_ = "";
      }

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

                details_ = s;
                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnknownBuildEventId_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnknownBuildEventId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.Builder.class);
      }

      public static final int DETAILS_FIELD_NUMBER = 1;
      private volatile java.lang.Object details_;
      /**
       * <code>optional string details = 1;</code>
       */
      public java.lang.String getDetails() {
        java.lang.Object ref = details_;
        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();
          details_ = s;
          return s;
        }
      }
      /**
       * <code>optional string details = 1;</code>
       */
      public com.google.protobuf.ByteString
          getDetailsBytes() {
        java.lang.Object ref = details_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          details_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getDetailsBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, details_);
        }
      }

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

        size = 0;
        if (!getDetailsBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, details_);
        }
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) obj;

        boolean result = true;
        result = result && getDetails()
            .equals(other.getDetails());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        hash = (37 * hash) + DETAILS_FIELD_NUMBER;
        hash = (53 * hash) + getDetails().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      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;
      }
      /**
       * <pre>
       * Generic identifier for a build event. This is the default type of
       * BuildEventId, but should not be used outside testing; nevertheless,
       * tools should handle build events with this kind of id gracefully.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.UnknownBuildEventId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.UnknownBuildEventId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnknownBuildEventId_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnknownBuildEventId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.Builder.class);
        }

        // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          details_ = "";

          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnknownBuildEventId_descriptor;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.getDefaultInstance();
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId(this);
          result.details_ = details_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) {
            return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.getDefaultInstance()) return this;
          if (!other.getDetails().isEmpty()) {
            details_ = other.details_;
            onChanged();
          }
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private java.lang.Object details_ = "";
        /**
         * <code>optional string details = 1;</code>
         */
        public java.lang.String getDetails() {
          java.lang.Object ref = details_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            details_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string details = 1;</code>
         */
        public com.google.protobuf.ByteString
            getDetailsBytes() {
          java.lang.Object ref = details_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            details_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string details = 1;</code>
         */
        public Builder setDetails(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          details_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string details = 1;</code>
         */
        public Builder clearDetails() {
          
          details_ = getDefaultInstance().getDetails();
          onChanged();
          return this;
        }
        /**
         * <code>optional string details = 1;</code>
         */
        public Builder setDetailsBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          details_ = value;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildEventId.UnknownBuildEventId)
      }

      // @@protoc_insertion_point(class_scope:build_event_stream.BuildEventId.UnknownBuildEventId)
      private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId();
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ProgressIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.ProgressId)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Unique identifier. No assumption should be made about how the ids are
       * assigned; the only meaningful operation on this field is test for
       * equality.
       * </pre>
       *
       * <code>optional int32 opaque_count = 1;</code>
       */
      int getOpaqueCount();
    }
    /**
     * <pre>
     * Identifier of an event reporting progress. Those events are also used to
     * chain in events that come early.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.ProgressId}
     */
    public  static final class ProgressId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.ProgressId)
        ProgressIdOrBuilder {
      // Use ProgressId.newBuilder() to construct.
      private ProgressId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ProgressId() {
        opaqueCount_ = 0;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private ProgressId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 8: {

                opaqueCount_ = input.readInt32();
                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ProgressId_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ProgressId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.Builder.class);
      }

      public static final int OPAQUE_COUNT_FIELD_NUMBER = 1;
      private int opaqueCount_;
      /**
       * <pre>
       * Unique identifier. No assumption should be made about how the ids are
       * assigned; the only meaningful operation on this field is test for
       * equality.
       * </pre>
       *
       * <code>optional int32 opaque_count = 1;</code>
       */
      public int getOpaqueCount() {
        return opaqueCount_;
      }

      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (opaqueCount_ != 0) {
          output.writeInt32(1, opaqueCount_);
        }
      }

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

        size = 0;
        if (opaqueCount_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, opaqueCount_);
        }
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) obj;

        boolean result = true;
        result = result && (getOpaqueCount()
            == other.getOpaqueCount());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        hash = (37 * hash) + OPAQUE_COUNT_FIELD_NUMBER;
        hash = (53 * hash) + getOpaqueCount();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      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;
      }
      /**
       * <pre>
       * Identifier of an event reporting progress. Those events are also used to
       * chain in events that come early.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.ProgressId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.ProgressId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ProgressId_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ProgressId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.Builder.class);
        }

        // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          opaqueCount_ = 0;

          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ProgressId_descriptor;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.getDefaultInstance();
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId(this);
          result.opaqueCount_ = opaqueCount_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) {
            return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.getDefaultInstance()) return this;
          if (other.getOpaqueCount() != 0) {
            setOpaqueCount(other.getOpaqueCount());
          }
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private int opaqueCount_ ;
        /**
         * <pre>
         * Unique identifier. No assumption should be made about how the ids are
         * assigned; the only meaningful operation on this field is test for
         * equality.
         * </pre>
         *
         * <code>optional int32 opaque_count = 1;</code>
         */
        public int getOpaqueCount() {
          return opaqueCount_;
        }
        /**
         * <pre>
         * Unique identifier. No assumption should be made about how the ids are
         * assigned; the only meaningful operation on this field is test for
         * equality.
         * </pre>
         *
         * <code>optional int32 opaque_count = 1;</code>
         */
        public Builder setOpaqueCount(int value) {
          
          opaqueCount_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Unique identifier. No assumption should be made about how the ids are
         * assigned; the only meaningful operation on this field is test for
         * equality.
         * </pre>
         *
         * <code>optional int32 opaque_count = 1;</code>
         */
        public Builder clearOpaqueCount() {
          
          opaqueCount_ = 0;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildEventId.ProgressId)
      }

      // @@protoc_insertion_point(class_scope:build_event_stream.BuildEventId.ProgressId)
      private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId();
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface BuildStartedIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.BuildStartedId)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Identifier of an event indicating the beginning of a build; this will
     * normally be the first event.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.BuildStartedId}
     */
    public  static final class BuildStartedId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.BuildStartedId)
        BuildStartedIdOrBuilder {
      // Use BuildStartedId.newBuilder() to construct.
      private BuildStartedId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private BuildStartedId() {
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private BuildStartedId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildStartedId_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildStartedId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) obj;

        boolean result = true;
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      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;
      }
      /**
       * <pre>
       * Identifier of an event indicating the beginning of a build; this will
       * normally be the first event.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.BuildStartedId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.BuildStartedId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildStartedId_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildStartedId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.Builder.class);
        }

        // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildStartedId_descriptor;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.getDefaultInstance();
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId(this);
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) {
            return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.getDefaultInstance()) return this;
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildEventId.BuildStartedId)
      }

      // @@protoc_insertion_point(class_scope:build_event_stream.BuildEventId.BuildStartedId)
      private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId();
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface PatternExpandedIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.PatternExpandedId)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>repeated string pattern = 1;</code>
       */
      java.util.List<java.lang.String>
          getPatternList();
      /**
       * <code>repeated string pattern = 1;</code>
       */
      int getPatternCount();
      /**
       * <code>repeated string pattern = 1;</code>
       */
      java.lang.String getPattern(int index);
      /**
       * <code>repeated string pattern = 1;</code>
       */
      com.google.protobuf.ByteString
          getPatternBytes(int index);
    }
    /**
     * <pre>
     * Identifier of an event indicating that a target pattern has been expanded
     * further.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.PatternExpandedId}
     */
    public  static final class PatternExpandedId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.PatternExpandedId)
        PatternExpandedIdOrBuilder {
      // Use PatternExpandedId.newBuilder() to construct.
      private PatternExpandedId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PatternExpandedId() {
        pattern_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private PatternExpandedId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  pattern_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                pattern_.add(s);
                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_ & 0x00000001) == 0x00000001)) {
            pattern_ = pattern_.getUnmodifiableView();
          }
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_PatternExpandedId_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_PatternExpandedId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder.class);
      }

      public static final int PATTERN_FIELD_NUMBER = 1;
      private com.google.protobuf.LazyStringList pattern_;
      /**
       * <code>repeated string pattern = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getPatternList() {
        return pattern_;
      }
      /**
       * <code>repeated string pattern = 1;</code>
       */
      public int getPatternCount() {
        return pattern_.size();
      }
      /**
       * <code>repeated string pattern = 1;</code>
       */
      public java.lang.String getPattern(int index) {
        return pattern_.get(index);
      }
      /**
       * <code>repeated string pattern = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPatternBytes(int index) {
        return pattern_.getByteString(index);
      }

      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < pattern_.size(); i++) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, pattern_.getRaw(i));
        }
      }

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

        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < pattern_.size(); i++) {
            dataSize += computeStringSizeNoTag(pattern_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getPatternList().size();
        }
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) obj;

        boolean result = true;
        result = result && getPatternList()
            .equals(other.getPatternList());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        if (getPatternCount() > 0) {
          hash = (37 * hash) + PATTERN_FIELD_NUMBER;
          hash = (53 * hash) + getPatternList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      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;
      }
      /**
       * <pre>
       * Identifier of an event indicating that a target pattern has been expanded
       * further.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.PatternExpandedId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.PatternExpandedId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_PatternExpandedId_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_PatternExpandedId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder.class);
        }

        // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          pattern_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_PatternExpandedId_descriptor;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId(this);
          int from_bitField0_ = bitField0_;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            pattern_ = pattern_.getUnmodifiableView();
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.pattern_ = pattern_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) {
            return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance()) return this;
          if (!other.pattern_.isEmpty()) {
            if (pattern_.isEmpty()) {
              pattern_ = other.pattern_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePatternIsMutable();
              pattern_.addAll(other.pattern_);
            }
            onChanged();
          }
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private com.google.protobuf.LazyStringList pattern_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        private void ensurePatternIsMutable() {
          if (!((bitField0_ & 0x00000001) == 0x00000001)) {
            pattern_ = new com.google.protobuf.LazyStringArrayList(pattern_);
            bitField0_ |= 0x00000001;
           }
        }
        /**
         * <code>repeated string pattern = 1;</code>
         */
        public com.google.protobuf.ProtocolStringList
            getPatternList() {
          return pattern_.getUnmodifiableView();
        }
        /**
         * <code>repeated string pattern = 1;</code>
         */
        public int getPatternCount() {
          return pattern_.size();
        }
        /**
         * <code>repeated string pattern = 1;</code>
         */
        public java.lang.String getPattern(int index) {
          return pattern_.get(index);
        }
        /**
         * <code>repeated string pattern = 1;</code>
         */
        public com.google.protobuf.ByteString
            getPatternBytes(int index) {
          return pattern_.getByteString(index);
        }
        /**
         * <code>repeated string pattern = 1;</code>
         */
        public Builder setPattern(
            int index, java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensurePatternIsMutable();
          pattern_.set(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string pattern = 1;</code>
         */
        public Builder addPattern(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensurePatternIsMutable();
          pattern_.add(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string pattern = 1;</code>
         */
        public Builder addAllPattern(
            java.lang.Iterable<java.lang.String> values) {
          ensurePatternIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, pattern_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string pattern = 1;</code>
         */
        public Builder clearPattern() {
          pattern_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string pattern = 1;</code>
         */
        public Builder addPatternBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          ensurePatternIsMutable();
          pattern_.add(value);
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildEventId.PatternExpandedId)
      }

      // @@protoc_insertion_point(class_scope:build_event_stream.BuildEventId.PatternExpandedId)
      private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId();
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface TargetCompletedIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.TargetCompletedId)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional string label = 1;</code>
       */
      java.lang.String getLabel();
      /**
       * <code>optional string label = 1;</code>
       */
      com.google.protobuf.ByteString
          getLabelBytes();
    }
    /**
     * <pre>
     * Identifier of an event indicating that a target was built completely; this
     * does not include running the test if the target is a test target.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.TargetCompletedId}
     */
    public  static final class TargetCompletedId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.TargetCompletedId)
        TargetCompletedIdOrBuilder {
      // Use TargetCompletedId.newBuilder() to construct.
      private TargetCompletedId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private TargetCompletedId() {
        label_ = "";
      }

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

                label_ = s;
                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TargetCompletedId_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TargetCompletedId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.Builder.class);
      }

      public static final int LABEL_FIELD_NUMBER = 1;
      private volatile java.lang.Object label_;
      /**
       * <code>optional string label = 1;</code>
       */
      public java.lang.String getLabel() {
        java.lang.Object ref = label_;
        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();
          label_ = s;
          return s;
        }
      }
      /**
       * <code>optional string label = 1;</code>
       */
      public com.google.protobuf.ByteString
          getLabelBytes() {
        java.lang.Object ref = label_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          label_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getLabelBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, label_);
        }
      }

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

        size = 0;
        if (!getLabelBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, label_);
        }
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) obj;

        boolean result = true;
        result = result && getLabel()
            .equals(other.getLabel());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        hash = (37 * hash) + LABEL_FIELD_NUMBER;
        hash = (53 * hash) + getLabel().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      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;
      }
      /**
       * <pre>
       * Identifier of an event indicating that a target was built completely; this
       * does not include running the test if the target is a test target.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.TargetCompletedId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.TargetCompletedId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TargetCompletedId_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TargetCompletedId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.Builder.class);
        }

        // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          label_ = "";

          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TargetCompletedId_descriptor;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.getDefaultInstance();
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId(this);
          result.label_ = label_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) {
            return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.getDefaultInstance()) return this;
          if (!other.getLabel().isEmpty()) {
            label_ = other.label_;
            onChanged();
          }
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private java.lang.Object label_ = "";
        /**
         * <code>optional string label = 1;</code>
         */
        public java.lang.String getLabel() {
          java.lang.Object ref = label_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            label_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string label = 1;</code>
         */
        public com.google.protobuf.ByteString
            getLabelBytes() {
          java.lang.Object ref = label_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            label_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string label = 1;</code>
         */
        public Builder setLabel(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          label_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string label = 1;</code>
         */
        public Builder clearLabel() {
          
          label_ = getDefaultInstance().getLabel();
          onChanged();
          return this;
        }
        /**
         * <code>optional string label = 1;</code>
         */
        public Builder setLabelBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          label_ = value;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildEventId.TargetCompletedId)
      }

      // @@protoc_insertion_point(class_scope:build_event_stream.BuildEventId.TargetCompletedId)
      private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId();
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ActionCompletedIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.ActionCompletedId)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional string primary_output = 1;</code>
       */
      java.lang.String getPrimaryOutput();
      /**
       * <code>optional string primary_output = 1;</code>
       */
      com.google.protobuf.ByteString
          getPrimaryOutputBytes();
    }
    /**
     * <pre>
     * Identifier of an event reporting that an action was completed (not all
     * actions are reported, only the onces that can be considered important;
     * this includes all failed actions).
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.ActionCompletedId}
     */
    public  static final class ActionCompletedId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.ActionCompletedId)
        ActionCompletedIdOrBuilder {
      // Use ActionCompletedId.newBuilder() to construct.
      private ActionCompletedId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ActionCompletedId() {
        primaryOutput_ = "";
      }

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

                primaryOutput_ = s;
                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ActionCompletedId_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ActionCompletedId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.Builder.class);
      }

      public static final int PRIMARY_OUTPUT_FIELD_NUMBER = 1;
      private volatile java.lang.Object primaryOutput_;
      /**
       * <code>optional string primary_output = 1;</code>
       */
      public java.lang.String getPrimaryOutput() {
        java.lang.Object ref = primaryOutput_;
        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();
          primaryOutput_ = s;
          return s;
        }
      }
      /**
       * <code>optional string primary_output = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPrimaryOutputBytes() {
        java.lang.Object ref = primaryOutput_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          primaryOutput_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getPrimaryOutputBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, primaryOutput_);
        }
      }

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

        size = 0;
        if (!getPrimaryOutputBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, primaryOutput_);
        }
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) obj;

        boolean result = true;
        result = result && getPrimaryOutput()
            .equals(other.getPrimaryOutput());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        hash = (37 * hash) + PRIMARY_OUTPUT_FIELD_NUMBER;
        hash = (53 * hash) + getPrimaryOutput().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      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;
      }
      /**
       * <pre>
       * Identifier of an event reporting that an action was completed (not all
       * actions are reported, only the onces that can be considered important;
       * this includes all failed actions).
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.ActionCompletedId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.ActionCompletedId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ActionCompletedId_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ActionCompletedId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.Builder.class);
        }

        // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          primaryOutput_ = "";

          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ActionCompletedId_descriptor;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.getDefaultInstance();
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId(this);
          result.primaryOutput_ = primaryOutput_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) {
            return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.getDefaultInstance()) return this;
          if (!other.getPrimaryOutput().isEmpty()) {
            primaryOutput_ = other.primaryOutput_;
            onChanged();
          }
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private java.lang.Object primaryOutput_ = "";
        /**
         * <code>optional string primary_output = 1;</code>
         */
        public java.lang.String getPrimaryOutput() {
          java.lang.Object ref = primaryOutput_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            primaryOutput_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string primary_output = 1;</code>
         */
        public com.google.protobuf.ByteString
            getPrimaryOutputBytes() {
          java.lang.Object ref = primaryOutput_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            primaryOutput_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string primary_output = 1;</code>
         */
        public Builder setPrimaryOutput(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          primaryOutput_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string primary_output = 1;</code>
         */
        public Builder clearPrimaryOutput() {
          
          primaryOutput_ = getDefaultInstance().getPrimaryOutput();
          onChanged();
          return this;
        }
        /**
         * <code>optional string primary_output = 1;</code>
         */
        public Builder setPrimaryOutputBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          primaryOutput_ = value;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildEventId.ActionCompletedId)
      }

      // @@protoc_insertion_point(class_scope:build_event_stream.BuildEventId.ActionCompletedId)
      private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId();
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface TestSummaryIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.TestSummaryId)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional string label = 1;</code>
       */
      java.lang.String getLabel();
      /**
       * <code>optional string label = 1;</code>
       */
      com.google.protobuf.ByteString
          getLabelBytes();
    }
    /**
     * <pre>
     * Identifier of an event reporting the summary of a test.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.TestSummaryId}
     */
    public  static final class TestSummaryId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.TestSummaryId)
        TestSummaryIdOrBuilder {
      // Use TestSummaryId.newBuilder() to construct.
      private TestSummaryId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private TestSummaryId() {
        label_ = "";
      }

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

                label_ = s;
                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TestSummaryId_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TestSummaryId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.Builder.class);
      }

      public static final int LABEL_FIELD_NUMBER = 1;
      private volatile java.lang.Object label_;
      /**
       * <code>optional string label = 1;</code>
       */
      public java.lang.String getLabel() {
        java.lang.Object ref = label_;
        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();
          label_ = s;
          return s;
        }
      }
      /**
       * <code>optional string label = 1;</code>
       */
      public com.google.protobuf.ByteString
          getLabelBytes() {
        java.lang.Object ref = label_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          label_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getLabelBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, label_);
        }
      }

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

        size = 0;
        if (!getLabelBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, label_);
        }
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) obj;

        boolean result = true;
        result = result && getLabel()
            .equals(other.getLabel());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        hash = (37 * hash) + LABEL_FIELD_NUMBER;
        hash = (53 * hash) + getLabel().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      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;
      }
      /**
       * <pre>
       * Identifier of an event reporting the summary of a test.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.TestSummaryId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.TestSummaryId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TestSummaryId_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TestSummaryId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.Builder.class);
        }

        // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          label_ = "";

          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TestSummaryId_descriptor;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.getDefaultInstance();
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId(this);
          result.label_ = label_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) {
            return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.getDefaultInstance()) return this;
          if (!other.getLabel().isEmpty()) {
            label_ = other.label_;
            onChanged();
          }
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private java.lang.Object label_ = "";
        /**
         * <code>optional string label = 1;</code>
         */
        public java.lang.String getLabel() {
          java.lang.Object ref = label_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            label_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string label = 1;</code>
         */
        public com.google.protobuf.ByteString
            getLabelBytes() {
          java.lang.Object ref = label_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            label_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string label = 1;</code>
         */
        public Builder setLabel(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          label_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string label = 1;</code>
         */
        public Builder clearLabel() {
          
          label_ = getDefaultInstance().getLabel();
          onChanged();
          return this;
        }
        /**
         * <code>optional string label = 1;</code>
         */
        public Builder setLabelBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          label_ = value;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildEventId.TestSummaryId)
      }

      // @@protoc_insertion_point(class_scope:build_event_stream.BuildEventId.TestSummaryId)
      private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId();
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int idCase_ = 0;
    private java.lang.Object id_;
    public enum IdCase
        implements com.google.protobuf.Internal.EnumLite {
      UNKNOWN(1),
      PROGRESS(2),
      STARTED(3),
      PATTERN(4),
      TARGET_COMPLETED(5),
      ACTION_COMPLETED(6),
      TEST_SUMMARY(7),
      ID_NOT_SET(0);
      private final int value;
      private IdCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static IdCase valueOf(int value) {
        return forNumber(value);
      }

      public static IdCase forNumber(int value) {
        switch (value) {
          case 1: return UNKNOWN;
          case 2: return PROGRESS;
          case 3: return STARTED;
          case 4: return PATTERN;
          case 5: return TARGET_COMPLETED;
          case 6: return ACTION_COMPLETED;
          case 7: return TEST_SUMMARY;
          case 0: return ID_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public IdCase
    getIdCase() {
      return IdCase.forNumber(
          idCase_);
    }

    public static final int UNKNOWN_FIELD_NUMBER = 1;
    /**
     * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId getUnknown() {
      if (idCase_ == 1) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventIdOrBuilder getUnknownOrBuilder() {
      if (idCase_ == 1) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.getDefaultInstance();
    }

    public static final int PROGRESS_FIELD_NUMBER = 2;
    /**
     * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId getProgress() {
      if (idCase_ == 2) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressIdOrBuilder getProgressOrBuilder() {
      if (idCase_ == 2) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.getDefaultInstance();
    }

    public static final int STARTED_FIELD_NUMBER = 3;
    /**
     * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId getStarted() {
      if (idCase_ == 3) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedIdOrBuilder getStartedOrBuilder() {
      if (idCase_ == 3) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.getDefaultInstance();
    }

    public static final int PATTERN_FIELD_NUMBER = 4;
    /**
     * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId getPattern() {
      if (idCase_ == 4) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder getPatternOrBuilder() {
      if (idCase_ == 4) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
    }

    public static final int TARGET_COMPLETED_FIELD_NUMBER = 5;
    /**
     * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId getTargetCompleted() {
      if (idCase_ == 5) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedIdOrBuilder getTargetCompletedOrBuilder() {
      if (idCase_ == 5) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.getDefaultInstance();
    }

    public static final int ACTION_COMPLETED_FIELD_NUMBER = 6;
    /**
     * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId getActionCompleted() {
      if (idCase_ == 6) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedIdOrBuilder getActionCompletedOrBuilder() {
      if (idCase_ == 6) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.getDefaultInstance();
    }

    public static final int TEST_SUMMARY_FIELD_NUMBER = 7;
    /**
     * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId getTestSummary() {
      if (idCase_ == 7) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryIdOrBuilder getTestSummaryOrBuilder() {
      if (idCase_ == 7) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (idCase_ == 1) {
        output.writeMessage(1, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) id_);
      }
      if (idCase_ == 2) {
        output.writeMessage(2, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) id_);
      }
      if (idCase_ == 3) {
        output.writeMessage(3, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) id_);
      }
      if (idCase_ == 4) {
        output.writeMessage(4, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_);
      }
      if (idCase_ == 5) {
        output.writeMessage(5, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) id_);
      }
      if (idCase_ == 6) {
        output.writeMessage(6, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) id_);
      }
      if (idCase_ == 7) {
        output.writeMessage(7, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) id_);
      }
    }

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

      size = 0;
      if (idCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) id_);
      }
      if (idCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) id_);
      }
      if (idCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) id_);
      }
      if (idCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_);
      }
      if (idCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) id_);
      }
      if (idCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) id_);
      }
      if (idCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) id_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId) obj;

      boolean result = true;
      result = result && getIdCase().equals(
          other.getIdCase());
      if (!result) return false;
      switch (idCase_) {
        case 1:
          result = result && getUnknown()
              .equals(other.getUnknown());
          break;
        case 2:
          result = result && getProgress()
              .equals(other.getProgress());
          break;
        case 3:
          result = result && getStarted()
              .equals(other.getStarted());
          break;
        case 4:
          result = result && getPattern()
              .equals(other.getPattern());
          break;
        case 5:
          result = result && getTargetCompleted()
              .equals(other.getTargetCompleted());
          break;
        case 6:
          result = result && getActionCompleted()
              .equals(other.getActionCompleted());
          break;
        case 7:
          result = result && getTestSummary()
              .equals(other.getTestSummary());
          break;
        case 0:
        default:
      }
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      switch (idCase_) {
        case 1:
          hash = (37 * hash) + UNKNOWN_FIELD_NUMBER;
          hash = (53 * hash) + getUnknown().hashCode();
          break;
        case 2:
          hash = (37 * hash) + PROGRESS_FIELD_NUMBER;
          hash = (53 * hash) + getProgress().hashCode();
          break;
        case 3:
          hash = (37 * hash) + STARTED_FIELD_NUMBER;
          hash = (53 * hash) + getStarted().hashCode();
          break;
        case 4:
          hash = (37 * hash) + PATTERN_FIELD_NUMBER;
          hash = (53 * hash) + getPattern().hashCode();
          break;
        case 5:
          hash = (37 * hash) + TARGET_COMPLETED_FIELD_NUMBER;
          hash = (53 * hash) + getTargetCompleted().hashCode();
          break;
        case 6:
          hash = (37 * hash) + ACTION_COMPLETED_FIELD_NUMBER;
          hash = (53 * hash) + getActionCompleted().hashCode();
          break;
        case 7:
          hash = (37 * hash) + TEST_SUMMARY_FIELD_NUMBER;
          hash = (53 * hash) + getTestSummary().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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;
    }
    /**
     * <pre>
     * Identifier for a build event. It is deliberately structured to also provide
     * information about which build target etc the event is related to.
     * Events are chained via the event id as follows: each event has an id and a
     * set of ids of children events such that apart from the initial event each
     * event has an id that is mentioned as child id in an earlier event and a build
     * invocation is complete if and only if all direct and indirect children of the
     * initial event have been posted.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        idCase_ = 0;
        id_ = null;
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_descriptor;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.getDefaultInstance();
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId(this);
        if (idCase_ == 1) {
          if (unknownBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = unknownBuilder_.build();
          }
        }
        if (idCase_ == 2) {
          if (progressBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = progressBuilder_.build();
          }
        }
        if (idCase_ == 3) {
          if (startedBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = startedBuilder_.build();
          }
        }
        if (idCase_ == 4) {
          if (patternBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = patternBuilder_.build();
          }
        }
        if (idCase_ == 5) {
          if (targetCompletedBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = targetCompletedBuilder_.build();
          }
        }
        if (idCase_ == 6) {
          if (actionCompletedBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = actionCompletedBuilder_.build();
          }
        }
        if (idCase_ == 7) {
          if (testSummaryBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = testSummaryBuilder_.build();
          }
        }
        result.idCase_ = idCase_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.getDefaultInstance()) return this;
        switch (other.getIdCase()) {
          case UNKNOWN: {
            mergeUnknown(other.getUnknown());
            break;
          }
          case PROGRESS: {
            mergeProgress(other.getProgress());
            break;
          }
          case STARTED: {
            mergeStarted(other.getStarted());
            break;
          }
          case PATTERN: {
            mergePattern(other.getPattern());
            break;
          }
          case TARGET_COMPLETED: {
            mergeTargetCompleted(other.getTargetCompleted());
            break;
          }
          case ACTION_COMPLETED: {
            mergeActionCompleted(other.getActionCompleted());
            break;
          }
          case TEST_SUMMARY: {
            mergeTestSummary(other.getTestSummary());
            break;
          }
          case ID_NOT_SET: {
            break;
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int idCase_ = 0;
      private java.lang.Object id_;
      public IdCase
          getIdCase() {
        return IdCase.forNumber(
            idCase_);
      }

      public Builder clearId() {
        idCase_ = 0;
        id_ = null;
        onChanged();
        return this;
      }


      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventIdOrBuilder> unknownBuilder_;
      /**
       * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId getUnknown() {
        if (unknownBuilder_ == null) {
          if (idCase_ == 1) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.getDefaultInstance();
        } else {
          if (idCase_ == 1) {
            return unknownBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
       */
      public Builder setUnknown(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId value) {
        if (unknownBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          unknownBuilder_.setMessage(value);
        }
        idCase_ = 1;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
       */
      public Builder setUnknown(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.Builder builderForValue) {
        if (unknownBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          unknownBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 1;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
       */
      public Builder mergeUnknown(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId value) {
        if (unknownBuilder_ == null) {
          if (idCase_ == 1 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 1) {
            unknownBuilder_.mergeFrom(value);
          }
          unknownBuilder_.setMessage(value);
        }
        idCase_ = 1;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
       */
      public Builder clearUnknown() {
        if (unknownBuilder_ == null) {
          if (idCase_ == 1) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 1) {
            idCase_ = 0;
            id_ = null;
          }
          unknownBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.Builder getUnknownBuilder() {
        return getUnknownFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventIdOrBuilder getUnknownOrBuilder() {
        if ((idCase_ == 1) && (unknownBuilder_ != null)) {
          return unknownBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 1) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventIdOrBuilder> 
          getUnknownFieldBuilder() {
        if (unknownBuilder_ == null) {
          if (!(idCase_ == 1)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.getDefaultInstance();
          }
          unknownBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 1;
        onChanged();;
        return unknownBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressIdOrBuilder> progressBuilder_;
      /**
       * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId getProgress() {
        if (progressBuilder_ == null) {
          if (idCase_ == 2) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.getDefaultInstance();
        } else {
          if (idCase_ == 2) {
            return progressBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
       */
      public Builder setProgress(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId value) {
        if (progressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          progressBuilder_.setMessage(value);
        }
        idCase_ = 2;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
       */
      public Builder setProgress(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.Builder builderForValue) {
        if (progressBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          progressBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 2;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
       */
      public Builder mergeProgress(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId value) {
        if (progressBuilder_ == null) {
          if (idCase_ == 2 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 2) {
            progressBuilder_.mergeFrom(value);
          }
          progressBuilder_.setMessage(value);
        }
        idCase_ = 2;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
       */
      public Builder clearProgress() {
        if (progressBuilder_ == null) {
          if (idCase_ == 2) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 2) {
            idCase_ = 0;
            id_ = null;
          }
          progressBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.Builder getProgressBuilder() {
        return getProgressFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressIdOrBuilder getProgressOrBuilder() {
        if ((idCase_ == 2) && (progressBuilder_ != null)) {
          return progressBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 2) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ProgressId progress = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressIdOrBuilder> 
          getProgressFieldBuilder() {
        if (progressBuilder_ == null) {
          if (!(idCase_ == 2)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.getDefaultInstance();
          }
          progressBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 2;
        onChanged();;
        return progressBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedIdOrBuilder> startedBuilder_;
      /**
       * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId getStarted() {
        if (startedBuilder_ == null) {
          if (idCase_ == 3) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.getDefaultInstance();
        } else {
          if (idCase_ == 3) {
            return startedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
       */
      public Builder setStarted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId value) {
        if (startedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          startedBuilder_.setMessage(value);
        }
        idCase_ = 3;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
       */
      public Builder setStarted(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.Builder builderForValue) {
        if (startedBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          startedBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 3;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
       */
      public Builder mergeStarted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId value) {
        if (startedBuilder_ == null) {
          if (idCase_ == 3 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 3) {
            startedBuilder_.mergeFrom(value);
          }
          startedBuilder_.setMessage(value);
        }
        idCase_ = 3;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
       */
      public Builder clearStarted() {
        if (startedBuilder_ == null) {
          if (idCase_ == 3) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 3) {
            idCase_ = 0;
            id_ = null;
          }
          startedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.Builder getStartedBuilder() {
        return getStartedFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedIdOrBuilder getStartedOrBuilder() {
        if ((idCase_ == 3) && (startedBuilder_ != null)) {
          return startedBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 3) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedIdOrBuilder> 
          getStartedFieldBuilder() {
        if (startedBuilder_ == null) {
          if (!(idCase_ == 3)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.getDefaultInstance();
          }
          startedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 3;
        onChanged();;
        return startedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder> patternBuilder_;
      /**
       * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId getPattern() {
        if (patternBuilder_ == null) {
          if (idCase_ == 4) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
        } else {
          if (idCase_ == 4) {
            return patternBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
       */
      public Builder setPattern(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId value) {
        if (patternBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          patternBuilder_.setMessage(value);
        }
        idCase_ = 4;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
       */
      public Builder setPattern(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder builderForValue) {
        if (patternBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          patternBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 4;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
       */
      public Builder mergePattern(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId value) {
        if (patternBuilder_ == null) {
          if (idCase_ == 4 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 4) {
            patternBuilder_.mergeFrom(value);
          }
          patternBuilder_.setMessage(value);
        }
        idCase_ = 4;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
       */
      public Builder clearPattern() {
        if (patternBuilder_ == null) {
          if (idCase_ == 4) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 4) {
            idCase_ = 0;
            id_ = null;
          }
          patternBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder getPatternBuilder() {
        return getPatternFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder getPatternOrBuilder() {
        if ((idCase_ == 4) && (patternBuilder_ != null)) {
          return patternBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 4) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder> 
          getPatternFieldBuilder() {
        if (patternBuilder_ == null) {
          if (!(idCase_ == 4)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
          }
          patternBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 4;
        onChanged();;
        return patternBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedIdOrBuilder> targetCompletedBuilder_;
      /**
       * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId getTargetCompleted() {
        if (targetCompletedBuilder_ == null) {
          if (idCase_ == 5) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.getDefaultInstance();
        } else {
          if (idCase_ == 5) {
            return targetCompletedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
       */
      public Builder setTargetCompleted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId value) {
        if (targetCompletedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          targetCompletedBuilder_.setMessage(value);
        }
        idCase_ = 5;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
       */
      public Builder setTargetCompleted(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.Builder builderForValue) {
        if (targetCompletedBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          targetCompletedBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 5;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
       */
      public Builder mergeTargetCompleted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId value) {
        if (targetCompletedBuilder_ == null) {
          if (idCase_ == 5 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 5) {
            targetCompletedBuilder_.mergeFrom(value);
          }
          targetCompletedBuilder_.setMessage(value);
        }
        idCase_ = 5;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
       */
      public Builder clearTargetCompleted() {
        if (targetCompletedBuilder_ == null) {
          if (idCase_ == 5) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 5) {
            idCase_ = 0;
            id_ = null;
          }
          targetCompletedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.Builder getTargetCompletedBuilder() {
        return getTargetCompletedFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedIdOrBuilder getTargetCompletedOrBuilder() {
        if ((idCase_ == 5) && (targetCompletedBuilder_ != null)) {
          return targetCompletedBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 5) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedIdOrBuilder> 
          getTargetCompletedFieldBuilder() {
        if (targetCompletedBuilder_ == null) {
          if (!(idCase_ == 5)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.getDefaultInstance();
          }
          targetCompletedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 5;
        onChanged();;
        return targetCompletedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedIdOrBuilder> actionCompletedBuilder_;
      /**
       * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId getActionCompleted() {
        if (actionCompletedBuilder_ == null) {
          if (idCase_ == 6) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.getDefaultInstance();
        } else {
          if (idCase_ == 6) {
            return actionCompletedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
       */
      public Builder setActionCompleted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId value) {
        if (actionCompletedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          actionCompletedBuilder_.setMessage(value);
        }
        idCase_ = 6;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
       */
      public Builder setActionCompleted(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.Builder builderForValue) {
        if (actionCompletedBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          actionCompletedBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 6;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
       */
      public Builder mergeActionCompleted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId value) {
        if (actionCompletedBuilder_ == null) {
          if (idCase_ == 6 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 6) {
            actionCompletedBuilder_.mergeFrom(value);
          }
          actionCompletedBuilder_.setMessage(value);
        }
        idCase_ = 6;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
       */
      public Builder clearActionCompleted() {
        if (actionCompletedBuilder_ == null) {
          if (idCase_ == 6) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 6) {
            idCase_ = 0;
            id_ = null;
          }
          actionCompletedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.Builder getActionCompletedBuilder() {
        return getActionCompletedFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedIdOrBuilder getActionCompletedOrBuilder() {
        if ((idCase_ == 6) && (actionCompletedBuilder_ != null)) {
          return actionCompletedBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 6) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedIdOrBuilder> 
          getActionCompletedFieldBuilder() {
        if (actionCompletedBuilder_ == null) {
          if (!(idCase_ == 6)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.getDefaultInstance();
          }
          actionCompletedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 6;
        onChanged();;
        return actionCompletedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryIdOrBuilder> testSummaryBuilder_;
      /**
       * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId getTestSummary() {
        if (testSummaryBuilder_ == null) {
          if (idCase_ == 7) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.getDefaultInstance();
        } else {
          if (idCase_ == 7) {
            return testSummaryBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
       */
      public Builder setTestSummary(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId value) {
        if (testSummaryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          testSummaryBuilder_.setMessage(value);
        }
        idCase_ = 7;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
       */
      public Builder setTestSummary(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.Builder builderForValue) {
        if (testSummaryBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          testSummaryBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 7;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
       */
      public Builder mergeTestSummary(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId value) {
        if (testSummaryBuilder_ == null) {
          if (idCase_ == 7 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 7) {
            testSummaryBuilder_.mergeFrom(value);
          }
          testSummaryBuilder_.setMessage(value);
        }
        idCase_ = 7;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
       */
      public Builder clearTestSummary() {
        if (testSummaryBuilder_ == null) {
          if (idCase_ == 7) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 7) {
            idCase_ = 0;
            id_ = null;
          }
          testSummaryBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.Builder getTestSummaryBuilder() {
        return getTestSummaryFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryIdOrBuilder getTestSummaryOrBuilder() {
        if ((idCase_ == 7) && (testSummaryBuilder_ != null)) {
          return testSummaryBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 7) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryIdOrBuilder> 
          getTestSummaryFieldBuilder() {
        if (testSummaryBuilder_ == null) {
          if (!(idCase_ == 7)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.getDefaultInstance();
          }
          testSummaryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 7;
        onChanged();;
        return testSummaryBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.BuildEventId)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.BuildEventId)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.Progress)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * Payload of an event summarizing the progress of the build so far. Those
   * events are also used to be parents of events where the more logical parent
   * event cannot be posted yet as the needed information is not yet complete.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.Progress}
   */
  public  static final class Progress extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.Progress)
      ProgressOrBuilder {
    // Use Progress.newBuilder() to construct.
    private Progress(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Progress() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private Progress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Progress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Progress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) obj;

      boolean result = true;
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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;
    }
    /**
     * <pre>
     * Payload of an event summarizing the progress of the build so far. Those
     * events are also used to be parents of events where the more logical parent
     * event cannot be posted yet as the needed information is not yet complete.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.Progress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.Progress)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Progress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Progress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Progress_descriptor;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.getDefaultInstance();
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress(this);
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.getDefaultInstance()) return this;
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.Progress)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.Progress)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AbortedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.Aborted)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .build_event_stream.Aborted.AbortReason reason = 1;</code>
     */
    int getReasonValue();
    /**
     * <code>optional .build_event_stream.Aborted.AbortReason reason = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason getReason();

    /**
     * <pre>
     * A human readable description with more details about there reason, where
     * available and useful.
     * </pre>
     *
     * <code>optional string description = 2;</code>
     */
    java.lang.String getDescription();
    /**
     * <pre>
     * A human readable description with more details about there reason, where
     * available and useful.
     * </pre>
     *
     * <code>optional string description = 2;</code>
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();
  }
  /**
   * <pre>
   * Payload of an event indicating that an expected event will not come, as
   * the build is aborted prematurely for some reason.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.Aborted}
   */
  public  static final class Aborted extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.Aborted)
      AbortedOrBuilder {
    // Use Aborted.newBuilder() to construct.
    private Aborted(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Aborted() {
      reason_ = 0;
      description_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private Aborted(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

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

              description_ = s;
              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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Aborted_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Aborted_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.Builder.class);
    }

    /**
     * Protobuf enum {@code build_event_stream.Aborted.AbortReason}
     */
    public enum AbortReason
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <pre>
       * The user requested the build to be aborted (e.g., by hitting Ctl-C).
       * </pre>
       *
       * <code>USER_INTERRUPTED = 1;</code>
       */
      USER_INTERRUPTED(1),
      /**
       * <pre>
       * The build or target was aborted as a timeout was exceeded.
       * </pre>
       *
       * <code>TIME_OUT = 2;</code>
       */
      TIME_OUT(2),
      /**
       * <pre>
       * The build or target was aborted as some remote environment (e.g., for
       * remote execution of actions) was not available in the expected way.
       * </pre>
       *
       * <code>REMOTE_ENVIRONMENT_FAILURE = 3;</code>
       */
      REMOTE_ENVIRONMENT_FAILURE(3),
      /**
       * <pre>
       * Failure due to reasons entirely internal to the build tool, e.g.,
       * running out of memory.
       * </pre>
       *
       * <code>INTERNAL = 4;</code>
       */
      INTERNAL(4),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <pre>
       * The user requested the build to be aborted (e.g., by hitting Ctl-C).
       * </pre>
       *
       * <code>USER_INTERRUPTED = 1;</code>
       */
      public static final int USER_INTERRUPTED_VALUE = 1;
      /**
       * <pre>
       * The build or target was aborted as a timeout was exceeded.
       * </pre>
       *
       * <code>TIME_OUT = 2;</code>
       */
      public static final int TIME_OUT_VALUE = 2;
      /**
       * <pre>
       * The build or target was aborted as some remote environment (e.g., for
       * remote execution of actions) was not available in the expected way.
       * </pre>
       *
       * <code>REMOTE_ENVIRONMENT_FAILURE = 3;</code>
       */
      public static final int REMOTE_ENVIRONMENT_FAILURE_VALUE = 3;
      /**
       * <pre>
       * Failure due to reasons entirely internal to the build tool, e.g.,
       * running out of memory.
       * </pre>
       *
       * <code>INTERNAL = 4;</code>
       */
      public static final int INTERNAL_VALUE = 4;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static AbortReason valueOf(int value) {
        return forNumber(value);
      }

      public static AbortReason forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1: return USER_INTERRUPTED;
          case 2: return TIME_OUT;
          case 3: return REMOTE_ENVIRONMENT_FAILURE;
          case 4: return INTERNAL;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<AbortReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          AbortReason> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<AbortReason>() {
              public AbortReason findValueByNumber(int number) {
                return AbortReason.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.getDescriptor().getEnumTypes().get(0);
      }

      private static final AbortReason[] VALUES = values();

      public static AbortReason valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private AbortReason(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:build_event_stream.Aborted.AbortReason)
    }

    public static final int REASON_FIELD_NUMBER = 1;
    private int reason_;
    /**
     * <code>optional .build_event_stream.Aborted.AbortReason reason = 1;</code>
     */
    public int getReasonValue() {
      return reason_;
    }
    /**
     * <code>optional .build_event_stream.Aborted.AbortReason reason = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason getReason() {
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason result = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason.valueOf(reason_);
      return result == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason.UNRECOGNIZED : result;
    }

    public static final int DESCRIPTION_FIELD_NUMBER = 2;
    private volatile java.lang.Object description_;
    /**
     * <pre>
     * A human readable description with more details about there reason, where
     * available and useful.
     * </pre>
     *
     * <code>optional string description = 2;</code>
     */
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      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();
        description_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * A human readable description with more details about there reason, where
     * available and useful.
     * </pre>
     *
     * <code>optional string description = 2;</code>
     */
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (reason_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason.UNKNOWN.getNumber()) {
        output.writeEnum(1, reason_);
      }
      if (!getDescriptionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, description_);
      }
    }

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

      size = 0;
      if (reason_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason.UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, reason_);
      }
      if (!getDescriptionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, description_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) obj;

      boolean result = true;
      result = result && reason_ == other.reason_;
      result = result && getDescription()
          .equals(other.getDescription());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + REASON_FIELD_NUMBER;
      hash = (53 * hash) + reason_;
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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;
    }
    /**
     * <pre>
     * Payload of an event indicating that an expected event will not come, as
     * the build is aborted prematurely for some reason.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.Aborted}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.Aborted)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.AbortedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Aborted_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Aborted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        reason_ = 0;

        description_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Aborted_descriptor;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.getDefaultInstance();
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted(this);
        result.reason_ = reason_;
        result.description_ = description_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.getDefaultInstance()) return this;
        if (other.reason_ != 0) {
          setReasonValue(other.getReasonValue());
        }
        if (!other.getDescription().isEmpty()) {
          description_ = other.description_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int reason_ = 0;
      /**
       * <code>optional .build_event_stream.Aborted.AbortReason reason = 1;</code>
       */
      public int getReasonValue() {
        return reason_;
      }
      /**
       * <code>optional .build_event_stream.Aborted.AbortReason reason = 1;</code>
       */
      public Builder setReasonValue(int value) {
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional .build_event_stream.Aborted.AbortReason reason = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason getReason() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason result = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason.valueOf(reason_);
        return result == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason.UNRECOGNIZED : result;
      }
      /**
       * <code>optional .build_event_stream.Aborted.AbortReason reason = 1;</code>
       */
      public Builder setReason(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        reason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .build_event_stream.Aborted.AbortReason reason = 1;</code>
       */
      public Builder clearReason() {
        
        reason_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object description_ = "";
      /**
       * <pre>
       * A human readable description with more details about there reason, where
       * available and useful.
       * </pre>
       *
       * <code>optional string description = 2;</code>
       */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          description_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * A human readable description with more details about there reason, where
       * available and useful.
       * </pre>
       *
       * <code>optional string description = 2;</code>
       */
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * A human readable description with more details about there reason, where
       * available and useful.
       * </pre>
       *
       * <code>optional string description = 2;</code>
       */
      public Builder setDescription(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        description_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A human readable description with more details about there reason, where
       * available and useful.
       * </pre>
       *
       * <code>optional string description = 2;</code>
       */
      public Builder clearDescription() {
        
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A human readable description with more details about there reason, where
       * available and useful.
       * </pre>
       *
       * <code>optional string description = 2;</code>
       */
      public Builder setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        description_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.Aborted)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.Aborted)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BuildStartedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.BuildStarted)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string uuid = 1;</code>
     */
    java.lang.String getUuid();
    /**
     * <code>optional string uuid = 1;</code>
     */
    com.google.protobuf.ByteString
        getUuidBytes();

    /**
     * <pre>
     * Start of the build in ms since the epoche.
     * </pre>
     *
     * <code>optional int64 start_time_milis = 2;</code>
     */
    long getStartTimeMilis();

    /**
     * <pre>
     * Version of the build tool that is running.
     * </pre>
     *
     * <code>optional string build_tool_version = 3;</code>
     */
    java.lang.String getBuildToolVersion();
    /**
     * <pre>
     * Version of the build tool that is running.
     * </pre>
     *
     * <code>optional string build_tool_version = 3;</code>
     */
    com.google.protobuf.ByteString
        getBuildToolVersionBytes();

    /**
     * <pre>
     * A human-readable description of all the non-default option settings
     * </pre>
     *
     * <code>optional string options_description = 4;</code>
     */
    java.lang.String getOptionsDescription();
    /**
     * <pre>
     * A human-readable description of all the non-default option settings
     * </pre>
     *
     * <code>optional string options_description = 4;</code>
     */
    com.google.protobuf.ByteString
        getOptionsDescriptionBytes();

    /**
     * <pre>
     * The name of the command that the user invoked.
     * </pre>
     *
     * <code>optional string command = 5;</code>
     */
    java.lang.String getCommand();
    /**
     * <pre>
     * The name of the command that the user invoked.
     * </pre>
     *
     * <code>optional string command = 5;</code>
     */
    com.google.protobuf.ByteString
        getCommandBytes();

    /**
     * <pre>
     * The working directory from which the build tool was invoked.
     * </pre>
     *
     * <code>optional string working_directory = 6;</code>
     */
    java.lang.String getWorkingDirectory();
    /**
     * <pre>
     * The working directory from which the build tool was invoked.
     * </pre>
     *
     * <code>optional string working_directory = 6;</code>
     */
    com.google.protobuf.ByteString
        getWorkingDirectoryBytes();

    /**
     * <pre>
     * The directory of the workspace.
     * </pre>
     *
     * <code>optional string workspace_directory = 7;</code>
     */
    java.lang.String getWorkspaceDirectory();
    /**
     * <pre>
     * The directory of the workspace.
     * </pre>
     *
     * <code>optional string workspace_directory = 7;</code>
     */
    com.google.protobuf.ByteString
        getWorkspaceDirectoryBytes();
  }
  /**
   * <pre>
   * Payload of an event indicating the beginning of a new build. Usually, events
   * of those type start a new build-event stream. The target pattern requested
   * to be build is contained in one of the announced child events; it is an
   * invariant that precisely one of the announced child events has a non-empty
   * target pattern.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.BuildStarted}
   */
  public  static final class BuildStarted extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.BuildStarted)
      BuildStartedOrBuilder {
    // Use BuildStarted.newBuilder() to construct.
    private BuildStarted(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BuildStarted() {
      uuid_ = "";
      startTimeMilis_ = 0L;
      buildToolVersion_ = "";
      optionsDescription_ = "";
      command_ = "";
      workingDirectory_ = "";
      workspaceDirectory_ = "";
    }

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

              uuid_ = s;
              break;
            }
            case 16: {

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

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

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

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

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

              workspaceDirectory_ = s;
              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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildStarted_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildStarted_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.Builder.class);
    }

    public static final int UUID_FIELD_NUMBER = 1;
    private volatile java.lang.Object uuid_;
    /**
     * <code>optional string uuid = 1;</code>
     */
    public java.lang.String getUuid() {
      java.lang.Object ref = uuid_;
      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();
        uuid_ = s;
        return s;
      }
    }
    /**
     * <code>optional string uuid = 1;</code>
     */
    public com.google.protobuf.ByteString
        getUuidBytes() {
      java.lang.Object ref = uuid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        uuid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int START_TIME_MILIS_FIELD_NUMBER = 2;
    private long startTimeMilis_;
    /**
     * <pre>
     * Start of the build in ms since the epoche.
     * </pre>
     *
     * <code>optional int64 start_time_milis = 2;</code>
     */
    public long getStartTimeMilis() {
      return startTimeMilis_;
    }

    public static final int BUILD_TOOL_VERSION_FIELD_NUMBER = 3;
    private volatile java.lang.Object buildToolVersion_;
    /**
     * <pre>
     * Version of the build tool that is running.
     * </pre>
     *
     * <code>optional string build_tool_version = 3;</code>
     */
    public java.lang.String getBuildToolVersion() {
      java.lang.Object ref = buildToolVersion_;
      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();
        buildToolVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Version of the build tool that is running.
     * </pre>
     *
     * <code>optional string build_tool_version = 3;</code>
     */
    public com.google.protobuf.ByteString
        getBuildToolVersionBytes() {
      java.lang.Object ref = buildToolVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        buildToolVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPTIONS_DESCRIPTION_FIELD_NUMBER = 4;
    private volatile java.lang.Object optionsDescription_;
    /**
     * <pre>
     * A human-readable description of all the non-default option settings
     * </pre>
     *
     * <code>optional string options_description = 4;</code>
     */
    public java.lang.String getOptionsDescription() {
      java.lang.Object ref = optionsDescription_;
      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();
        optionsDescription_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * A human-readable description of all the non-default option settings
     * </pre>
     *
     * <code>optional string options_description = 4;</code>
     */
    public com.google.protobuf.ByteString
        getOptionsDescriptionBytes() {
      java.lang.Object ref = optionsDescription_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        optionsDescription_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMMAND_FIELD_NUMBER = 5;
    private volatile java.lang.Object command_;
    /**
     * <pre>
     * The name of the command that the user invoked.
     * </pre>
     *
     * <code>optional string command = 5;</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;
      }
    }
    /**
     * <pre>
     * The name of the command that the user invoked.
     * </pre>
     *
     * <code>optional string command = 5;</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;
      }
    }

    public static final int WORKING_DIRECTORY_FIELD_NUMBER = 6;
    private volatile java.lang.Object workingDirectory_;
    /**
     * <pre>
     * The working directory from which the build tool was invoked.
     * </pre>
     *
     * <code>optional string working_directory = 6;</code>
     */
    public java.lang.String getWorkingDirectory() {
      java.lang.Object ref = workingDirectory_;
      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();
        workingDirectory_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The working directory from which the build tool was invoked.
     * </pre>
     *
     * <code>optional string working_directory = 6;</code>
     */
    public com.google.protobuf.ByteString
        getWorkingDirectoryBytes() {
      java.lang.Object ref = workingDirectory_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        workingDirectory_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int WORKSPACE_DIRECTORY_FIELD_NUMBER = 7;
    private volatile java.lang.Object workspaceDirectory_;
    /**
     * <pre>
     * The directory of the workspace.
     * </pre>
     *
     * <code>optional string workspace_directory = 7;</code>
     */
    public java.lang.String getWorkspaceDirectory() {
      java.lang.Object ref = workspaceDirectory_;
      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();
        workspaceDirectory_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The directory of the workspace.
     * </pre>
     *
     * <code>optional string workspace_directory = 7;</code>
     */
    public com.google.protobuf.ByteString
        getWorkspaceDirectoryBytes() {
      java.lang.Object ref = workspaceDirectory_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        workspaceDirectory_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getUuidBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uuid_);
      }
      if (startTimeMilis_ != 0L) {
        output.writeInt64(2, startTimeMilis_);
      }
      if (!getBuildToolVersionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, buildToolVersion_);
      }
      if (!getOptionsDescriptionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, optionsDescription_);
      }
      if (!getCommandBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, command_);
      }
      if (!getWorkingDirectoryBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, workingDirectory_);
      }
      if (!getWorkspaceDirectoryBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, workspaceDirectory_);
      }
    }

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

      size = 0;
      if (!getUuidBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uuid_);
      }
      if (startTimeMilis_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, startTimeMilis_);
      }
      if (!getBuildToolVersionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, buildToolVersion_);
      }
      if (!getOptionsDescriptionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, optionsDescription_);
      }
      if (!getCommandBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, command_);
      }
      if (!getWorkingDirectoryBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, workingDirectory_);
      }
      if (!getWorkspaceDirectoryBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, workspaceDirectory_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) obj;

      boolean result = true;
      result = result && getUuid()
          .equals(other.getUuid());
      result = result && (getStartTimeMilis()
          == other.getStartTimeMilis());
      result = result && getBuildToolVersion()
          .equals(other.getBuildToolVersion());
      result = result && getOptionsDescription()
          .equals(other.getOptionsDescription());
      result = result && getCommand()
          .equals(other.getCommand());
      result = result && getWorkingDirectory()
          .equals(other.getWorkingDirectory());
      result = result && getWorkspaceDirectory()
          .equals(other.getWorkspaceDirectory());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + UUID_FIELD_NUMBER;
      hash = (53 * hash) + getUuid().hashCode();
      hash = (37 * hash) + START_TIME_MILIS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getStartTimeMilis());
      hash = (37 * hash) + BUILD_TOOL_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getBuildToolVersion().hashCode();
      hash = (37 * hash) + OPTIONS_DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getOptionsDescription().hashCode();
      hash = (37 * hash) + COMMAND_FIELD_NUMBER;
      hash = (53 * hash) + getCommand().hashCode();
      hash = (37 * hash) + WORKING_DIRECTORY_FIELD_NUMBER;
      hash = (53 * hash) + getWorkingDirectory().hashCode();
      hash = (37 * hash) + WORKSPACE_DIRECTORY_FIELD_NUMBER;
      hash = (53 * hash) + getWorkspaceDirectory().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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;
    }
    /**
     * <pre>
     * Payload of an event indicating the beginning of a new build. Usually, events
     * of those type start a new build-event stream. The target pattern requested
     * to be build is contained in one of the announced child events; it is an
     * invariant that precisely one of the announced child events has a non-empty
     * target pattern.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildStarted}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.BuildStarted)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStartedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildStarted_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildStarted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        uuid_ = "";

        startTimeMilis_ = 0L;

        buildToolVersion_ = "";

        optionsDescription_ = "";

        command_ = "";

        workingDirectory_ = "";

        workspaceDirectory_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildStarted_descriptor;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.getDefaultInstance();
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted(this);
        result.uuid_ = uuid_;
        result.startTimeMilis_ = startTimeMilis_;
        result.buildToolVersion_ = buildToolVersion_;
        result.optionsDescription_ = optionsDescription_;
        result.command_ = command_;
        result.workingDirectory_ = workingDirectory_;
        result.workspaceDirectory_ = workspaceDirectory_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.getDefaultInstance()) return this;
        if (!other.getUuid().isEmpty()) {
          uuid_ = other.uuid_;
          onChanged();
        }
        if (other.getStartTimeMilis() != 0L) {
          setStartTimeMilis(other.getStartTimeMilis());
        }
        if (!other.getBuildToolVersion().isEmpty()) {
          buildToolVersion_ = other.buildToolVersion_;
          onChanged();
        }
        if (!other.getOptionsDescription().isEmpty()) {
          optionsDescription_ = other.optionsDescription_;
          onChanged();
        }
        if (!other.getCommand().isEmpty()) {
          command_ = other.command_;
          onChanged();
        }
        if (!other.getWorkingDirectory().isEmpty()) {
          workingDirectory_ = other.workingDirectory_;
          onChanged();
        }
        if (!other.getWorkspaceDirectory().isEmpty()) {
          workspaceDirectory_ = other.workspaceDirectory_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object uuid_ = "";
      /**
       * <code>optional string uuid = 1;</code>
       */
      public java.lang.String getUuid() {
        java.lang.Object ref = uuid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          uuid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string uuid = 1;</code>
       */
      public com.google.protobuf.ByteString
          getUuidBytes() {
        java.lang.Object ref = uuid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          uuid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string uuid = 1;</code>
       */
      public Builder setUuid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        uuid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string uuid = 1;</code>
       */
      public Builder clearUuid() {
        
        uuid_ = getDefaultInstance().getUuid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string uuid = 1;</code>
       */
      public Builder setUuidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        uuid_ = value;
        onChanged();
        return this;
      }

      private long startTimeMilis_ ;
      /**
       * <pre>
       * Start of the build in ms since the epoche.
       * </pre>
       *
       * <code>optional int64 start_time_milis = 2;</code>
       */
      public long getStartTimeMilis() {
        return startTimeMilis_;
      }
      /**
       * <pre>
       * Start of the build in ms since the epoche.
       * </pre>
       *
       * <code>optional int64 start_time_milis = 2;</code>
       */
      public Builder setStartTimeMilis(long value) {
        
        startTimeMilis_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Start of the build in ms since the epoche.
       * </pre>
       *
       * <code>optional int64 start_time_milis = 2;</code>
       */
      public Builder clearStartTimeMilis() {
        
        startTimeMilis_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object buildToolVersion_ = "";
      /**
       * <pre>
       * Version of the build tool that is running.
       * </pre>
       *
       * <code>optional string build_tool_version = 3;</code>
       */
      public java.lang.String getBuildToolVersion() {
        java.lang.Object ref = buildToolVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          buildToolVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Version of the build tool that is running.
       * </pre>
       *
       * <code>optional string build_tool_version = 3;</code>
       */
      public com.google.protobuf.ByteString
          getBuildToolVersionBytes() {
        java.lang.Object ref = buildToolVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          buildToolVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Version of the build tool that is running.
       * </pre>
       *
       * <code>optional string build_tool_version = 3;</code>
       */
      public Builder setBuildToolVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        buildToolVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Version of the build tool that is running.
       * </pre>
       *
       * <code>optional string build_tool_version = 3;</code>
       */
      public Builder clearBuildToolVersion() {
        
        buildToolVersion_ = getDefaultInstance().getBuildToolVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Version of the build tool that is running.
       * </pre>
       *
       * <code>optional string build_tool_version = 3;</code>
       */
      public Builder setBuildToolVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        buildToolVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object optionsDescription_ = "";
      /**
       * <pre>
       * A human-readable description of all the non-default option settings
       * </pre>
       *
       * <code>optional string options_description = 4;</code>
       */
      public java.lang.String getOptionsDescription() {
        java.lang.Object ref = optionsDescription_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          optionsDescription_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * A human-readable description of all the non-default option settings
       * </pre>
       *
       * <code>optional string options_description = 4;</code>
       */
      public com.google.protobuf.ByteString
          getOptionsDescriptionBytes() {
        java.lang.Object ref = optionsDescription_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          optionsDescription_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * A human-readable description of all the non-default option settings
       * </pre>
       *
       * <code>optional string options_description = 4;</code>
       */
      public Builder setOptionsDescription(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        optionsDescription_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A human-readable description of all the non-default option settings
       * </pre>
       *
       * <code>optional string options_description = 4;</code>
       */
      public Builder clearOptionsDescription() {
        
        optionsDescription_ = getDefaultInstance().getOptionsDescription();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A human-readable description of all the non-default option settings
       * </pre>
       *
       * <code>optional string options_description = 4;</code>
       */
      public Builder setOptionsDescriptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        optionsDescription_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object command_ = "";
      /**
       * <pre>
       * The name of the command that the user invoked.
       * </pre>
       *
       * <code>optional string command = 5;</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;
        }
      }
      /**
       * <pre>
       * The name of the command that the user invoked.
       * </pre>
       *
       * <code>optional string command = 5;</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;
        }
      }
      /**
       * <pre>
       * The name of the command that the user invoked.
       * </pre>
       *
       * <code>optional string command = 5;</code>
       */
      public Builder setCommand(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        command_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The name of the command that the user invoked.
       * </pre>
       *
       * <code>optional string command = 5;</code>
       */
      public Builder clearCommand() {
        
        command_ = getDefaultInstance().getCommand();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The name of the command that the user invoked.
       * </pre>
       *
       * <code>optional string command = 5;</code>
       */
      public Builder setCommandBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        command_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object workingDirectory_ = "";
      /**
       * <pre>
       * The working directory from which the build tool was invoked.
       * </pre>
       *
       * <code>optional string working_directory = 6;</code>
       */
      public java.lang.String getWorkingDirectory() {
        java.lang.Object ref = workingDirectory_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          workingDirectory_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The working directory from which the build tool was invoked.
       * </pre>
       *
       * <code>optional string working_directory = 6;</code>
       */
      public com.google.protobuf.ByteString
          getWorkingDirectoryBytes() {
        java.lang.Object ref = workingDirectory_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          workingDirectory_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The working directory from which the build tool was invoked.
       * </pre>
       *
       * <code>optional string working_directory = 6;</code>
       */
      public Builder setWorkingDirectory(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        workingDirectory_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The working directory from which the build tool was invoked.
       * </pre>
       *
       * <code>optional string working_directory = 6;</code>
       */
      public Builder clearWorkingDirectory() {
        
        workingDirectory_ = getDefaultInstance().getWorkingDirectory();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The working directory from which the build tool was invoked.
       * </pre>
       *
       * <code>optional string working_directory = 6;</code>
       */
      public Builder setWorkingDirectoryBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        workingDirectory_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object workspaceDirectory_ = "";
      /**
       * <pre>
       * The directory of the workspace.
       * </pre>
       *
       * <code>optional string workspace_directory = 7;</code>
       */
      public java.lang.String getWorkspaceDirectory() {
        java.lang.Object ref = workspaceDirectory_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          workspaceDirectory_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The directory of the workspace.
       * </pre>
       *
       * <code>optional string workspace_directory = 7;</code>
       */
      public com.google.protobuf.ByteString
          getWorkspaceDirectoryBytes() {
        java.lang.Object ref = workspaceDirectory_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          workspaceDirectory_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The directory of the workspace.
       * </pre>
       *
       * <code>optional string workspace_directory = 7;</code>
       */
      public Builder setWorkspaceDirectory(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        workspaceDirectory_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The directory of the workspace.
       * </pre>
       *
       * <code>optional string workspace_directory = 7;</code>
       */
      public Builder clearWorkspaceDirectory() {
        
        workspaceDirectory_ = getDefaultInstance().getWorkspaceDirectory();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The directory of the workspace.
       * </pre>
       *
       * <code>optional string workspace_directory = 7;</code>
       */
      public Builder setWorkspaceDirectoryBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        workspaceDirectory_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.BuildStarted)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.BuildStarted)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PatternExpandedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.PatternExpanded)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * Payload of the event indicating the expansion of a target pattern.
   * The main information is in the chaining part: the id will contain the
   * target pattern that was expanded and the children id will contain the
   * target or target pattern it was expanded to.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.PatternExpanded}
   */
  public  static final class PatternExpanded extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.PatternExpanded)
      PatternExpandedOrBuilder {
    // Use PatternExpanded.newBuilder() to construct.
    private PatternExpanded(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PatternExpanded() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private PatternExpanded(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_PatternExpanded_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_PatternExpanded_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) obj;

      boolean result = true;
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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;
    }
    /**
     * <pre>
     * Payload of the event indicating the expansion of a target pattern.
     * The main information is in the chaining part: the id will contain the
     * target pattern that was expanded and the children id will contain the
     * target or target pattern it was expanded to.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.PatternExpanded}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.PatternExpanded)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpandedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_PatternExpanded_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_PatternExpanded_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_PatternExpanded_descriptor;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.getDefaultInstance();
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded(this);
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.getDefaultInstance()) return this;
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.PatternExpanded)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.PatternExpanded)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.File)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * identifier indicating the nature of the file (e.g., "stdout", "stderr")
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     * <pre>
     * identifier indicating the nature of the file (e.g., "stdout", "stderr")
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <pre>
     * A location where the contents of the file can be found.
     * </pre>
     *
     * <code>optional string uri = 2;</code>
     */
    java.lang.String getUri();
    /**
     * <pre>
     * A location where the contents of the file can be found.
     * </pre>
     *
     * <code>optional string uri = 2;</code>
     */
    com.google.protobuf.ByteString
        getUriBytes();

    /**
     * <pre>
     * The conents of the file, if they are guaranteed to be short.
     * </pre>
     *
     * <code>optional bytes contents = 3;</code>
     */
    com.google.protobuf.ByteString getContents();

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.FileCase getFileCase();
  }
  /**
   * Protobuf type {@code build_event_stream.File}
   */
  public  static final class File extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.File)
      FileOrBuilder {
    // Use File.newBuilder() to construct.
    private File(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private File() {
      name_ = "";
    }

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

              name_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              fileCase_ = 2;
              file_ = s;
              break;
            }
            case 26: {
              fileCase_ = 3;
              file_ = input.readBytes();
              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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_File_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_File_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder.class);
    }

    private int fileCase_ = 0;
    private java.lang.Object file_;
    public enum FileCase
        implements com.google.protobuf.Internal.EnumLite {
      URI(2),
      CONTENTS(3),
      FILE_NOT_SET(0);
      private final int value;
      private FileCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static FileCase valueOf(int value) {
        return forNumber(value);
      }

      public static FileCase forNumber(int value) {
        switch (value) {
          case 2: return URI;
          case 3: return CONTENTS;
          case 0: return FILE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public FileCase
    getFileCase() {
      return FileCase.forNumber(
          fileCase_);
    }

    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <pre>
     * identifier indicating the nature of the file (e.g., "stdout", "stderr")
     * </pre>
     *
     * <code>optional 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;
      }
    }
    /**
     * <pre>
     * identifier indicating the nature of the file (e.g., "stdout", "stderr")
     * </pre>
     *
     * <code>optional 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 URI_FIELD_NUMBER = 2;
    /**
     * <pre>
     * A location where the contents of the file can be found.
     * </pre>
     *
     * <code>optional string uri = 2;</code>
     */
    public java.lang.String getUri() {
      java.lang.Object ref = "";
      if (fileCase_ == 2) {
        ref = file_;
      }
      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();
        if (fileCase_ == 2) {
          file_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * A location where the contents of the file can be found.
     * </pre>
     *
     * <code>optional string uri = 2;</code>
     */
    public com.google.protobuf.ByteString
        getUriBytes() {
      java.lang.Object ref = "";
      if (fileCase_ == 2) {
        ref = file_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (fileCase_ == 2) {
          file_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONTENTS_FIELD_NUMBER = 3;
    /**
     * <pre>
     * The conents of the file, if they are guaranteed to be short.
     * </pre>
     *
     * <code>optional bytes contents = 3;</code>
     */
    public com.google.protobuf.ByteString getContents() {
      if (fileCase_ == 3) {
        return (com.google.protobuf.ByteString) file_;
      }
      return com.google.protobuf.ByteString.EMPTY;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (fileCase_ == 2) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, file_);
      }
      if (fileCase_ == 3) {
        output.writeBytes(
            3, (com.google.protobuf.ByteString)((com.google.protobuf.ByteString) file_));
      }
    }

    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 (fileCase_ == 2) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, file_);
      }
      if (fileCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(
              3, (com.google.protobuf.ByteString)((com.google.protobuf.ByteString) file_));
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File) obj;

      boolean result = true;
      result = result && getName()
          .equals(other.getName());
      result = result && getFileCase().equals(
          other.getFileCase());
      if (!result) return false;
      switch (fileCase_) {
        case 2:
          result = result && getUri()
              .equals(other.getUri());
          break;
        case 3:
          result = result && getContents()
              .equals(other.getContents());
          break;
        case 0:
        default:
      }
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      switch (fileCase_) {
        case 2:
          hash = (37 * hash) + URI_FIELD_NUMBER;
          hash = (53 * hash) + getUri().hashCode();
          break;
        case 3:
          hash = (37 * hash) + CONTENTS_FIELD_NUMBER;
          hash = (53 * hash) + getContents().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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 build_event_stream.File}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.File)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_File_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_File_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        fileCase_ = 0;
        file_ = null;
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_File_descriptor;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance();
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File(this);
        result.name_ = name_;
        if (fileCase_ == 2) {
          result.file_ = file_;
        }
        if (fileCase_ == 3) {
          result.file_ = file_;
        }
        result.fileCase_ = fileCase_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        switch (other.getFileCase()) {
          case URI: {
            fileCase_ = 2;
            file_ = other.file_;
            onChanged();
            break;
          }
          case CONTENTS: {
            setContents(other.getContents());
            break;
          }
          case FILE_NOT_SET: {
            break;
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int fileCase_ = 0;
      private java.lang.Object file_;
      public FileCase
          getFileCase() {
        return FileCase.forNumber(
            fileCase_);
      }

      public Builder clearFile() {
        fileCase_ = 0;
        file_ = null;
        onChanged();
        return this;
      }


      private java.lang.Object name_ = "";
      /**
       * <pre>
       * identifier indicating the nature of the file (e.g., "stdout", "stderr")
       * </pre>
       *
       * <code>optional 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;
        }
      }
      /**
       * <pre>
       * identifier indicating the nature of the file (e.g., "stdout", "stderr")
       * </pre>
       *
       * <code>optional 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;
        }
      }
      /**
       * <pre>
       * identifier indicating the nature of the file (e.g., "stdout", "stderr")
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * identifier indicating the nature of the file (e.g., "stdout", "stderr")
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * identifier indicating the nature of the file (e.g., "stdout", "stderr")
       * </pre>
       *
       * <code>optional 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;
      }

      /**
       * <pre>
       * A location where the contents of the file can be found.
       * </pre>
       *
       * <code>optional string uri = 2;</code>
       */
      public java.lang.String getUri() {
        java.lang.Object ref = "";
        if (fileCase_ == 2) {
          ref = file_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (fileCase_ == 2) {
            file_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * A location where the contents of the file can be found.
       * </pre>
       *
       * <code>optional string uri = 2;</code>
       */
      public com.google.protobuf.ByteString
          getUriBytes() {
        java.lang.Object ref = "";
        if (fileCase_ == 2) {
          ref = file_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (fileCase_ == 2) {
            file_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * A location where the contents of the file can be found.
       * </pre>
       *
       * <code>optional string uri = 2;</code>
       */
      public Builder setUri(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  fileCase_ = 2;
        file_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * A location where the contents of the file can be found.
       * </pre>
       *
       * <code>optional string uri = 2;</code>
       */
      public Builder clearUri() {
        if (fileCase_ == 2) {
          fileCase_ = 0;
          file_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * A location where the contents of the file can be found.
       * </pre>
       *
       * <code>optional string uri = 2;</code>
       */
      public Builder setUriBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        fileCase_ = 2;
        file_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * The conents of the file, if they are guaranteed to be short.
       * </pre>
       *
       * <code>optional bytes contents = 3;</code>
       */
      public com.google.protobuf.ByteString getContents() {
        if (fileCase_ == 3) {
          return (com.google.protobuf.ByteString) file_;
        }
        return com.google.protobuf.ByteString.EMPTY;
      }
      /**
       * <pre>
       * The conents of the file, if they are guaranteed to be short.
       * </pre>
       *
       * <code>optional bytes contents = 3;</code>
       */
      public Builder setContents(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  fileCase_ = 3;
        file_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The conents of the file, if they are guaranteed to be short.
       * </pre>
       *
       * <code>optional bytes contents = 3;</code>
       */
      public Builder clearContents() {
        if (fileCase_ == 3) {
          fileCase_ = 0;
          file_ = null;
          onChanged();
        }
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.File)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.File)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ActionExecutedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.ActionExecuted)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional bool success = 1;</code>
     */
    boolean getSuccess();

    /**
     * <pre>
     * The exit code of the action, if it is available.
     * </pre>
     *
     * <code>optional int32 exit_code = 2;</code>
     */
    int getExitCode();

    /**
     * <pre>
     * Location where to find the standard output of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stdout = 3;</code>
     */
    boolean hasStdout();
    /**
     * <pre>
     * Location where to find the standard output of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stdout = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getStdout();
    /**
     * <pre>
     * Location where to find the standard output of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stdout = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getStdoutOrBuilder();

    /**
     * <pre>
     * Location where to find the standard error of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stderr = 4;</code>
     */
    boolean hasStderr();
    /**
     * <pre>
     * Location where to find the standard error of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stderr = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getStderr();
    /**
     * <pre>
     * Location where to find the standard error of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stderr = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getStderrOrBuilder();

    /**
     * <pre>
     * Optionally, the label of the owner of the action, for reference.
     * </pre>
     *
     * <code>optional string label = 5;</code>
     */
    java.lang.String getLabel();
    /**
     * <pre>
     * Optionally, the label of the owner of the action, for reference.
     * </pre>
     *
     * <code>optional string label = 5;</code>
     */
    com.google.protobuf.ByteString
        getLabelBytes();
  }
  /**
   * <pre>
   * Payload of the event indicating the completion of an action. The main purpose
   * of posting those events is to provide details on the root cause for a target
   * failing; however, consumers of the build-event protocol should not assume
   * that only failed actions are posted.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.ActionExecuted}
   */
  public  static final class ActionExecuted extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.ActionExecuted)
      ActionExecutedOrBuilder {
    // Use ActionExecuted.newBuilder() to construct.
    private ActionExecuted(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ActionExecuted() {
      success_ = false;
      exitCode_ = 0;
      label_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ActionExecuted(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              success_ = input.readBool();
              break;
            }
            case 16: {

              exitCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder subBuilder = null;
              if (stdout_ != null) {
                subBuilder = stdout_.toBuilder();
              }
              stdout_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(stdout_);
                stdout_ = subBuilder.buildPartial();
              }

              break;
            }
            case 34: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder subBuilder = null;
              if (stderr_ != null) {
                subBuilder = stderr_.toBuilder();
              }
              stderr_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(stderr_);
                stderr_ = subBuilder.buildPartial();
              }

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

              label_ = s;
              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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_ActionExecuted_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_ActionExecuted_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.Builder.class);
    }

    public static final int SUCCESS_FIELD_NUMBER = 1;
    private boolean success_;
    /**
     * <code>optional bool success = 1;</code>
     */
    public boolean getSuccess() {
      return success_;
    }

    public static final int EXIT_CODE_FIELD_NUMBER = 2;
    private int exitCode_;
    /**
     * <pre>
     * The exit code of the action, if it is available.
     * </pre>
     *
     * <code>optional int32 exit_code = 2;</code>
     */
    public int getExitCode() {
      return exitCode_;
    }

    public static final int STDOUT_FIELD_NUMBER = 3;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File stdout_;
    /**
     * <pre>
     * Location where to find the standard output of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stdout = 3;</code>
     */
    public boolean hasStdout() {
      return stdout_ != null;
    }
    /**
     * <pre>
     * Location where to find the standard output of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stdout = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getStdout() {
      return stdout_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance() : stdout_;
    }
    /**
     * <pre>
     * Location where to find the standard output of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stdout = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getStdoutOrBuilder() {
      return getStdout();
    }

    public static final int STDERR_FIELD_NUMBER = 4;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File stderr_;
    /**
     * <pre>
     * Location where to find the standard error of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stderr = 4;</code>
     */
    public boolean hasStderr() {
      return stderr_ != null;
    }
    /**
     * <pre>
     * Location where to find the standard error of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stderr = 4;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getStderr() {
      return stderr_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance() : stderr_;
    }
    /**
     * <pre>
     * Location where to find the standard error of the action
     * (e.g., a file path).
     * </pre>
     *
     * <code>optional .build_event_stream.File stderr = 4;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getStderrOrBuilder() {
      return getStderr();
    }

    public static final int LABEL_FIELD_NUMBER = 5;
    private volatile java.lang.Object label_;
    /**
     * <pre>
     * Optionally, the label of the owner of the action, for reference.
     * </pre>
     *
     * <code>optional string label = 5;</code>
     */
    public java.lang.String getLabel() {
      java.lang.Object ref = label_;
      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();
        label_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Optionally, the label of the owner of the action, for reference.
     * </pre>
     *
     * <code>optional string label = 5;</code>
     */
    public com.google.protobuf.ByteString
        getLabelBytes() {
      java.lang.Object ref = label_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        label_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (success_ != false) {
        output.writeBool(1, success_);
      }
      if (exitCode_ != 0) {
        output.writeInt32(2, exitCode_);
      }
      if (stdout_ != null) {
        output.writeMessage(3, getStdout());
      }
      if (stderr_ != null) {
        output.writeMessage(4, getStderr());
      }
      if (!getLabelBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, label_);
      }
    }

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

      size = 0;
      if (success_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, success_);
      }
      if (exitCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, exitCode_);
      }
      if (stdout_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getStdout());
      }
      if (stderr_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getStderr());
      }
      if (!getLabelBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, label_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) obj;

      boolean result = true;
      result = result && (getSuccess()
          == other.getSuccess());
      result = result && (getExitCode()
          == other.getExitCode());
      result = result && (hasStdout() == other.hasStdout());
      if (hasStdout()) {
        result = result && getStdout()
            .equals(other.getStdout());
      }
      result = result && (hasStderr() == other.hasStderr());
      if (hasStderr()) {
        result = result && getStderr()
            .equals(other.getStderr());
      }
      result = result && getLabel()
          .equals(other.getLabel());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getSuccess());
      hash = (37 * hash) + EXIT_CODE_FIELD_NUMBER;
      hash = (53 * hash) + getExitCode();
      if (hasStdout()) {
        hash = (37 * hash) + STDOUT_FIELD_NUMBER;
        hash = (53 * hash) + getStdout().hashCode();
      }
      if (hasStderr()) {
        hash = (37 * hash) + STDERR_FIELD_NUMBER;
        hash = (53 * hash) + getStderr().hashCode();
      }
      hash = (37 * hash) + LABEL_FIELD_NUMBER;
      hash = (53 * hash) + getLabel().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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;
    }
    /**
     * <pre>
     * Payload of the event indicating the completion of an action. The main purpose
     * of posting those events is to provide details on the root cause for a target
     * failing; however, consumers of the build-event protocol should not assume
     * that only failed actions are posted.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.ActionExecuted}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.ActionExecuted)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecutedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_ActionExecuted_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_ActionExecuted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        success_ = false;

        exitCode_ = 0;

        if (stdoutBuilder_ == null) {
          stdout_ = null;
        } else {
          stdout_ = null;
          stdoutBuilder_ = null;
        }
        if (stderrBuilder_ == null) {
          stderr_ = null;
        } else {
          stderr_ = null;
          stderrBuilder_ = null;
        }
        label_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_ActionExecuted_descriptor;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.getDefaultInstance();
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted(this);
        result.success_ = success_;
        result.exitCode_ = exitCode_;
        if (stdoutBuilder_ == null) {
          result.stdout_ = stdout_;
        } else {
          result.stdout_ = stdoutBuilder_.build();
        }
        if (stderrBuilder_ == null) {
          result.stderr_ = stderr_;
        } else {
          result.stderr_ = stderrBuilder_.build();
        }
        result.label_ = label_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.getDefaultInstance()) return this;
        if (other.getSuccess() != false) {
          setSuccess(other.getSuccess());
        }
        if (other.getExitCode() != 0) {
          setExitCode(other.getExitCode());
        }
        if (other.hasStdout()) {
          mergeStdout(other.getStdout());
        }
        if (other.hasStderr()) {
          mergeStderr(other.getStderr());
        }
        if (!other.getLabel().isEmpty()) {
          label_ = other.label_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private boolean success_ ;
      /**
       * <code>optional bool success = 1;</code>
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * <code>optional bool success = 1;</code>
       */
      public Builder setSuccess(boolean value) {
        
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool success = 1;</code>
       */
      public Builder clearSuccess() {
        
        success_ = false;
        onChanged();
        return this;
      }

      private int exitCode_ ;
      /**
       * <pre>
       * The exit code of the action, if it is available.
       * </pre>
       *
       * <code>optional int32 exit_code = 2;</code>
       */
      public int getExitCode() {
        return exitCode_;
      }
      /**
       * <pre>
       * The exit code of the action, if it is available.
       * </pre>
       *
       * <code>optional int32 exit_code = 2;</code>
       */
      public Builder setExitCode(int value) {
        
        exitCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The exit code of the action, if it is available.
       * </pre>
       *
       * <code>optional int32 exit_code = 2;</code>
       */
      public Builder clearExitCode() {
        
        exitCode_ = 0;
        onChanged();
        return this;
      }

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File stdout_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> stdoutBuilder_;
      /**
       * <pre>
       * Location where to find the standard output of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stdout = 3;</code>
       */
      public boolean hasStdout() {
        return stdoutBuilder_ != null || stdout_ != null;
      }
      /**
       * <pre>
       * Location where to find the standard output of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stdout = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getStdout() {
        if (stdoutBuilder_ == null) {
          return stdout_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance() : stdout_;
        } else {
          return stdoutBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Location where to find the standard output of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stdout = 3;</code>
       */
      public Builder setStdout(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (stdoutBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          stdout_ = value;
          onChanged();
        } else {
          stdoutBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Location where to find the standard output of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stdout = 3;</code>
       */
      public Builder setStdout(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (stdoutBuilder_ == null) {
          stdout_ = builderForValue.build();
          onChanged();
        } else {
          stdoutBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Location where to find the standard output of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stdout = 3;</code>
       */
      public Builder mergeStdout(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (stdoutBuilder_ == null) {
          if (stdout_ != null) {
            stdout_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.newBuilder(stdout_).mergeFrom(value).buildPartial();
          } else {
            stdout_ = value;
          }
          onChanged();
        } else {
          stdoutBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Location where to find the standard output of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stdout = 3;</code>
       */
      public Builder clearStdout() {
        if (stdoutBuilder_ == null) {
          stdout_ = null;
          onChanged();
        } else {
          stdout_ = null;
          stdoutBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Location where to find the standard output of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stdout = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder getStdoutBuilder() {
        
        onChanged();
        return getStdoutFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Location where to find the standard output of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stdout = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getStdoutOrBuilder() {
        if (stdoutBuilder_ != null) {
          return stdoutBuilder_.getMessageOrBuilder();
        } else {
          return stdout_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance() : stdout_;
        }
      }
      /**
       * <pre>
       * Location where to find the standard output of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stdout = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
          getStdoutFieldBuilder() {
        if (stdoutBuilder_ == null) {
          stdoutBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder>(
                  getStdout(),
                  getParentForChildren(),
                  isClean());
          stdout_ = null;
        }
        return stdoutBuilder_;
      }

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File stderr_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> stderrBuilder_;
      /**
       * <pre>
       * Location where to find the standard error of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stderr = 4;</code>
       */
      public boolean hasStderr() {
        return stderrBuilder_ != null || stderr_ != null;
      }
      /**
       * <pre>
       * Location where to find the standard error of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stderr = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getStderr() {
        if (stderrBuilder_ == null) {
          return stderr_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance() : stderr_;
        } else {
          return stderrBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Location where to find the standard error of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stderr = 4;</code>
       */
      public Builder setStderr(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (stderrBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          stderr_ = value;
          onChanged();
        } else {
          stderrBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Location where to find the standard error of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stderr = 4;</code>
       */
      public Builder setStderr(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (stderrBuilder_ == null) {
          stderr_ = builderForValue.build();
          onChanged();
        } else {
          stderrBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Location where to find the standard error of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stderr = 4;</code>
       */
      public Builder mergeStderr(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (stderrBuilder_ == null) {
          if (stderr_ != null) {
            stderr_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.newBuilder(stderr_).mergeFrom(value).buildPartial();
          } else {
            stderr_ = value;
          }
          onChanged();
        } else {
          stderrBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Location where to find the standard error of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stderr = 4;</code>
       */
      public Builder clearStderr() {
        if (stderrBuilder_ == null) {
          stderr_ = null;
          onChanged();
        } else {
          stderr_ = null;
          stderrBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Location where to find the standard error of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stderr = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder getStderrBuilder() {
        
        onChanged();
        return getStderrFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Location where to find the standard error of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stderr = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getStderrOrBuilder() {
        if (stderrBuilder_ != null) {
          return stderrBuilder_.getMessageOrBuilder();
        } else {
          return stderr_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance() : stderr_;
        }
      }
      /**
       * <pre>
       * Location where to find the standard error of the action
       * (e.g., a file path).
       * </pre>
       *
       * <code>optional .build_event_stream.File stderr = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
          getStderrFieldBuilder() {
        if (stderrBuilder_ == null) {
          stderrBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder>(
                  getStderr(),
                  getParentForChildren(),
                  isClean());
          stderr_ = null;
        }
        return stderrBuilder_;
      }

      private java.lang.Object label_ = "";
      /**
       * <pre>
       * Optionally, the label of the owner of the action, for reference.
       * </pre>
       *
       * <code>optional string label = 5;</code>
       */
      public java.lang.String getLabel() {
        java.lang.Object ref = label_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          label_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Optionally, the label of the owner of the action, for reference.
       * </pre>
       *
       * <code>optional string label = 5;</code>
       */
      public com.google.protobuf.ByteString
          getLabelBytes() {
        java.lang.Object ref = label_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          label_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Optionally, the label of the owner of the action, for reference.
       * </pre>
       *
       * <code>optional string label = 5;</code>
       */
      public Builder setLabel(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        label_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optionally, the label of the owner of the action, for reference.
       * </pre>
       *
       * <code>optional string label = 5;</code>
       */
      public Builder clearLabel() {
        
        label_ = getDefaultInstance().getLabel();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optionally, the label of the owner of the action, for reference.
       * </pre>
       *
       * <code>optional string label = 5;</code>
       */
      public Builder setLabelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        label_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.ActionExecuted)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.ActionExecuted)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TargetCompleteOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.TargetComplete)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional bool success = 1;</code>
     */
    boolean getSuccess();
  }
  /**
   * <pre>
   * Payload of the event indicating the completion of a target. The target is
   * specified in the id. If the target failed the root causes are provided as
   * children events.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.TargetComplete}
   */
  public  static final class TargetComplete extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.TargetComplete)
      TargetCompleteOrBuilder {
    // Use TargetComplete.newBuilder() to construct.
    private TargetComplete(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TargetComplete() {
      success_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private TargetComplete(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              success_ = input.readBool();
              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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TargetComplete_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TargetComplete_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.Builder.class);
    }

    public static final int SUCCESS_FIELD_NUMBER = 1;
    private boolean success_;
    /**
     * <code>optional bool success = 1;</code>
     */
    public boolean getSuccess() {
      return success_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (success_ != false) {
        output.writeBool(1, success_);
      }
    }

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

      size = 0;
      if (success_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, success_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) obj;

      boolean result = true;
      result = result && (getSuccess()
          == other.getSuccess());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getSuccess());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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;
    }
    /**
     * <pre>
     * Payload of the event indicating the completion of a target. The target is
     * specified in the id. If the target failed the root causes are provided as
     * children events.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.TargetComplete}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.TargetComplete)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetCompleteOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TargetComplete_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TargetComplete_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        success_ = false;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TargetComplete_descriptor;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.getDefaultInstance();
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete(this);
        result.success_ = success_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.getDefaultInstance()) return this;
        if (other.getSuccess() != false) {
          setSuccess(other.getSuccess());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private boolean success_ ;
      /**
       * <code>optional bool success = 1;</code>
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * <code>optional bool success = 1;</code>
       */
      public Builder setSuccess(boolean value) {
        
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool success = 1;</code>
       */
      public Builder clearSuccess() {
        
        success_ = false;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.TargetComplete)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.TargetComplete)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TestSummaryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.TestSummary)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Total number of runs
     * </pre>
     *
     * <code>optional int32 total_run_count = 1;</code>
     */
    int getTotalRunCount();

    /**
     * <pre>
     * Path to logs of passed runs.
     * </pre>
     *
     * <code>repeated .build_event_stream.File passed = 3;</code>
     */
    java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> 
        getPassedList();
    /**
     * <pre>
     * Path to logs of passed runs.
     * </pre>
     *
     * <code>repeated .build_event_stream.File passed = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getPassed(int index);
    /**
     * <pre>
     * Path to logs of passed runs.
     * </pre>
     *
     * <code>repeated .build_event_stream.File passed = 3;</code>
     */
    int getPassedCount();
    /**
     * <pre>
     * Path to logs of passed runs.
     * </pre>
     *
     * <code>repeated .build_event_stream.File passed = 3;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getPassedOrBuilderList();
    /**
     * <pre>
     * Path to logs of passed runs.
     * </pre>
     *
     * <code>repeated .build_event_stream.File passed = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getPassedOrBuilder(
        int index);

    /**
     * <pre>
     * Path to logs of failed runs;
     * </pre>
     *
     * <code>repeated .build_event_stream.File failed = 4;</code>
     */
    java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> 
        getFailedList();
    /**
     * <pre>
     * Path to logs of failed runs;
     * </pre>
     *
     * <code>repeated .build_event_stream.File failed = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getFailed(int index);
    /**
     * <pre>
     * Path to logs of failed runs;
     * </pre>
     *
     * <code>repeated .build_event_stream.File failed = 4;</code>
     */
    int getFailedCount();
    /**
     * <pre>
     * Path to logs of failed runs;
     * </pre>
     *
     * <code>repeated .build_event_stream.File failed = 4;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getFailedOrBuilderList();
    /**
     * <pre>
     * Path to logs of failed runs;
     * </pre>
     *
     * <code>repeated .build_event_stream.File failed = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getFailedOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Payload of the event summarizing a test.
   * TODO(aehlig): extend event with additional information as soon as we known
   * which additional information we need for test summaries.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.TestSummary}
   */
  public  static final class TestSummary extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.TestSummary)
      TestSummaryOrBuilder {
    // Use TestSummary.newBuilder() to construct.
    private TestSummary(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TestSummary() {
      totalRunCount_ = 0;
      passed_ = java.util.Collections.emptyList();
      failed_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private TestSummary(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              totalRunCount_ = input.readInt32();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                passed_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>();
                mutable_bitField0_ |= 0x00000002;
              }
              passed_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry));
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                failed_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>();
                mutable_bitField0_ |= 0x00000004;
              }
              failed_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry));
              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)) {
          passed_ = java.util.Collections.unmodifiableList(passed_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          failed_ = java.util.Collections.unmodifiableList(failed_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestSummary_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestSummary_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.Builder.class);
    }

    private int bitField0_;
    public static final int TOTAL_RUN_COUNT_FIELD_NUMBER = 1;
    private int totalRunCount_;
    /**
     * <pre>
     * Total number of runs
     * </pre>
     *
     * <code>optional int32 total_run_count = 1;</code>
     */
    public int getTotalRunCount() {
      return totalRunCount_;
    }

    public static final int PASSED_FIELD_NUMBER = 3;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> passed_;
    /**
     * <pre>
     * Path to logs of passed runs.
     * </pre>
     *
     * <code>repeated .build_event_stream.File passed = 3;</code>
     */
    public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getPassedList() {
      return passed_;
    }
    /**
     * <pre>
     * Path to logs of passed runs.
     * </pre>
     *
     * <code>repeated .build_event_stream.File passed = 3;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getPassedOrBuilderList() {
      return passed_;
    }
    /**
     * <pre>
     * Path to logs of passed runs.
     * </pre>
     *
     * <code>repeated .build_event_stream.File passed = 3;</code>
     */
    public int getPassedCount() {
      return passed_.size();
    }
    /**
     * <pre>
     * Path to logs of passed runs.
     * </pre>
     *
     * <code>repeated .build_event_stream.File passed = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getPassed(int index) {
      return passed_.get(index);
    }
    /**
     * <pre>
     * Path to logs of passed runs.
     * </pre>
     *
     * <code>repeated .build_event_stream.File passed = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getPassedOrBuilder(
        int index) {
      return passed_.get(index);
    }

    public static final int FAILED_FIELD_NUMBER = 4;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> failed_;
    /**
     * <pre>
     * Path to logs of failed runs;
     * </pre>
     *
     * <code>repeated .build_event_stream.File failed = 4;</code>
     */
    public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getFailedList() {
      return failed_;
    }
    /**
     * <pre>
     * Path to logs of failed runs;
     * </pre>
     *
     * <code>repeated .build_event_stream.File failed = 4;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getFailedOrBuilderList() {
      return failed_;
    }
    /**
     * <pre>
     * Path to logs of failed runs;
     * </pre>
     *
     * <code>repeated .build_event_stream.File failed = 4;</code>
     */
    public int getFailedCount() {
      return failed_.size();
    }
    /**
     * <pre>
     * Path to logs of failed runs;
     * </pre>
     *
     * <code>repeated .build_event_stream.File failed = 4;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getFailed(int index) {
      return failed_.get(index);
    }
    /**
     * <pre>
     * Path to logs of failed runs;
     * </pre>
     *
     * <code>repeated .build_event_stream.File failed = 4;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getFailedOrBuilder(
        int index) {
      return failed_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (totalRunCount_ != 0) {
        output.writeInt32(1, totalRunCount_);
      }
      for (int i = 0; i < passed_.size(); i++) {
        output.writeMessage(3, passed_.get(i));
      }
      for (int i = 0; i < failed_.size(); i++) {
        output.writeMessage(4, failed_.get(i));
      }
    }

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

      size = 0;
      if (totalRunCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, totalRunCount_);
      }
      for (int i = 0; i < passed_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, passed_.get(i));
      }
      for (int i = 0; i < failed_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, failed_.get(i));
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) obj;

      boolean result = true;
      result = result && (getTotalRunCount()
          == other.getTotalRunCount());
      result = result && getPassedList()
          .equals(other.getPassedList());
      result = result && getFailedList()
          .equals(other.getFailedList());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + TOTAL_RUN_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getTotalRunCount();
      if (getPassedCount() > 0) {
        hash = (37 * hash) + PASSED_FIELD_NUMBER;
        hash = (53 * hash) + getPassedList().hashCode();
      }
      if (getFailedCount() > 0) {
        hash = (37 * hash) + FAILED_FIELD_NUMBER;
        hash = (53 * hash) + getFailedList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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;
    }
    /**
     * <pre>
     * Payload of the event summarizing a test.
     * TODO(aehlig): extend event with additional information as soon as we known
     * which additional information we need for test summaries.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.TestSummary}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.TestSummary)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummaryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestSummary_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestSummary_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPassedFieldBuilder();
          getFailedFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        totalRunCount_ = 0;

        if (passedBuilder_ == null) {
          passed_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          passedBuilder_.clear();
        }
        if (failedBuilder_ == null) {
          failed_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          failedBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestSummary_descriptor;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.getDefaultInstance();
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.totalRunCount_ = totalRunCount_;
        if (passedBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            passed_ = java.util.Collections.unmodifiableList(passed_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.passed_ = passed_;
        } else {
          result.passed_ = passedBuilder_.build();
        }
        if (failedBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            failed_ = java.util.Collections.unmodifiableList(failed_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.failed_ = failed_;
        } else {
          result.failed_ = failedBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.getDefaultInstance()) return this;
        if (other.getTotalRunCount() != 0) {
          setTotalRunCount(other.getTotalRunCount());
        }
        if (passedBuilder_ == null) {
          if (!other.passed_.isEmpty()) {
            if (passed_.isEmpty()) {
              passed_ = other.passed_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePassedIsMutable();
              passed_.addAll(other.passed_);
            }
            onChanged();
          }
        } else {
          if (!other.passed_.isEmpty()) {
            if (passedBuilder_.isEmpty()) {
              passedBuilder_.dispose();
              passedBuilder_ = null;
              passed_ = other.passed_;
              bitField0_ = (bitField0_ & ~0x00000002);
              passedBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPassedFieldBuilder() : null;
            } else {
              passedBuilder_.addAllMessages(other.passed_);
            }
          }
        }
        if (failedBuilder_ == null) {
          if (!other.failed_.isEmpty()) {
            if (failed_.isEmpty()) {
              failed_ = other.failed_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureFailedIsMutable();
              failed_.addAll(other.failed_);
            }
            onChanged();
          }
        } else {
          if (!other.failed_.isEmpty()) {
            if (failedBuilder_.isEmpty()) {
              failedBuilder_.dispose();
              failedBuilder_ = null;
              failed_ = other.failed_;
              bitField0_ = (bitField0_ & ~0x00000004);
              failedBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFailedFieldBuilder() : null;
            } else {
              failedBuilder_.addAllMessages(other.failed_);
            }
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int totalRunCount_ ;
      /**
       * <pre>
       * Total number of runs
       * </pre>
       *
       * <code>optional int32 total_run_count = 1;</code>
       */
      public int getTotalRunCount() {
        return totalRunCount_;
      }
      /**
       * <pre>
       * Total number of runs
       * </pre>
       *
       * <code>optional int32 total_run_count = 1;</code>
       */
      public Builder setTotalRunCount(int value) {
        
        totalRunCount_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Total number of runs
       * </pre>
       *
       * <code>optional int32 total_run_count = 1;</code>
       */
      public Builder clearTotalRunCount() {
        
        totalRunCount_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> passed_ =
        java.util.Collections.emptyList();
      private void ensurePassedIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          passed_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>(passed_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> passedBuilder_;

      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getPassedList() {
        if (passedBuilder_ == null) {
          return java.util.Collections.unmodifiableList(passed_);
        } else {
          return passedBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public int getPassedCount() {
        if (passedBuilder_ == null) {
          return passed_.size();
        } else {
          return passedBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getPassed(int index) {
        if (passedBuilder_ == null) {
          return passed_.get(index);
        } else {
          return passedBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public Builder setPassed(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (passedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePassedIsMutable();
          passed_.set(index, value);
          onChanged();
        } else {
          passedBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public Builder setPassed(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (passedBuilder_ == null) {
          ensurePassedIsMutable();
          passed_.set(index, builderForValue.build());
          onChanged();
        } else {
          passedBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public Builder addPassed(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (passedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePassedIsMutable();
          passed_.add(value);
          onChanged();
        } else {
          passedBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public Builder addPassed(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (passedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePassedIsMutable();
          passed_.add(index, value);
          onChanged();
        } else {
          passedBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public Builder addPassed(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (passedBuilder_ == null) {
          ensurePassedIsMutable();
          passed_.add(builderForValue.build());
          onChanged();
        } else {
          passedBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public Builder addPassed(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (passedBuilder_ == null) {
          ensurePassedIsMutable();
          passed_.add(index, builderForValue.build());
          onChanged();
        } else {
          passedBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public Builder addAllPassed(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> values) {
        if (passedBuilder_ == null) {
          ensurePassedIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, passed_);
          onChanged();
        } else {
          passedBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public Builder clearPassed() {
        if (passedBuilder_ == null) {
          passed_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          passedBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public Builder removePassed(int index) {
        if (passedBuilder_ == null) {
          ensurePassedIsMutable();
          passed_.remove(index);
          onChanged();
        } else {
          passedBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder getPassedBuilder(
          int index) {
        return getPassedFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getPassedOrBuilder(
          int index) {
        if (passedBuilder_ == null) {
          return passed_.get(index);  } else {
          return passedBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
           getPassedOrBuilderList() {
        if (passedBuilder_ != null) {
          return passedBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(passed_);
        }
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addPassedBuilder() {
        return getPassedFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addPassedBuilder(
          int index) {
        return getPassedFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <pre>
       * Path to logs of passed runs.
       * </pre>
       *
       * <code>repeated .build_event_stream.File passed = 3;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder> 
           getPassedBuilderList() {
        return getPassedFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
          getPassedFieldBuilder() {
        if (passedBuilder_ == null) {
          passedBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder>(
                  passed_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          passed_ = null;
        }
        return passedBuilder_;
      }

      private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> failed_ =
        java.util.Collections.emptyList();
      private void ensureFailedIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          failed_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>(failed_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> failedBuilder_;

      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getFailedList() {
        if (failedBuilder_ == null) {
          return java.util.Collections.unmodifiableList(failed_);
        } else {
          return failedBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public int getFailedCount() {
        if (failedBuilder_ == null) {
          return failed_.size();
        } else {
          return failedBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getFailed(int index) {
        if (failedBuilder_ == null) {
          return failed_.get(index);
        } else {
          return failedBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public Builder setFailed(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (failedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFailedIsMutable();
          failed_.set(index, value);
          onChanged();
        } else {
          failedBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public Builder setFailed(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (failedBuilder_ == null) {
          ensureFailedIsMutable();
          failed_.set(index, builderForValue.build());
          onChanged();
        } else {
          failedBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public Builder addFailed(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (failedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFailedIsMutable();
          failed_.add(value);
          onChanged();
        } else {
          failedBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public Builder addFailed(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (failedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFailedIsMutable();
          failed_.add(index, value);
          onChanged();
        } else {
          failedBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public Builder addFailed(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (failedBuilder_ == null) {
          ensureFailedIsMutable();
          failed_.add(builderForValue.build());
          onChanged();
        } else {
          failedBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public Builder addFailed(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (failedBuilder_ == null) {
          ensureFailedIsMutable();
          failed_.add(index, builderForValue.build());
          onChanged();
        } else {
          failedBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public Builder addAllFailed(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> values) {
        if (failedBuilder_ == null) {
          ensureFailedIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, failed_);
          onChanged();
        } else {
          failedBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public Builder clearFailed() {
        if (failedBuilder_ == null) {
          failed_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          failedBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public Builder removeFailed(int index) {
        if (failedBuilder_ == null) {
          ensureFailedIsMutable();
          failed_.remove(index);
          onChanged();
        } else {
          failedBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder getFailedBuilder(
          int index) {
        return getFailedFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getFailedOrBuilder(
          int index) {
        if (failedBuilder_ == null) {
          return failed_.get(index);  } else {
          return failedBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
           getFailedOrBuilderList() {
        if (failedBuilder_ != null) {
          return failedBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(failed_);
        }
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addFailedBuilder() {
        return getFailedFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addFailedBuilder(
          int index) {
        return getFailedFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <pre>
       * Path to logs of failed runs;
       * </pre>
       *
       * <code>repeated .build_event_stream.File failed = 4;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder> 
           getFailedBuilderList() {
        return getFailedFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
          getFailedFieldBuilder() {
        if (failedBuilder_ == null) {
          failedBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder>(
                  failed_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          failed_ = null;
        }
        return failedBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.TestSummary)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.TestSummary)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BuildEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .build_event_stream.BuildEventId id = 1;</code>
     */
    boolean hasId();
    /**
     * <code>optional .build_event_stream.BuildEventId id = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId getId();
    /**
     * <code>optional .build_event_stream.BuildEventId id = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder getIdOrBuilder();

    /**
     * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
     */
    java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId> 
        getChildrenList();
    /**
     * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId getChildren(int index);
    /**
     * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
     */
    int getChildrenCount();
    /**
     * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder> 
        getChildrenOrBuilderList();
    /**
     * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder getChildrenOrBuilder(
        int index);

    /**
     * <code>optional .build_event_stream.Progress progress = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress getProgress();
    /**
     * <code>optional .build_event_stream.Progress progress = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ProgressOrBuilder getProgressOrBuilder();

    /**
     * <code>optional .build_event_stream.Aborted aborted = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted getAborted();
    /**
     * <code>optional .build_event_stream.Aborted aborted = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.AbortedOrBuilder getAbortedOrBuilder();

    /**
     * <code>optional .build_event_stream.BuildStarted started = 5;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted getStarted();
    /**
     * <code>optional .build_event_stream.BuildStarted started = 5;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStartedOrBuilder getStartedOrBuilder();

    /**
     * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded getExpanded();
    /**
     * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpandedOrBuilder getExpandedOrBuilder();

    /**
     * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted getAction();
    /**
     * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecutedOrBuilder getActionOrBuilder();

    /**
     * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete getCompleted();
    /**
     * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetCompleteOrBuilder getCompletedOrBuilder();

    /**
     * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary getTestSummary();
    /**
     * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummaryOrBuilder getTestSummaryOrBuilder();

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent.PayloadCase getPayloadCase();
  }
  /**
   * <pre>
   * Message describing a build event. Events will have an identifier that
   * is unique within a given build invocation; they also announce follow-up
   * events as children. More details, which are specific to the kind of event
   * that is observed, is provided in the payload. More options for the payload
   * might be added in the future.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.BuildEvent}
   */
  public  static final class BuildEvent extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.BuildEvent)
      BuildEventOrBuilder {
    // Use BuildEvent.newBuilder() to construct.
    private BuildEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BuildEvent() {
      children_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private BuildEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder subBuilder = null;
              if (id_ != null) {
                subBuilder = id_.toBuilder();
              }
              id_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(id_);
                id_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                children_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId>();
                mutable_bitField0_ |= 0x00000002;
              }
              children_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.parser(), extensionRegistry));
              break;
            }
            case 26: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.Builder subBuilder = null;
              if (payloadCase_ == 3) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 3;
              break;
            }
            case 34: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.Builder subBuilder = null;
              if (payloadCase_ == 4) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 4;
              break;
            }
            case 42: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.Builder subBuilder = null;
              if (payloadCase_ == 5) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 5;
              break;
            }
            case 50: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.Builder subBuilder = null;
              if (payloadCase_ == 6) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 6;
              break;
            }
            case 58: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.Builder subBuilder = null;
              if (payloadCase_ == 7) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 7;
              break;
            }
            case 66: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.Builder subBuilder = null;
              if (payloadCase_ == 8) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 8;
              break;
            }
            case 74: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.Builder subBuilder = null;
              if (payloadCase_ == 9) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 9;
              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)) {
          children_ = java.util.Collections.unmodifiableList(children_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent.Builder.class);
    }

    private int bitField0_;
    private int payloadCase_ = 0;
    private java.lang.Object payload_;
    public enum PayloadCase
        implements com.google.protobuf.Internal.EnumLite {
      PROGRESS(3),
      ABORTED(4),
      STARTED(5),
      EXPANDED(6),
      ACTION(7),
      COMPLETED(8),
      TEST_SUMMARY(9),
      PAYLOAD_NOT_SET(0);
      private final int value;
      private PayloadCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PayloadCase valueOf(int value) {
        return forNumber(value);
      }

      public static PayloadCase forNumber(int value) {
        switch (value) {
          case 3: return PROGRESS;
          case 4: return ABORTED;
          case 5: return STARTED;
          case 6: return EXPANDED;
          case 7: return ACTION;
          case 8: return COMPLETED;
          case 9: return TEST_SUMMARY;
          case 0: return PAYLOAD_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public PayloadCase
    getPayloadCase() {
      return PayloadCase.forNumber(
          payloadCase_);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId id_;
    /**
     * <code>optional .build_event_stream.BuildEventId id = 1;</code>
     */
    public boolean hasId() {
      return id_ != null;
    }
    /**
     * <code>optional .build_event_stream.BuildEventId id = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId getId() {
      return id_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.getDefaultInstance() : id_;
    }
    /**
     * <code>optional .build_event_stream.BuildEventId id = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder getIdOrBuilder() {
      return getId();
    }

    public static final int CHILDREN_FIELD_NUMBER = 2;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId> children_;
    /**
     * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
     */
    public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId> getChildrenList() {
      return children_;
    }
    /**
     * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder> 
        getChildrenOrBuilderList() {
      return children_;
    }
    /**
     * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
     */
    public int getChildrenCount() {
      return children_.size();
    }
    /**
     * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId getChildren(int index) {
      return children_.get(index);
    }
    /**
     * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder getChildrenOrBuilder(
        int index) {
      return children_.get(index);
    }

    public static final int PROGRESS_FIELD_NUMBER = 3;
    /**
     * <code>optional .build_event_stream.Progress progress = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress getProgress() {
      if (payloadCase_ == 3) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.Progress progress = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ProgressOrBuilder getProgressOrBuilder() {
      if (payloadCase_ == 3) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.getDefaultInstance();
    }

    public static final int ABORTED_FIELD_NUMBER = 4;
    /**
     * <code>optional .build_event_stream.Aborted aborted = 4;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted getAborted() {
      if (payloadCase_ == 4) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.Aborted aborted = 4;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.AbortedOrBuilder getAbortedOrBuilder() {
      if (payloadCase_ == 4) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.getDefaultInstance();
    }

    public static final int STARTED_FIELD_NUMBER = 5;
    /**
     * <code>optional .build_event_stream.BuildStarted started = 5;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted getStarted() {
      if (payloadCase_ == 5) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.BuildStarted started = 5;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStartedOrBuilder getStartedOrBuilder() {
      if (payloadCase_ == 5) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.getDefaultInstance();
    }

    public static final int EXPANDED_FIELD_NUMBER = 6;
    /**
     * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded getExpanded() {
      if (payloadCase_ == 6) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpandedOrBuilder getExpandedOrBuilder() {
      if (payloadCase_ == 6) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.getDefaultInstance();
    }

    public static final int ACTION_FIELD_NUMBER = 7;
    /**
     * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted getAction() {
      if (payloadCase_ == 7) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecutedOrBuilder getActionOrBuilder() {
      if (payloadCase_ == 7) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.getDefaultInstance();
    }

    public static final int COMPLETED_FIELD_NUMBER = 8;
    /**
     * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete getCompleted() {
      if (payloadCase_ == 8) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetCompleteOrBuilder getCompletedOrBuilder() {
      if (payloadCase_ == 8) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.getDefaultInstance();
    }

    public static final int TEST_SUMMARY_FIELD_NUMBER = 9;
    /**
     * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary getTestSummary() {
      if (payloadCase_ == 9) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.getDefaultInstance();
    }
    /**
     * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummaryOrBuilder getTestSummaryOrBuilder() {
      if (payloadCase_ == 9) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != null) {
        output.writeMessage(1, getId());
      }
      for (int i = 0; i < children_.size(); i++) {
        output.writeMessage(2, children_.get(i));
      }
      if (payloadCase_ == 3) {
        output.writeMessage(3, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) payload_);
      }
      if (payloadCase_ == 4) {
        output.writeMessage(4, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) payload_);
      }
      if (payloadCase_ == 5) {
        output.writeMessage(5, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) payload_);
      }
      if (payloadCase_ == 6) {
        output.writeMessage(6, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) payload_);
      }
      if (payloadCase_ == 7) {
        output.writeMessage(7, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) payload_);
      }
      if (payloadCase_ == 8) {
        output.writeMessage(8, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) payload_);
      }
      if (payloadCase_ == 9) {
        output.writeMessage(9, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) payload_);
      }
    }

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

      size = 0;
      if (id_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getId());
      }
      for (int i = 0; i < children_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, children_.get(i));
      }
      if (payloadCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) payload_);
      }
      if (payloadCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) payload_);
      }
      if (payloadCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) payload_);
      }
      if (payloadCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) payload_);
      }
      if (payloadCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) payload_);
      }
      if (payloadCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) payload_);
      }
      if (payloadCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) payload_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent) obj;

      boolean result = true;
      result = result && (hasId() == other.hasId());
      if (hasId()) {
        result = result && getId()
            .equals(other.getId());
      }
      result = result && getChildrenList()
          .equals(other.getChildrenList());
      result = result && getPayloadCase().equals(
          other.getPayloadCase());
      if (!result) return false;
      switch (payloadCase_) {
        case 3:
          result = result && getProgress()
              .equals(other.getProgress());
          break;
        case 4:
          result = result && getAborted()
              .equals(other.getAborted());
          break;
        case 5:
          result = result && getStarted()
              .equals(other.getStarted());
          break;
        case 6:
          result = result && getExpanded()
              .equals(other.getExpanded());
          break;
        case 7:
          result = result && getAction()
              .equals(other.getAction());
          break;
        case 8:
          result = result && getCompleted()
              .equals(other.getCompleted());
          break;
        case 9:
          result = result && getTestSummary()
              .equals(other.getTestSummary());
          break;
        case 0:
        default:
      }
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + getId().hashCode();
      }
      if (getChildrenCount() > 0) {
        hash = (37 * hash) + CHILDREN_FIELD_NUMBER;
        hash = (53 * hash) + getChildrenList().hashCode();
      }
      switch (payloadCase_) {
        case 3:
          hash = (37 * hash) + PROGRESS_FIELD_NUMBER;
          hash = (53 * hash) + getProgress().hashCode();
          break;
        case 4:
          hash = (37 * hash) + ABORTED_FIELD_NUMBER;
          hash = (53 * hash) + getAborted().hashCode();
          break;
        case 5:
          hash = (37 * hash) + STARTED_FIELD_NUMBER;
          hash = (53 * hash) + getStarted().hashCode();
          break;
        case 6:
          hash = (37 * hash) + EXPANDED_FIELD_NUMBER;
          hash = (53 * hash) + getExpanded().hashCode();
          break;
        case 7:
          hash = (37 * hash) + ACTION_FIELD_NUMBER;
          hash = (53 * hash) + getAction().hashCode();
          break;
        case 8:
          hash = (37 * hash) + COMPLETED_FIELD_NUMBER;
          hash = (53 * hash) + getCompleted().hashCode();
          break;
        case 9:
          hash = (37 * hash) + TEST_SUMMARY_FIELD_NUMBER;
          hash = (53 * hash) + getTestSummary().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent 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 com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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;
    }
    /**
     * <pre>
     * Message describing a build event. Events will have an identifier that
     * is unique within a given build invocation; they also announce follow-up
     * events as children. More details, which are specific to the kind of event
     * that is observed, is provided in the payload. More options for the payload
     * might be added in the future.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEvent)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getChildrenFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (idBuilder_ == null) {
          id_ = null;
        } else {
          id_ = null;
          idBuilder_ = null;
        }
        if (childrenBuilder_ == null) {
          children_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          childrenBuilder_.clear();
        }
        payloadCase_ = 0;
        payload_ = null;
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEvent_descriptor;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent.getDefaultInstance();
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (idBuilder_ == null) {
          result.id_ = id_;
        } else {
          result.id_ = idBuilder_.build();
        }
        if (childrenBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            children_ = java.util.Collections.unmodifiableList(children_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.children_ = children_;
        } else {
          result.children_ = childrenBuilder_.build();
        }
        if (payloadCase_ == 3) {
          if (progressBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = progressBuilder_.build();
          }
        }
        if (payloadCase_ == 4) {
          if (abortedBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = abortedBuilder_.build();
          }
        }
        if (payloadCase_ == 5) {
          if (startedBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = startedBuilder_.build();
          }
        }
        if (payloadCase_ == 6) {
          if (expandedBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = expandedBuilder_.build();
          }
        }
        if (payloadCase_ == 7) {
          if (actionBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = actionBuilder_.build();
          }
        }
        if (payloadCase_ == 8) {
          if (completedBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = completedBuilder_.build();
          }
        }
        if (payloadCase_ == 9) {
          if (testSummaryBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = testSummaryBuilder_.build();
          }
        }
        result.bitField0_ = to_bitField0_;
        result.payloadCase_ = payloadCase_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent.getDefaultInstance()) return this;
        if (other.hasId()) {
          mergeId(other.getId());
        }
        if (childrenBuilder_ == null) {
          if (!other.children_.isEmpty()) {
            if (children_.isEmpty()) {
              children_ = other.children_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureChildrenIsMutable();
              children_.addAll(other.children_);
            }
            onChanged();
          }
        } else {
          if (!other.children_.isEmpty()) {
            if (childrenBuilder_.isEmpty()) {
              childrenBuilder_.dispose();
              childrenBuilder_ = null;
              children_ = other.children_;
              bitField0_ = (bitField0_ & ~0x00000002);
              childrenBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getChildrenFieldBuilder() : null;
            } else {
              childrenBuilder_.addAllMessages(other.children_);
            }
          }
        }
        switch (other.getPayloadCase()) {
          case PROGRESS: {
            mergeProgress(other.getProgress());
            break;
          }
          case ABORTED: {
            mergeAborted(other.getAborted());
            break;
          }
          case STARTED: {
            mergeStarted(other.getStarted());
            break;
          }
          case EXPANDED: {
            mergeExpanded(other.getExpanded());
            break;
          }
          case ACTION: {
            mergeAction(other.getAction());
            break;
          }
          case COMPLETED: {
            mergeCompleted(other.getCompleted());
            break;
          }
          case TEST_SUMMARY: {
            mergeTestSummary(other.getTestSummary());
            break;
          }
          case PAYLOAD_NOT_SET: {
            break;
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int payloadCase_ = 0;
      private java.lang.Object payload_;
      public PayloadCase
          getPayloadCase() {
        return PayloadCase.forNumber(
            payloadCase_);
      }

      public Builder clearPayload() {
        payloadCase_ = 0;
        payload_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId id_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder> idBuilder_;
      /**
       * <code>optional .build_event_stream.BuildEventId id = 1;</code>
       */
      public boolean hasId() {
        return idBuilder_ != null || id_ != null;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId id = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId getId() {
        if (idBuilder_ == null) {
          return id_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.getDefaultInstance() : id_;
        } else {
          return idBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId id = 1;</code>
       */
      public Builder setId(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId value) {
        if (idBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          idBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId id = 1;</code>
       */
      public Builder setId(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder builderForValue) {
        if (idBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          idBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId id = 1;</code>
       */
      public Builder mergeId(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId value) {
        if (idBuilder_ == null) {
          if (id_ != null) {
            id_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.newBuilder(id_).mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          idBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId id = 1;</code>
       */
      public Builder clearId() {
        if (idBuilder_ == null) {
          id_ = null;
          onChanged();
        } else {
          id_ = null;
          idBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildEventId id = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder getIdBuilder() {
        
        onChanged();
        return getIdFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.BuildEventId id = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder getIdOrBuilder() {
        if (idBuilder_ != null) {
          return idBuilder_.getMessageOrBuilder();
        } else {
          return id_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.getDefaultInstance() : id_;
        }
      }
      /**
       * <code>optional .build_event_stream.BuildEventId id = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder> 
          getIdFieldBuilder() {
        if (idBuilder_ == null) {
          idBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder>(
                  getId(),
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        return idBuilder_;
      }

      private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId> children_ =
        java.util.Collections.emptyList();
      private void ensureChildrenIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          children_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId>(children_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder> childrenBuilder_;

      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId> getChildrenList() {
        if (childrenBuilder_ == null) {
          return java.util.Collections.unmodifiableList(children_);
        } else {
          return childrenBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public int getChildrenCount() {
        if (childrenBuilder_ == null) {
          return children_.size();
        } else {
          return childrenBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId getChildren(int index) {
        if (childrenBuilder_ == null) {
          return children_.get(index);
        } else {
          return childrenBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public Builder setChildren(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId value) {
        if (childrenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenIsMutable();
          children_.set(index, value);
          onChanged();
        } else {
          childrenBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public Builder setChildren(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder builderForValue) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.set(index, builderForValue.build());
          onChanged();
        } else {
          childrenBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public Builder addChildren(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId value) {
        if (childrenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenIsMutable();
          children_.add(value);
          onChanged();
        } else {
          childrenBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public Builder addChildren(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId value) {
        if (childrenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenIsMutable();
          children_.add(index, value);
          onChanged();
        } else {
          childrenBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public Builder addChildren(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder builderForValue) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.add(builderForValue.build());
          onChanged();
        } else {
          childrenBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public Builder addChildren(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder builderForValue) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.add(index, builderForValue.build());
          onChanged();
        } else {
          childrenBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public Builder addAllChildren(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId> values) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, children_);
          onChanged();
        } else {
          childrenBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public Builder clearChildren() {
        if (childrenBuilder_ == null) {
          children_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          childrenBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public Builder removeChildren(int index) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.remove(index);
          onChanged();
        } else {
          childrenBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder getChildrenBuilder(
          int index) {
        return getChildrenFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder getChildrenOrBuilder(
          int index) {
        if (childrenBuilder_ == null) {
          return children_.get(index);  } else {
          return childrenBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder> 
           getChildrenOrBuilderList() {
        if (childrenBuilder_ != null) {
          return childrenBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(children_);
        }
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder addChildrenBuilder() {
        return getChildrenFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.getDefaultInstance());
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder addChildrenBuilder(
          int index) {
        return getChildrenFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.getDefaultInstance());
      }
      /**
       * <code>repeated .build_event_stream.BuildEventId children = 2;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder> 
           getChildrenBuilderList() {
        return getChildrenFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder> 
          getChildrenFieldBuilder() {
        if (childrenBuilder_ == null) {
          childrenBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventIdOrBuilder>(
                  children_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          children_ = null;
        }
        return childrenBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ProgressOrBuilder> progressBuilder_;
      /**
       * <code>optional .build_event_stream.Progress progress = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress getProgress() {
        if (progressBuilder_ == null) {
          if (payloadCase_ == 3) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.getDefaultInstance();
        } else {
          if (payloadCase_ == 3) {
            return progressBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.Progress progress = 3;</code>
       */
      public Builder setProgress(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress value) {
        if (progressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          progressBuilder_.setMessage(value);
        }
        payloadCase_ = 3;
        return this;
      }
      /**
       * <code>optional .build_event_stream.Progress progress = 3;</code>
       */
      public Builder setProgress(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.Builder builderForValue) {
        if (progressBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          progressBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 3;
        return this;
      }
      /**
       * <code>optional .build_event_stream.Progress progress = 3;</code>
       */
      public Builder mergeProgress(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress value) {
        if (progressBuilder_ == null) {
          if (payloadCase_ == 3 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 3) {
            progressBuilder_.mergeFrom(value);
          }
          progressBuilder_.setMessage(value);
        }
        payloadCase_ = 3;
        return this;
      }
      /**
       * <code>optional .build_event_stream.Progress progress = 3;</code>
       */
      public Builder clearProgress() {
        if (progressBuilder_ == null) {
          if (payloadCase_ == 3) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 3) {
            payloadCase_ = 0;
            payload_ = null;
          }
          progressBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.Progress progress = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.Builder getProgressBuilder() {
        return getProgressFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.Progress progress = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ProgressOrBuilder getProgressOrBuilder() {
        if ((payloadCase_ == 3) && (progressBuilder_ != null)) {
          return progressBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 3) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.Progress progress = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ProgressOrBuilder> 
          getProgressFieldBuilder() {
        if (progressBuilder_ == null) {
          if (!(payloadCase_ == 3)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.getDefaultInstance();
          }
          progressBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ProgressOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 3;
        onChanged();;
        return progressBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.AbortedOrBuilder> abortedBuilder_;
      /**
       * <code>optional .build_event_stream.Aborted aborted = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted getAborted() {
        if (abortedBuilder_ == null) {
          if (payloadCase_ == 4) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.getDefaultInstance();
        } else {
          if (payloadCase_ == 4) {
            return abortedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.Aborted aborted = 4;</code>
       */
      public Builder setAborted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted value) {
        if (abortedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          abortedBuilder_.setMessage(value);
        }
        payloadCase_ = 4;
        return this;
      }
      /**
       * <code>optional .build_event_stream.Aborted aborted = 4;</code>
       */
      public Builder setAborted(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.Builder builderForValue) {
        if (abortedBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          abortedBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 4;
        return this;
      }
      /**
       * <code>optional .build_event_stream.Aborted aborted = 4;</code>
       */
      public Builder mergeAborted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted value) {
        if (abortedBuilder_ == null) {
          if (payloadCase_ == 4 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 4) {
            abortedBuilder_.mergeFrom(value);
          }
          abortedBuilder_.setMessage(value);
        }
        payloadCase_ = 4;
        return this;
      }
      /**
       * <code>optional .build_event_stream.Aborted aborted = 4;</code>
       */
      public Builder clearAborted() {
        if (abortedBuilder_ == null) {
          if (payloadCase_ == 4) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 4) {
            payloadCase_ = 0;
            payload_ = null;
          }
          abortedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.Aborted aborted = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.Builder getAbortedBuilder() {
        return getAbortedFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.Aborted aborted = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.AbortedOrBuilder getAbortedOrBuilder() {
        if ((payloadCase_ == 4) && (abortedBuilder_ != null)) {
          return abortedBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 4) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.Aborted aborted = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.AbortedOrBuilder> 
          getAbortedFieldBuilder() {
        if (abortedBuilder_ == null) {
          if (!(payloadCase_ == 4)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.getDefaultInstance();
          }
          abortedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.AbortedOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 4;
        onChanged();;
        return abortedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStartedOrBuilder> startedBuilder_;
      /**
       * <code>optional .build_event_stream.BuildStarted started = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted getStarted() {
        if (startedBuilder_ == null) {
          if (payloadCase_ == 5) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.getDefaultInstance();
        } else {
          if (payloadCase_ == 5) {
            return startedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildStarted started = 5;</code>
       */
      public Builder setStarted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted value) {
        if (startedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          startedBuilder_.setMessage(value);
        }
        payloadCase_ = 5;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildStarted started = 5;</code>
       */
      public Builder setStarted(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.Builder builderForValue) {
        if (startedBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          startedBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 5;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildStarted started = 5;</code>
       */
      public Builder mergeStarted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted value) {
        if (startedBuilder_ == null) {
          if (payloadCase_ == 5 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 5) {
            startedBuilder_.mergeFrom(value);
          }
          startedBuilder_.setMessage(value);
        }
        payloadCase_ = 5;
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildStarted started = 5;</code>
       */
      public Builder clearStarted() {
        if (startedBuilder_ == null) {
          if (payloadCase_ == 5) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 5) {
            payloadCase_ = 0;
            payload_ = null;
          }
          startedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.BuildStarted started = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.Builder getStartedBuilder() {
        return getStartedFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.BuildStarted started = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStartedOrBuilder getStartedOrBuilder() {
        if ((payloadCase_ == 5) && (startedBuilder_ != null)) {
          return startedBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 5) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.BuildStarted started = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStartedOrBuilder> 
          getStartedFieldBuilder() {
        if (startedBuilder_ == null) {
          if (!(payloadCase_ == 5)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.getDefaultInstance();
          }
          startedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStartedOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 5;
        onChanged();;
        return startedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpandedOrBuilder> expandedBuilder_;
      /**
       * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded getExpanded() {
        if (expandedBuilder_ == null) {
          if (payloadCase_ == 6) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.getDefaultInstance();
        } else {
          if (payloadCase_ == 6) {
            return expandedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
       */
      public Builder setExpanded(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded value) {
        if (expandedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          expandedBuilder_.setMessage(value);
        }
        payloadCase_ = 6;
        return this;
      }
      /**
       * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
       */
      public Builder setExpanded(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.Builder builderForValue) {
        if (expandedBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          expandedBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 6;
        return this;
      }
      /**
       * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
       */
      public Builder mergeExpanded(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded value) {
        if (expandedBuilder_ == null) {
          if (payloadCase_ == 6 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 6) {
            expandedBuilder_.mergeFrom(value);
          }
          expandedBuilder_.setMessage(value);
        }
        payloadCase_ = 6;
        return this;
      }
      /**
       * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
       */
      public Builder clearExpanded() {
        if (expandedBuilder_ == null) {
          if (payloadCase_ == 6) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 6) {
            payloadCase_ = 0;
            payload_ = null;
          }
          expandedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.Builder getExpandedBuilder() {
        return getExpandedFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpandedOrBuilder getExpandedOrBuilder() {
        if ((payloadCase_ == 6) && (expandedBuilder_ != null)) {
          return expandedBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 6) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.PatternExpanded expanded = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpandedOrBuilder> 
          getExpandedFieldBuilder() {
        if (expandedBuilder_ == null) {
          if (!(payloadCase_ == 6)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.getDefaultInstance();
          }
          expandedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpandedOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 6;
        onChanged();;
        return expandedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecutedOrBuilder> actionBuilder_;
      /**
       * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted getAction() {
        if (actionBuilder_ == null) {
          if (payloadCase_ == 7) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.getDefaultInstance();
        } else {
          if (payloadCase_ == 7) {
            return actionBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
       */
      public Builder setAction(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted value) {
        if (actionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          actionBuilder_.setMessage(value);
        }
        payloadCase_ = 7;
        return this;
      }
      /**
       * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
       */
      public Builder setAction(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.Builder builderForValue) {
        if (actionBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          actionBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 7;
        return this;
      }
      /**
       * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
       */
      public Builder mergeAction(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted value) {
        if (actionBuilder_ == null) {
          if (payloadCase_ == 7 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 7) {
            actionBuilder_.mergeFrom(value);
          }
          actionBuilder_.setMessage(value);
        }
        payloadCase_ = 7;
        return this;
      }
      /**
       * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
       */
      public Builder clearAction() {
        if (actionBuilder_ == null) {
          if (payloadCase_ == 7) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 7) {
            payloadCase_ = 0;
            payload_ = null;
          }
          actionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.Builder getActionBuilder() {
        return getActionFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecutedOrBuilder getActionOrBuilder() {
        if ((payloadCase_ == 7) && (actionBuilder_ != null)) {
          return actionBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 7) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.ActionExecuted action = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecutedOrBuilder> 
          getActionFieldBuilder() {
        if (actionBuilder_ == null) {
          if (!(payloadCase_ == 7)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.getDefaultInstance();
          }
          actionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecutedOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 7;
        onChanged();;
        return actionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetCompleteOrBuilder> completedBuilder_;
      /**
       * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete getCompleted() {
        if (completedBuilder_ == null) {
          if (payloadCase_ == 8) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.getDefaultInstance();
        } else {
          if (payloadCase_ == 8) {
            return completedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
       */
      public Builder setCompleted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete value) {
        if (completedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          completedBuilder_.setMessage(value);
        }
        payloadCase_ = 8;
        return this;
      }
      /**
       * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
       */
      public Builder setCompleted(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.Builder builderForValue) {
        if (completedBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          completedBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 8;
        return this;
      }
      /**
       * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
       */
      public Builder mergeCompleted(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete value) {
        if (completedBuilder_ == null) {
          if (payloadCase_ == 8 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 8) {
            completedBuilder_.mergeFrom(value);
          }
          completedBuilder_.setMessage(value);
        }
        payloadCase_ = 8;
        return this;
      }
      /**
       * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
       */
      public Builder clearCompleted() {
        if (completedBuilder_ == null) {
          if (payloadCase_ == 8) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 8) {
            payloadCase_ = 0;
            payload_ = null;
          }
          completedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.Builder getCompletedBuilder() {
        return getCompletedFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetCompleteOrBuilder getCompletedOrBuilder() {
        if ((payloadCase_ == 8) && (completedBuilder_ != null)) {
          return completedBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 8) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.TargetComplete completed = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetCompleteOrBuilder> 
          getCompletedFieldBuilder() {
        if (completedBuilder_ == null) {
          if (!(payloadCase_ == 8)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.getDefaultInstance();
          }
          completedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetCompleteOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 8;
        onChanged();;
        return completedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummaryOrBuilder> testSummaryBuilder_;
      /**
       * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary getTestSummary() {
        if (testSummaryBuilder_ == null) {
          if (payloadCase_ == 9) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.getDefaultInstance();
        } else {
          if (payloadCase_ == 9) {
            return testSummaryBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
       */
      public Builder setTestSummary(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary value) {
        if (testSummaryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          testSummaryBuilder_.setMessage(value);
        }
        payloadCase_ = 9;
        return this;
      }
      /**
       * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
       */
      public Builder setTestSummary(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.Builder builderForValue) {
        if (testSummaryBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          testSummaryBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 9;
        return this;
      }
      /**
       * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
       */
      public Builder mergeTestSummary(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary value) {
        if (testSummaryBuilder_ == null) {
          if (payloadCase_ == 9 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 9) {
            testSummaryBuilder_.mergeFrom(value);
          }
          testSummaryBuilder_.setMessage(value);
        }
        payloadCase_ = 9;
        return this;
      }
      /**
       * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
       */
      public Builder clearTestSummary() {
        if (testSummaryBuilder_ == null) {
          if (payloadCase_ == 9) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 9) {
            payloadCase_ = 0;
            payload_ = null;
          }
          testSummaryBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.Builder getTestSummaryBuilder() {
        return getTestSummaryFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummaryOrBuilder getTestSummaryOrBuilder() {
        if ((payloadCase_ == 9) && (testSummaryBuilder_ != null)) {
          return testSummaryBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 9) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.getDefaultInstance();
        }
      }
      /**
       * <code>optional .build_event_stream.TestSummary test_summary = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummaryOrBuilder> 
          getTestSummaryFieldBuilder() {
        if (testSummaryBuilder_ == null) {
          if (!(payloadCase_ == 9)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.getDefaultInstance();
          }
          testSummaryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummaryOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 9;
        onChanged();;
        return testSummaryBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.BuildEvent)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.BuildEvent)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_UnknownBuildEventId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_UnknownBuildEventId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_ProgressId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_ProgressId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_BuildStartedId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_BuildStartedId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_PatternExpandedId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_PatternExpandedId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_TargetCompletedId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_TargetCompletedId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_ActionCompletedId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_ActionCompletedId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_TestSummaryId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_TestSummaryId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_Progress_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_Progress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_Aborted_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_Aborted_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildStarted_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildStarted_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_PatternExpanded_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_PatternExpanded_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_File_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_File_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_ActionExecuted_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_ActionExecuted_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_TargetComplete_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_TargetComplete_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_TestSummary_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_TestSummary_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEvent_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\265\001bazel-out/local-fastbuild/bin/src/mai" +
      "n/java/com/google/devtools/build/lib/bui" +
      "ldeventstream/proto/libbuild_event_strea" +
      "m_java_proto_srcjar.srcjar.preprocessed/" +
      "build_event_stream.proto\022\022build_event_st" +
      "ream\"\206\006\n\014BuildEventId\022G\n\007unknown\030\001 \001(\01324" +
      ".build_event_stream.BuildEventId.Unknown" +
      "BuildEventIdH\000\022?\n\010progress\030\002 \001(\0132+.build" +
      "_event_stream.BuildEventId.ProgressIdH\000\022" +
      "B\n\007started\030\003 \001(\0132/.build_event_stream.Bu",
      "ildEventId.BuildStartedIdH\000\022E\n\007pattern\030\004" +
      " \001(\01322.build_event_stream.BuildEventId.P" +
      "atternExpandedIdH\000\022N\n\020target_completed\030\005" +
      " \001(\01322.build_event_stream.BuildEventId.T" +
      "argetCompletedIdH\000\022N\n\020action_completed\030\006" +
      " \001(\01322.build_event_stream.BuildEventId.A" +
      "ctionCompletedIdH\000\022F\n\014test_summary\030\007 \001(\013" +
      "2..build_event_stream.BuildEventId.TestS" +
      "ummaryIdH\000\032&\n\023UnknownBuildEventId\022\017\n\007det" +
      "ails\030\001 \001(\t\032\"\n\nProgressId\022\024\n\014opaque_count",
      "\030\001 \001(\005\032\020\n\016BuildStartedId\032$\n\021PatternExpan" +
      "dedId\022\017\n\007pattern\030\001 \003(\t\032\"\n\021TargetComplete" +
      "dId\022\r\n\005label\030\001 \001(\t\032+\n\021ActionCompletedId\022" +
      "\026\n\016primary_output\030\001 \001(\t\032\036\n\rTestSummaryId" +
      "\022\r\n\005label\030\001 \001(\tB\004\n\002id\"\n\n\010Progress\"\305\001\n\007Ab" +
      "orted\0227\n\006reason\030\001 \001(\0162\'.build_event_stre" +
      "am.Aborted.AbortReason\022\023\n\013description\030\002 " +
      "\001(\t\"l\n\013AbortReason\022\013\n\007UNKNOWN\020\000\022\024\n\020USER_" +
      "INTERRUPTED\020\001\022\014\n\010TIME_OUT\020\002\022\036\n\032REMOTE_EN" +
      "VIRONMENT_FAILURE\020\003\022\014\n\010INTERNAL\020\004\"\270\001\n\014Bu",
      "ildStarted\022\014\n\004uuid\030\001 \001(\t\022\030\n\020start_time_m" +
      "ilis\030\002 \001(\003\022\032\n\022build_tool_version\030\003 \001(\t\022\033" +
      "\n\023options_description\030\004 \001(\t\022\017\n\007command\030\005" +
      " \001(\t\022\031\n\021working_directory\030\006 \001(\t\022\033\n\023works" +
      "pace_directory\030\007 \001(\t\"\021\n\017PatternExpanded\"" +
      "?\n\004File\022\014\n\004name\030\001 \001(\t\022\r\n\003uri\030\002 \001(\tH\000\022\022\n\010" +
      "contents\030\003 \001(\014H\000B\006\n\004file\"\227\001\n\016ActionExecu" +
      "ted\022\017\n\007success\030\001 \001(\010\022\021\n\texit_code\030\002 \001(\005\022" +
      "(\n\006stdout\030\003 \001(\0132\030.build_event_stream.Fil" +
      "e\022(\n\006stderr\030\004 \001(\0132\030.build_event_stream.F",
      "ile\022\r\n\005label\030\005 \001(\t\"!\n\016TargetComplete\022\017\n\007" +
      "success\030\001 \001(\010\"z\n\013TestSummary\022\027\n\017total_ru" +
      "n_count\030\001 \001(\005\022(\n\006passed\030\003 \003(\0132\030.build_ev" +
      "ent_stream.File\022(\n\006failed\030\004 \003(\0132\030.build_" +
      "event_stream.File\"\361\003\n\nBuildEvent\022,\n\002id\030\001" +
      " \001(\0132 .build_event_stream.BuildEventId\0222" +
      "\n\010children\030\002 \003(\0132 .build_event_stream.Bu" +
      "ildEventId\0220\n\010progress\030\003 \001(\0132\034.build_eve" +
      "nt_stream.ProgressH\000\022.\n\007aborted\030\004 \001(\0132\033." +
      "build_event_stream.AbortedH\000\0223\n\007started\030",
      "\005 \001(\0132 .build_event_stream.BuildStartedH" +
      "\000\0227\n\010expanded\030\006 \001(\0132#.build_event_stream" +
      ".PatternExpandedH\000\0224\n\006action\030\007 \001(\0132\".bui" +
      "ld_event_stream.ActionExecutedH\000\0227\n\tcomp" +
      "leted\030\010 \001(\0132\".build_event_stream.TargetC" +
      "ompleteH\000\0227\n\014test_summary\030\t \001(\0132\037.build_" +
      "event_stream.TestSummaryH\000B\t\n\007payloadBH\n" +
      ".com.google.devtools.build.lib.buildeven" +
      "tstreamB\026BuildEventStreamProtosb\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_build_event_stream_BuildEventId_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_build_event_stream_BuildEventId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_descriptor,
        new java.lang.String[] { "Unknown", "Progress", "Started", "Pattern", "TargetCompleted", "ActionCompleted", "TestSummary", "Id", });
    internal_static_build_event_stream_BuildEventId_UnknownBuildEventId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(0);
    internal_static_build_event_stream_BuildEventId_UnknownBuildEventId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_UnknownBuildEventId_descriptor,
        new java.lang.String[] { "Details", });
    internal_static_build_event_stream_BuildEventId_ProgressId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(1);
    internal_static_build_event_stream_BuildEventId_ProgressId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_ProgressId_descriptor,
        new java.lang.String[] { "OpaqueCount", });
    internal_static_build_event_stream_BuildEventId_BuildStartedId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(2);
    internal_static_build_event_stream_BuildEventId_BuildStartedId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_BuildStartedId_descriptor,
        new java.lang.String[] { });
    internal_static_build_event_stream_BuildEventId_PatternExpandedId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(3);
    internal_static_build_event_stream_BuildEventId_PatternExpandedId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_PatternExpandedId_descriptor,
        new java.lang.String[] { "Pattern", });
    internal_static_build_event_stream_BuildEventId_TargetCompletedId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(4);
    internal_static_build_event_stream_BuildEventId_TargetCompletedId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_TargetCompletedId_descriptor,
        new java.lang.String[] { "Label", });
    internal_static_build_event_stream_BuildEventId_ActionCompletedId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(5);
    internal_static_build_event_stream_BuildEventId_ActionCompletedId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_ActionCompletedId_descriptor,
        new java.lang.String[] { "PrimaryOutput", });
    internal_static_build_event_stream_BuildEventId_TestSummaryId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(6);
    internal_static_build_event_stream_BuildEventId_TestSummaryId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_TestSummaryId_descriptor,
        new java.lang.String[] { "Label", });
    internal_static_build_event_stream_Progress_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_build_event_stream_Progress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_Progress_descriptor,
        new java.lang.String[] { });
    internal_static_build_event_stream_Aborted_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_build_event_stream_Aborted_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_Aborted_descriptor,
        new java.lang.String[] { "Reason", "Description", });
    internal_static_build_event_stream_BuildStarted_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_build_event_stream_BuildStarted_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildStarted_descriptor,
        new java.lang.String[] { "Uuid", "StartTimeMilis", "BuildToolVersion", "OptionsDescription", "Command", "WorkingDirectory", "WorkspaceDirectory", });
    internal_static_build_event_stream_PatternExpanded_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_build_event_stream_PatternExpanded_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_PatternExpanded_descriptor,
        new java.lang.String[] { });
    internal_static_build_event_stream_File_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_build_event_stream_File_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_File_descriptor,
        new java.lang.String[] { "Name", "Uri", "Contents", "File", });
    internal_static_build_event_stream_ActionExecuted_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_build_event_stream_ActionExecuted_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_ActionExecuted_descriptor,
        new java.lang.String[] { "Success", "ExitCode", "Stdout", "Stderr", "Label", });
    internal_static_build_event_stream_TargetComplete_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_build_event_stream_TargetComplete_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_TargetComplete_descriptor,
        new java.lang.String[] { "Success", });
    internal_static_build_event_stream_TestSummary_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_build_event_stream_TestSummary_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_TestSummary_descriptor,
        new java.lang.String[] { "TotalRunCount", "Passed", "Failed", });
    internal_static_build_event_stream_BuildEvent_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_build_event_stream_BuildEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEvent_descriptor,
        new java.lang.String[] { "Id", "Children", "Progress", "Aborted", "Started", "Expanded", "Action", "Completed", "TestSummary", "Payload", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
