// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: src/main/java/com/google/devtools/build/lib/buildeventstream/proto/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);
  }
  /**
   * <pre>
   * Enumeration type characterizing the size of a test, as specified by the
   * test rule.
   * </pre>
   *
   * Protobuf enum {@code build_event_stream.TestSize}
   */
  public enum TestSize
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>UNKNOWN = 0;</code>
     */
    UNKNOWN(0),
    /**
     * <code>SMALL = 1;</code>
     */
    SMALL(1),
    /**
     * <code>MEDIUM = 2;</code>
     */
    MEDIUM(2),
    /**
     * <code>LARGE = 3;</code>
     */
    LARGE(3),
    /**
     * <code>ENORMOUS = 4;</code>
     */
    ENORMOUS(4),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>UNKNOWN = 0;</code>
     */
    public static final int UNKNOWN_VALUE = 0;
    /**
     * <code>SMALL = 1;</code>
     */
    public static final int SMALL_VALUE = 1;
    /**
     * <code>MEDIUM = 2;</code>
     */
    public static final int MEDIUM_VALUE = 2;
    /**
     * <code>LARGE = 3;</code>
     */
    public static final int LARGE_VALUE = 3;
    /**
     * <code>ENORMOUS = 4;</code>
     */
    public static final int ENORMOUS_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 TestSize valueOf(int value) {
      return forNumber(value);
    }

    public static TestSize forNumber(int value) {
      switch (value) {
        case 0: return UNKNOWN;
        case 1: return SMALL;
        case 2: return MEDIUM;
        case 3: return LARGE;
        case 4: return ENORMOUS;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<TestSize>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        TestSize> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<TestSize>() {
            public TestSize findValueByNumber(int number) {
              return TestSize.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.getDescriptor().getEnumTypes().get(0);
    }

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

    public static TestSize 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 TestSize(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:build_event_stream.TestSize)
  }

  /**
   * Protobuf enum {@code build_event_stream.TestStatus}
   */
  public enum TestStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>NO_STATUS = 0;</code>
     */
    NO_STATUS(0),
    /**
     * <code>PASSED = 1;</code>
     */
    PASSED(1),
    /**
     * <code>FLAKY = 2;</code>
     */
    FLAKY(2),
    /**
     * <code>TIMEOUT = 3;</code>
     */
    TIMEOUT(3),
    /**
     * <code>FAILED = 4;</code>
     */
    FAILED(4),
    /**
     * <code>INCOMPLETE = 5;</code>
     */
    INCOMPLETE(5),
    /**
     * <code>REMOTE_FAILURE = 6;</code>
     */
    REMOTE_FAILURE(6),
    /**
     * <code>FAILED_TO_BUILD = 7;</code>
     */
    FAILED_TO_BUILD(7),
    /**
     * <code>TOOL_HALTED_BEFORE_TESTING = 8;</code>
     */
    TOOL_HALTED_BEFORE_TESTING(8),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>NO_STATUS = 0;</code>
     */
    public static final int NO_STATUS_VALUE = 0;
    /**
     * <code>PASSED = 1;</code>
     */
    public static final int PASSED_VALUE = 1;
    /**
     * <code>FLAKY = 2;</code>
     */
    public static final int FLAKY_VALUE = 2;
    /**
     * <code>TIMEOUT = 3;</code>
     */
    public static final int TIMEOUT_VALUE = 3;
    /**
     * <code>FAILED = 4;</code>
     */
    public static final int FAILED_VALUE = 4;
    /**
     * <code>INCOMPLETE = 5;</code>
     */
    public static final int INCOMPLETE_VALUE = 5;
    /**
     * <code>REMOTE_FAILURE = 6;</code>
     */
    public static final int REMOTE_FAILURE_VALUE = 6;
    /**
     * <code>FAILED_TO_BUILD = 7;</code>
     */
    public static final int FAILED_TO_BUILD_VALUE = 7;
    /**
     * <code>TOOL_HALTED_BEFORE_TESTING = 8;</code>
     */
    public static final int TOOL_HALTED_BEFORE_TESTING_VALUE = 8;


    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 TestStatus valueOf(int value) {
      return forNumber(value);
    }

    public static TestStatus forNumber(int value) {
      switch (value) {
        case 0: return NO_STATUS;
        case 1: return PASSED;
        case 2: return FLAKY;
        case 3: return TIMEOUT;
        case 4: return FAILED;
        case 5: return INCOMPLETE;
        case 6: return REMOTE_FAILURE;
        case 7: return FAILED_TO_BUILD;
        case 8: return TOOL_HALTED_BEFORE_TESTING;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<TestStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        TestStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<TestStatus>() {
            public TestStatus findValueByNumber(int number) {
              return TestStatus.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.getDescriptor().getEnumTypes().get(1);
    }

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

    public static TestStatus 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 TestStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:build_event_stream.TestStatus)
  }

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

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

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

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

    /**
     * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
     */
    boolean hasUnstructuredCommandLine();
    /**
     * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId getUnstructuredCommandLine();
    /**
     * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineIdOrBuilder getUnstructuredCommandLineOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
     */
    boolean hasStructuredCommandLine();
    /**
     * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId getStructuredCommandLine();
    /**
     * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineIdOrBuilder getStructuredCommandLineOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
     */
    boolean hasWorkspaceStatus();
    /**
     * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId getWorkspaceStatus();
    /**
     * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusIdOrBuilder getWorkspaceStatusOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
     */
    boolean hasOptionsParsed();
    /**
     * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId getOptionsParsed();
    /**
     * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedIdOrBuilder getOptionsParsedOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
     */
    boolean hasFetch();
    /**
     * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId getFetch();
    /**
     * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchIdOrBuilder getFetchOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
     */
    boolean hasConfiguration();
    /**
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration();
    /**
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
     */
    boolean hasTargetConfigured();
    /**
     * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId getTargetConfigured();
    /**
     * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredIdOrBuilder getTargetConfiguredOrBuilder();

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

    /**
     * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
     */
    boolean hasPatternSkipped();
    /**
     * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId getPatternSkipped();
    /**
     * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder getPatternSkippedOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
     */
    boolean hasNamedSet();
    /**
     * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getNamedSet();
    /**
     * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder getNamedSetOrBuilder();

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

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

    /**
     * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
     */
    boolean hasUnconfiguredLabel();
    /**
     * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId getUnconfiguredLabel();
    /**
     * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelIdOrBuilder getUnconfiguredLabelOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
     */
    boolean hasConfiguredLabel();
    /**
     * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId getConfiguredLabel();
    /**
     * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelIdOrBuilder getConfiguredLabelOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
     */
    boolean hasTestResult();
    /**
     * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId getTestResult();
    /**
     * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultIdOrBuilder getTestResultOrBuilder();

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

    /**
     * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
     */
    boolean hasBuildFinished();
    /**
     * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId getBuildFinished();
    /**
     * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedIdOrBuilder getBuildFinishedOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
     */
    boolean hasBuildToolLogs();
    /**
     * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId getBuildToolLogs();
    /**
     * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsIdOrBuilder getBuildToolLogsOrBuilder();

    /**
     * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
     */
    boolean hasBuildMetrics();
    /**
     * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId getBuildMetrics();
    /**
     * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsIdOrBuilder getBuildMetricsOrBuilder();

    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 {
  private static final long serialVersionUID = 0L;
    // 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 this.unknownFields;
    }
    private BuildEventId(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              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;
            }
            case 66: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.Builder subBuilder = null;
              if (idCase_ == 8) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 8;
              break;
            }
            case 74: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.Builder subBuilder = null;
              if (idCase_ == 9) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 9;
              break;
            }
            case 82: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder subBuilder = null;
              if (idCase_ == 10) {
                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_ = 10;
              break;
            }
            case 90: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.Builder subBuilder = null;
              if (idCase_ == 11) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 11;
              break;
            }
            case 98: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.Builder subBuilder = null;
              if (idCase_ == 12) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 12;
              break;
            }
            case 106: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder subBuilder = null;
              if (idCase_ == 13) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 13;
              break;
            }
            case 114: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.Builder subBuilder = null;
              if (idCase_ == 14) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 14;
              break;
            }
            case 122: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder subBuilder = null;
              if (idCase_ == 15) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 15;
              break;
            }
            case 130: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.Builder subBuilder = null;
              if (idCase_ == 16) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 16;
              break;
            }
            case 138: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.Builder subBuilder = null;
              if (idCase_ == 17) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 17;
              break;
            }
            case 146: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.Builder subBuilder = null;
              if (idCase_ == 18) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 18;
              break;
            }
            case 154: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.Builder subBuilder = null;
              if (idCase_ == 19) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 19;
              break;
            }
            case 162: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.Builder subBuilder = null;
              if (idCase_ == 20) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 20;
              break;
            }
            case 170: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.Builder subBuilder = null;
              if (idCase_ == 21) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 21;
              break;
            }
            case 178: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.Builder subBuilder = null;
              if (idCase_ == 22) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId) id_).toBuilder();
              }
              id_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId) id_);
                id_ = subBuilder.buildPartial();
              }
              idCase_ = 22;
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_descriptor;
    }

    @java.lang.Override
    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>string details = 1;</code>
       */
      java.lang.String getDetails();
      /**
       * <code>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 {
    private static final long serialVersionUID = 0L;
      // 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 this.unknownFields;
      }
      private UnknownBuildEventId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();

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

      @java.lang.Override
      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>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>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;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

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

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

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

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + 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(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId parseFrom(
          java.nio.ByteBuffer 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(
          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);
      }

      @java.lang.Override
      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);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <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;
        }

        @java.lang.Override
        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) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          details_ = "";

          return this;
        }

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

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

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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;
        }

        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof 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();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          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>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>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>string details = 1;</code>
         */
        public Builder setDetails(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          details_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string details = 1;</code>
         */
        public Builder clearDetails() {
          
          details_ = getDefaultInstance().getDetails();
          onChanged();
          return this;
        }
        /**
         * <code>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;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope: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>() {
        @java.lang.Override
        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;
      }

      @java.lang.Override
      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>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 {
    private static final long serialVersionUID = 0L;
      // 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 this.unknownFields;
      }
      private ProgressId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {

                opaqueCount_ = input.readInt32();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ProgressId_descriptor;
      }

      @java.lang.Override
      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>int32 opaque_count = 1;</code>
       */
      public int getOpaqueCount() {
        return opaqueCount_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

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

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + 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(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId parseFrom(
          java.nio.ByteBuffer 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(
          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);
      }

      @java.lang.Override
      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);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <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;
        }

        @java.lang.Override
        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) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          opaqueCount_ = 0;

          return this;
        }

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

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

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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;
        }

        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof 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());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          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>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>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>int32 opaque_count = 1;</code>
         */
        public Builder clearOpaqueCount() {
          
          opaqueCount_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope: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>() {
        @java.lang.Override
        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;
      }

      @java.lang.Override
      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 {
    private static final long serialVersionUID = 0L;
      // 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 this.unknownFields;
      }
      private BuildStartedId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildStartedId_descriptor;
      }

      @java.lang.Override
      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;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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;
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

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

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId parseFrom(
          java.nio.ByteBuffer 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(
          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);
      }

      @java.lang.Override
      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);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <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;
        }

        @java.lang.Override
        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) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

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

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

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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;
        }

        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof 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;
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          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;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope: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>() {
        @java.lang.Override
        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;
      }

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

    }

    public interface UnstructuredCommandLineIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.UnstructuredCommandLineId)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Identifier on an event indicating the original commandline received by
     * the bazel server.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.UnstructuredCommandLineId}
     */
    public  static final class UnstructuredCommandLineId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.UnstructuredCommandLineId)
        UnstructuredCommandLineIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use UnstructuredCommandLineId.newBuilder() to construct.
      private UnstructuredCommandLineId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private UnstructuredCommandLineId() {
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private UnstructuredCommandLineId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnstructuredCommandLineId_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnstructuredCommandLineId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.Builder.class);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier on an event indicating the original commandline received by
       * the bazel server.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.UnstructuredCommandLineId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.UnstructuredCommandLineId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnstructuredCommandLineId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnstructuredCommandLineId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.Builder.class);
        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnstructuredCommandLineId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId(this);
          onBuilt();
          return result;
        }

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

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

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

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

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * A title for this command line value, as there may be multiple.
       * For example, a single invocation may wish to report both the literal and
       * canonical command lines, and this label would be used to differentiate
       * between both versions.
       * </pre>
       *
       * <code>string command_line_label = 1;</code>
       */
      java.lang.String getCommandLineLabel();
      /**
       * <pre>
       * A title for this command line value, as there may be multiple.
       * For example, a single invocation may wish to report both the literal and
       * canonical command lines, and this label would be used to differentiate
       * between both versions.
       * </pre>
       *
       * <code>string command_line_label = 1;</code>
       */
      com.google.protobuf.ByteString
          getCommandLineLabelBytes();
    }
    /**
     * <pre>
     * Identifier on an event describing the commandline received by Bazel.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.StructuredCommandLineId}
     */
    public  static final class StructuredCommandLineId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.StructuredCommandLineId)
        StructuredCommandLineIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use StructuredCommandLineId.newBuilder() to construct.
      private StructuredCommandLineId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private StructuredCommandLineId() {
        commandLineLabel_ = "";
      }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_StructuredCommandLineId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.Builder.class);
      }

      public static final int COMMAND_LINE_LABEL_FIELD_NUMBER = 1;
      private volatile java.lang.Object commandLineLabel_;
      /**
       * <pre>
       * A title for this command line value, as there may be multiple.
       * For example, a single invocation may wish to report both the literal and
       * canonical command lines, and this label would be used to differentiate
       * between both versions.
       * </pre>
       *
       * <code>string command_line_label = 1;</code>
       */
      public java.lang.String getCommandLineLabel() {
        java.lang.Object ref = commandLineLabel_;
        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();
          commandLineLabel_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * A title for this command line value, as there may be multiple.
       * For example, a single invocation may wish to report both the literal and
       * canonical command lines, and this label would be used to differentiate
       * between both versions.
       * </pre>
       *
       * <code>string command_line_label = 1;</code>
       */
      public com.google.protobuf.ByteString
          getCommandLineLabelBytes() {
        java.lang.Object ref = commandLineLabel_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          commandLineLabel_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        if (!getCommandLineLabelBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, commandLineLabel_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier on an event describing the commandline received by Bazel.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.StructuredCommandLineId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.StructuredCommandLineId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_StructuredCommandLineId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_StructuredCommandLineId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.Builder.class);
        }

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

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

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_StructuredCommandLineId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId(this);
          result.commandLineLabel_ = commandLineLabel_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.getDefaultInstance()) return this;
          if (!other.getCommandLineLabel().isEmpty()) {
            commandLineLabel_ = other.commandLineLabel_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

        private java.lang.Object commandLineLabel_ = "";
        /**
         * <pre>
         * A title for this command line value, as there may be multiple.
         * For example, a single invocation may wish to report both the literal and
         * canonical command lines, and this label would be used to differentiate
         * between both versions.
         * </pre>
         *
         * <code>string command_line_label = 1;</code>
         */
        public java.lang.String getCommandLineLabel() {
          java.lang.Object ref = commandLineLabel_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            commandLineLabel_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * A title for this command line value, as there may be multiple.
         * For example, a single invocation may wish to report both the literal and
         * canonical command lines, and this label would be used to differentiate
         * between both versions.
         * </pre>
         *
         * <code>string command_line_label = 1;</code>
         */
        public com.google.protobuf.ByteString
            getCommandLineLabelBytes() {
          java.lang.Object ref = commandLineLabel_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            commandLineLabel_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * A title for this command line value, as there may be multiple.
         * For example, a single invocation may wish to report both the literal and
         * canonical command lines, and this label would be used to differentiate
         * between both versions.
         * </pre>
         *
         * <code>string command_line_label = 1;</code>
         */
        public Builder setCommandLineLabel(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          commandLineLabel_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * A title for this command line value, as there may be multiple.
         * For example, a single invocation may wish to report both the literal and
         * canonical command lines, and this label would be used to differentiate
         * between both versions.
         * </pre>
         *
         * <code>string command_line_label = 1;</code>
         */
        public Builder clearCommandLineLabel() {
          
          commandLineLabel_ = getDefaultInstance().getCommandLineLabel();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * A title for this command line value, as there may be multiple.
         * For example, a single invocation may wish to report both the literal and
         * canonical command lines, and this label would be used to differentiate
         * between both versions.
         * </pre>
         *
         * <code>string command_line_label = 1;</code>
         */
        public Builder setCommandLineLabelBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          commandLineLabel_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface WorkspaceStatusIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.WorkspaceStatusId)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Identifier of an event indicating the workspace status.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.WorkspaceStatusId}
     */
    public  static final class WorkspaceStatusId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.WorkspaceStatusId)
        WorkspaceStatusIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use WorkspaceStatusId.newBuilder() to construct.
      private WorkspaceStatusId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private WorkspaceStatusId() {
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private WorkspaceStatusId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_WorkspaceStatusId_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_WorkspaceStatusId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.Builder.class);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event indicating the workspace status.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.WorkspaceStatusId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.WorkspaceStatusId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_WorkspaceStatusId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_WorkspaceStatusId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.Builder.class);
        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_WorkspaceStatusId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId(this);
          onBuilt();
          return result;
        }

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

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

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

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

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface OptionsParsedIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.OptionsParsedId)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Identifier on an event reporting on the options included in the command
     * line, both explicitly and implicitly.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.OptionsParsedId}
     */
    public  static final class OptionsParsedId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.OptionsParsedId)
        OptionsParsedIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use OptionsParsedId.newBuilder() to construct.
      private OptionsParsedId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private OptionsParsedId() {
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private OptionsParsedId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_OptionsParsedId_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_OptionsParsedId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.Builder.class);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier on an event reporting on the options included in the command
       * line, both explicitly and implicitly.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.OptionsParsedId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.OptionsParsedId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_OptionsParsedId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_OptionsParsedId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.Builder.class);
        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_OptionsParsedId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId(this);
          onBuilt();
          return result;
        }

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

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

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

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

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * The external resource that was fetched from.
       * </pre>
       *
       * <code>string url = 1;</code>
       */
      java.lang.String getUrl();
      /**
       * <pre>
       * The external resource that was fetched from.
       * </pre>
       *
       * <code>string url = 1;</code>
       */
      com.google.protobuf.ByteString
          getUrlBytes();
    }
    /**
     * <pre>
     * Identifier of an event reporting that an external resource was fetched
     * from.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.FetchId}
     */
    public  static final class FetchId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.FetchId)
        FetchIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use FetchId.newBuilder() to construct.
      private FetchId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private FetchId() {
        url_ = "";
      }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_FetchId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.Builder.class);
      }

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

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

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

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event reporting that an external resource was fetched
       * from.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.FetchId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.FetchId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_FetchId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_FetchId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.Builder.class);
        }

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

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

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_FetchId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId(this);
          result.url_ = url_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.getDefaultInstance()) return this;
          if (!other.getUrl().isEmpty()) {
            url_ = other.url_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

        private java.lang.Object url_ = "";
        /**
         * <pre>
         * The external resource that was fetched from.
         * </pre>
         *
         * <code>string url = 1;</code>
         */
        public java.lang.String getUrl() {
          java.lang.Object ref = url_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            url_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * The external resource that was fetched from.
         * </pre>
         *
         * <code>string url = 1;</code>
         */
        public com.google.protobuf.ByteString
            getUrlBytes() {
          java.lang.Object ref = url_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            url_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * The external resource that was fetched from.
         * </pre>
         *
         * <code>string url = 1;</code>
         */
        public Builder setUrl(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          url_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * The external resource that was fetched from.
         * </pre>
         *
         * <code>string url = 1;</code>
         */
        public Builder clearUrl() {
          
          url_ = getDefaultInstance().getUrl();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * The external resource that was fetched from.
         * </pre>
         *
         * <code>string url = 1;</code>
         */
        public Builder setUrlBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          url_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId 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.
     * Messages of this shape are also used to describe parts of a pattern that
     * have been skipped for some reason, if the actual expansion was still
     * carried out (e.g., if keep_going is set). In this case, the
     * pattern_skipped choice in the id field is to be made.
     * </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 {
    private static final long serialVersionUID = 0L;
      // 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 this.unknownFields;
      }
      private PatternExpandedId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  pattern_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                pattern_.add(s);
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
            pattern_ = pattern_.getUnmodifiableView();
          }
          this.unknownFields = unknownFields.build();
          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;
      }

      @java.lang.Override
      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;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

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

      @java.lang.Override
      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();
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId parseFrom(
          java.nio.ByteBuffer 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(
          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);
      }

      @java.lang.Override
      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);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event indicating that a target pattern has been expanded
       * further.
       * Messages of this shape are also used to describe parts of a pattern that
       * have been skipped for some reason, if the actual expansion was still
       * carried out (e.g., if keep_going is set). In this case, the
       * pattern_skipped choice in the id field is to be made.
       * </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;
        }

        @java.lang.Override
        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) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          pattern_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

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

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

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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;
        }

        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof 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();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          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;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope: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>() {
        @java.lang.Override
        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;
      }

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

    }

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

      /**
       * <code>string label = 1;</code>
       */
      java.lang.String getLabel();
      /**
       * <code>string label = 1;</code>
       */
      com.google.protobuf.ByteString
          getLabelBytes();

      /**
       * <pre>
       * If not empty, the id refers to the expansion of the target for a given
       * aspect.
       * </pre>
       *
       * <code>string aspect = 2;</code>
       */
      java.lang.String getAspect();
      /**
       * <pre>
       * If not empty, the id refers to the expansion of the target for a given
       * aspect.
       * </pre>
       *
       * <code>string aspect = 2;</code>
       */
      com.google.protobuf.ByteString
          getAspectBytes();
    }
    /**
     * <pre>
     * Identifier of an event indicating that a target has been expanded by
     * identifying for which configurations it should be build.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.TargetConfiguredId}
     */
    public  static final class TargetConfiguredId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.TargetConfiguredId)
        TargetConfiguredIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use TargetConfiguredId.newBuilder() to construct.
      private TargetConfiguredId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private TargetConfiguredId() {
        label_ = "";
        aspect_ = "";
      }

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

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TargetConfiguredId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.Builder.class);
      }

      public static final int LABEL_FIELD_NUMBER = 1;
      private volatile java.lang.Object label_;
      /**
       * <code>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>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;
        }
      }

      public static final int ASPECT_FIELD_NUMBER = 2;
      private volatile java.lang.Object aspect_;
      /**
       * <pre>
       * If not empty, the id refers to the expansion of the target for a given
       * aspect.
       * </pre>
       *
       * <code>string aspect = 2;</code>
       */
      public java.lang.String getAspect() {
        java.lang.Object ref = aspect_;
        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();
          aspect_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * If not empty, the id refers to the expansion of the target for a given
       * aspect.
       * </pre>
       *
       * <code>string aspect = 2;</code>
       */
      public com.google.protobuf.ByteString
          getAspectBytes() {
        java.lang.Object ref = aspect_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          aspect_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getLabelBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, label_);
        }
        if (!getAspectBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, aspect_);
        }
        unknownFields.writeTo(output);
      }

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

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

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event indicating that a target has been expanded by
       * identifying for which configurations it should be build.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.TargetConfiguredId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.TargetConfiguredId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TargetConfiguredId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TargetConfiguredId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.Builder.class);
        }

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

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

          aspect_ = "";

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TargetConfiguredId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId(this);
          result.label_ = label_;
          result.aspect_ = aspect_;
          onBuilt();
          return result;
        }

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

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

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

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

        private java.lang.Object label_ = "";
        /**
         * <code>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>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>string label = 1;</code>
         */
        public Builder setLabel(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          label_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string label = 1;</code>
         */
        public Builder clearLabel() {
          
          label_ = getDefaultInstance().getLabel();
          onChanged();
          return this;
        }
        /**
         * <code>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;
        }

        private java.lang.Object aspect_ = "";
        /**
         * <pre>
         * If not empty, the id refers to the expansion of the target for a given
         * aspect.
         * </pre>
         *
         * <code>string aspect = 2;</code>
         */
        public java.lang.String getAspect() {
          java.lang.Object ref = aspect_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            aspect_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * If not empty, the id refers to the expansion of the target for a given
         * aspect.
         * </pre>
         *
         * <code>string aspect = 2;</code>
         */
        public com.google.protobuf.ByteString
            getAspectBytes() {
          java.lang.Object ref = aspect_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            aspect_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * If not empty, the id refers to the expansion of the target for a given
         * aspect.
         * </pre>
         *
         * <code>string aspect = 2;</code>
         */
        public Builder setAspect(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          aspect_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * If not empty, the id refers to the expansion of the target for a given
         * aspect.
         * </pre>
         *
         * <code>string aspect = 2;</code>
         */
        public Builder clearAspect() {
          
          aspect_ = getDefaultInstance().getAspect();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * If not empty, the id refers to the expansion of the target for a given
         * aspect.
         * </pre>
         *
         * <code>string aspect = 2;</code>
         */
        public Builder setAspectBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          aspect_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * Identifier of the file set; this is an opaque string valid only for the
       * particular instance of the event stream.
       * </pre>
       *
       * <code>string id = 1;</code>
       */
      java.lang.String getId();
      /**
       * <pre>
       * Identifier of the file set; this is an opaque string valid only for the
       * particular instance of the event stream.
       * </pre>
       *
       * <code>string id = 1;</code>
       */
      com.google.protobuf.ByteString
          getIdBytes();
    }
    /**
     * <pre>
     * Identifier of an event introducing a named set of files (usually artifacts)
     * to be referred to in later messages.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.NamedSetOfFilesId}
     */
    public  static final class NamedSetOfFilesId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.NamedSetOfFilesId)
        NamedSetOfFilesIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use NamedSetOfFilesId.newBuilder() to construct.
      private NamedSetOfFilesId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private NamedSetOfFilesId() {
        id_ = "";
      }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_NamedSetOfFilesId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder.class);
      }

      public static final int ID_FIELD_NUMBER = 1;
      private volatile java.lang.Object id_;
      /**
       * <pre>
       * Identifier of the file set; this is an opaque string valid only for the
       * particular instance of the event stream.
       * </pre>
       *
       * <code>string id = 1;</code>
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        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();
          id_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Identifier of the file set; this is an opaque string valid only for the
       * particular instance of the event stream.
       * </pre>
       *
       * <code>string id = 1;</code>
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        if (!getIdBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event introducing a named set of files (usually artifacts)
       * to be referred to in later messages.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.NamedSetOfFilesId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.NamedSetOfFilesId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_NamedSetOfFilesId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_NamedSetOfFilesId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder.class);
        }

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

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

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_NamedSetOfFilesId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId(this);
          result.id_ = id_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance()) return this;
          if (!other.getId().isEmpty()) {
            id_ = other.id_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

        private java.lang.Object id_ = "";
        /**
         * <pre>
         * Identifier of the file set; this is an opaque string valid only for the
         * particular instance of the event stream.
         * </pre>
         *
         * <code>string id = 1;</code>
         */
        public java.lang.String getId() {
          java.lang.Object ref = id_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            id_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Identifier of the file set; this is an opaque string valid only for the
         * particular instance of the event stream.
         * </pre>
         *
         * <code>string id = 1;</code>
         */
        public com.google.protobuf.ByteString
            getIdBytes() {
          java.lang.Object ref = id_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            id_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Identifier of the file set; this is an opaque string valid only for the
         * particular instance of the event stream.
         * </pre>
         *
         * <code>string id = 1;</code>
         */
        public Builder setId(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          id_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Identifier of the file set; this is an opaque string valid only for the
         * particular instance of the event stream.
         * </pre>
         *
         * <code>string id = 1;</code>
         */
        public Builder clearId() {
          
          id_ = getDefaultInstance().getId();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Identifier of the file set; this is an opaque string valid only for the
         * particular instance of the event stream.
         * </pre>
         *
         * <code>string id = 1;</code>
         */
        public Builder setIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          id_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <pre>
       * Identifier of the configuration; users of the protocol should not make
       * any assumptions about it having any structure, or equality of the
       * identifier between different streams.
       * </pre>
       *
       * <code>string id = 1;</code>
       */
      java.lang.String getId();
      /**
       * <pre>
       * Identifier of the configuration; users of the protocol should not make
       * any assumptions about it having any structure, or equality of the
       * identifier between different streams.
       * </pre>
       *
       * <code>string id = 1;</code>
       */
      com.google.protobuf.ByteString
          getIdBytes();
    }
    /**
     * <pre>
     * Identifier of an event introducing a configuration.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.ConfigurationId}
     */
    public  static final class ConfigurationId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.ConfigurationId)
        ConfigurationIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ConfigurationId.newBuilder() to construct.
      private ConfigurationId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ConfigurationId() {
        id_ = "";
      }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ConfigurationId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder.class);
      }

      public static final int ID_FIELD_NUMBER = 1;
      private volatile java.lang.Object id_;
      /**
       * <pre>
       * Identifier of the configuration; users of the protocol should not make
       * any assumptions about it having any structure, or equality of the
       * identifier between different streams.
       * </pre>
       *
       * <code>string id = 1;</code>
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        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();
          id_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Identifier of the configuration; users of the protocol should not make
       * any assumptions about it having any structure, or equality of the
       * identifier between different streams.
       * </pre>
       *
       * <code>string id = 1;</code>
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        if (!getIdBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event introducing a configuration.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.ConfigurationId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.ConfigurationId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ConfigurationId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ConfigurationId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder.class);
        }

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

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

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ConfigurationId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId(this);
          result.id_ = id_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance()) return this;
          if (!other.getId().isEmpty()) {
            id_ = other.id_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

        private java.lang.Object id_ = "";
        /**
         * <pre>
         * Identifier of the configuration; users of the protocol should not make
         * any assumptions about it having any structure, or equality of the
         * identifier between different streams.
         * </pre>
         *
         * <code>string id = 1;</code>
         */
        public java.lang.String getId() {
          java.lang.Object ref = id_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            id_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Identifier of the configuration; users of the protocol should not make
         * any assumptions about it having any structure, or equality of the
         * identifier between different streams.
         * </pre>
         *
         * <code>string id = 1;</code>
         */
        public com.google.protobuf.ByteString
            getIdBytes() {
          java.lang.Object ref = id_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            id_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Identifier of the configuration; users of the protocol should not make
         * any assumptions about it having any structure, or equality of the
         * identifier between different streams.
         * </pre>
         *
         * <code>string id = 1;</code>
         */
        public Builder setId(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          id_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Identifier of the configuration; users of the protocol should not make
         * any assumptions about it having any structure, or equality of the
         * identifier between different streams.
         * </pre>
         *
         * <code>string id = 1;</code>
         */
        public Builder clearId() {
          
          id_ = getDefaultInstance().getId();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Identifier of the configuration; users of the protocol should not make
         * any assumptions about it having any structure, or equality of the
         * identifier between different streams.
         * </pre>
         *
         * <code>string id = 1;</code>
         */
        public Builder setIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          id_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <code>string label = 1;</code>
       */
      java.lang.String getLabel();
      /**
       * <code>string label = 1;</code>
       */
      com.google.protobuf.ByteString
          getLabelBytes();

      /**
       * <pre>
       * The configuration for which the target was built.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      boolean hasConfiguration();
      /**
       * <pre>
       * The configuration for which the target was built.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration();
      /**
       * <pre>
       * The configuration for which the target was built.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder();

      /**
       * <pre>
       * If not empty, the id refers to the completion of the target for a given
       * aspect.
       * </pre>
       *
       * <code>string aspect = 2;</code>
       */
      java.lang.String getAspect();
      /**
       * <pre>
       * If not empty, the id refers to the completion of the target for a given
       * aspect.
       * </pre>
       *
       * <code>string aspect = 2;</code>
       */
      com.google.protobuf.ByteString
          getAspectBytes();
    }
    /**
     * <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 {
    private static final long serialVersionUID = 0L;
      // Use TargetCompletedId.newBuilder() to construct.
      private TargetCompletedId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private TargetCompletedId() {
        label_ = "";
        aspect_ = "";
      }

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

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

                aspect_ = s;
                break;
              }
              case 26: {
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder subBuilder = null;
                if (configuration_ != null) {
                  subBuilder = configuration_.toBuilder();
                }
                configuration_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configuration_);
                  configuration_ = subBuilder.buildPartial();
                }

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

      @java.lang.Override
      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>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>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;
        }
      }

      public static final int CONFIGURATION_FIELD_NUMBER = 3;
      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_;
      /**
       * <pre>
       * The configuration for which the target was built.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      public boolean hasConfiguration() {
        return configuration_ != null;
      }
      /**
       * <pre>
       * The configuration for which the target was built.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
        return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
      }
      /**
       * <pre>
       * The configuration for which the target was built.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
        return getConfiguration();
      }

      public static final int ASPECT_FIELD_NUMBER = 2;
      private volatile java.lang.Object aspect_;
      /**
       * <pre>
       * If not empty, the id refers to the completion of the target for a given
       * aspect.
       * </pre>
       *
       * <code>string aspect = 2;</code>
       */
      public java.lang.String getAspect() {
        java.lang.Object ref = aspect_;
        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();
          aspect_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * If not empty, the id refers to the completion of the target for a given
       * aspect.
       * </pre>
       *
       * <code>string aspect = 2;</code>
       */
      public com.google.protobuf.ByteString
          getAspectBytes() {
        java.lang.Object ref = aspect_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          aspect_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getLabelBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, label_);
        }
        if (!getAspectBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, aspect_);
        }
        if (configuration_ != null) {
          output.writeMessage(3, getConfiguration());
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (!getLabelBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, label_);
        }
        if (!getAspectBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, aspect_);
        }
        if (configuration_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getConfiguration());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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());
        result = result && (hasConfiguration() == other.hasConfiguration());
        if (hasConfiguration()) {
          result = result && getConfiguration()
              .equals(other.getConfiguration());
        }
        result = result && getAspect()
            .equals(other.getAspect());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

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

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetCompletedId parseFrom(
          java.nio.ByteBuffer 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(
          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);
      }

      @java.lang.Override
      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);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <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;
        }

        @java.lang.Override
        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) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          label_ = "";

          if (configurationBuilder_ == null) {
            configuration_ = null;
          } else {
            configuration_ = null;
            configurationBuilder_ = null;
          }
          aspect_ = "";

          return this;
        }

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

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

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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_;
          if (configurationBuilder_ == null) {
            result.configuration_ = configuration_;
          } else {
            result.configuration_ = configurationBuilder_.build();
          }
          result.aspect_ = aspect_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof 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();
          }
          if (other.hasConfiguration()) {
            mergeConfiguration(other.getConfiguration());
          }
          if (!other.getAspect().isEmpty()) {
            aspect_ = other.aspect_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          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>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>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>string label = 1;</code>
         */
        public Builder setLabel(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          label_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string label = 1;</code>
         */
        public Builder clearLabel() {
          
          label_ = getDefaultInstance().getLabel();
          onChanged();
          return this;
        }
        /**
         * <code>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;
        }

        private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> configurationBuilder_;
        /**
         * <pre>
         * The configuration for which the target was built.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public boolean hasConfiguration() {
          return configurationBuilder_ != null || configuration_ != null;
        }
        /**
         * <pre>
         * The configuration for which the target was built.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
          if (configurationBuilder_ == null) {
            return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
          } else {
            return configurationBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * The configuration for which the target was built.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public Builder setConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
          if (configurationBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            configuration_ = value;
            onChanged();
          } else {
            configurationBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * The configuration for which the target was built.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public Builder setConfiguration(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder builderForValue) {
          if (configurationBuilder_ == null) {
            configuration_ = builderForValue.build();
            onChanged();
          } else {
            configurationBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * The configuration for which the target was built.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public Builder mergeConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
          if (configurationBuilder_ == null) {
            if (configuration_ != null) {
              configuration_ =
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.newBuilder(configuration_).mergeFrom(value).buildPartial();
            } else {
              configuration_ = value;
            }
            onChanged();
          } else {
            configurationBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * The configuration for which the target was built.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public Builder clearConfiguration() {
          if (configurationBuilder_ == null) {
            configuration_ = null;
            onChanged();
          } else {
            configuration_ = null;
            configurationBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * The configuration for which the target was built.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder getConfigurationBuilder() {
          
          onChanged();
          return getConfigurationFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * The configuration for which the target was built.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
          if (configurationBuilder_ != null) {
            return configurationBuilder_.getMessageOrBuilder();
          } else {
            return configuration_ == null ?
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
          }
        }
        /**
         * <pre>
         * The configuration for which the target was built.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> 
            getConfigurationFieldBuilder() {
          if (configurationBuilder_ == null) {
            configurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder>(
                    getConfiguration(),
                    getParentForChildren(),
                    isClean());
            configuration_ = null;
          }
          return configurationBuilder_;
        }

        private java.lang.Object aspect_ = "";
        /**
         * <pre>
         * If not empty, the id refers to the completion of the target for a given
         * aspect.
         * </pre>
         *
         * <code>string aspect = 2;</code>
         */
        public java.lang.String getAspect() {
          java.lang.Object ref = aspect_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            aspect_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * If not empty, the id refers to the completion of the target for a given
         * aspect.
         * </pre>
         *
         * <code>string aspect = 2;</code>
         */
        public com.google.protobuf.ByteString
            getAspectBytes() {
          java.lang.Object ref = aspect_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            aspect_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * If not empty, the id refers to the completion of the target for a given
         * aspect.
         * </pre>
         *
         * <code>string aspect = 2;</code>
         */
        public Builder setAspect(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          aspect_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * If not empty, the id refers to the completion of the target for a given
         * aspect.
         * </pre>
         *
         * <code>string aspect = 2;</code>
         */
        public Builder clearAspect() {
          
          aspect_ = getDefaultInstance().getAspect();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * If not empty, the id refers to the completion of the target for a given
         * aspect.
         * </pre>
         *
         * <code>string aspect = 2;</code>
         */
        public Builder setAspectBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          aspect_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope: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>() {
        @java.lang.Override
        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;
      }

      @java.lang.Override
      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>string primary_output = 1;</code>
       */
      java.lang.String getPrimaryOutput();
      /**
       * <code>string primary_output = 1;</code>
       */
      com.google.protobuf.ByteString
          getPrimaryOutputBytes();

      /**
       * <pre>
       * Optional, the label of the owner of the action, for reference.
       * </pre>
       *
       * <code>string label = 2;</code>
       */
      java.lang.String getLabel();
      /**
       * <pre>
       * Optional, the label of the owner of the action, for reference.
       * </pre>
       *
       * <code>string label = 2;</code>
       */
      com.google.protobuf.ByteString
          getLabelBytes();

      /**
       * <pre>
       * Optional, the id of the configuration of the action owner.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      boolean hasConfiguration();
      /**
       * <pre>
       * Optional, the id of the configuration of the action owner.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration();
      /**
       * <pre>
       * Optional, the id of the configuration of the action owner.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder();
    }
    /**
     * <pre>
     * Identifier of an event reporting that an action was completed (not all
     * actions are reported, only the ones 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 {
    private static final long serialVersionUID = 0L;
      // Use ActionCompletedId.newBuilder() to construct.
      private ActionCompletedId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ActionCompletedId() {
        primaryOutput_ = "";
        label_ = "";
      }

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

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

                label_ = s;
                break;
              }
              case 26: {
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder subBuilder = null;
                if (configuration_ != null) {
                  subBuilder = configuration_.toBuilder();
                }
                configuration_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configuration_);
                  configuration_ = subBuilder.buildPartial();
                }

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

      @java.lang.Override
      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>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>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;
        }
      }

      public static final int LABEL_FIELD_NUMBER = 2;
      private volatile java.lang.Object label_;
      /**
       * <pre>
       * Optional, the label of the owner of the action, for reference.
       * </pre>
       *
       * <code>string label = 2;</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>
       * Optional, the label of the owner of the action, for reference.
       * </pre>
       *
       * <code>string label = 2;</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;
        }
      }

      public static final int CONFIGURATION_FIELD_NUMBER = 3;
      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_;
      /**
       * <pre>
       * Optional, the id of the configuration of the action owner.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      public boolean hasConfiguration() {
        return configuration_ != null;
      }
      /**
       * <pre>
       * Optional, the id of the configuration of the action owner.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
        return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
      }
      /**
       * <pre>
       * Optional, the id of the configuration of the action owner.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
        return getConfiguration();
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getPrimaryOutputBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, primaryOutput_);
        }
        if (!getLabelBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, label_);
        }
        if (configuration_ != null) {
          output.writeMessage(3, getConfiguration());
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (!getPrimaryOutputBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, primaryOutput_);
        }
        if (!getLabelBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, label_);
        }
        if (configuration_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getConfiguration());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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());
        result = result && getLabel()
            .equals(other.getLabel());
        result = result && (hasConfiguration() == other.hasConfiguration());
        if (hasConfiguration()) {
          result = result && getConfiguration()
              .equals(other.getConfiguration());
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

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

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ActionCompletedId parseFrom(
          java.nio.ByteBuffer 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(
          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);
      }

      @java.lang.Override
      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);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event reporting that an action was completed (not all
       * actions are reported, only the ones 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;
        }

        @java.lang.Override
        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) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          primaryOutput_ = "";

          label_ = "";

          if (configurationBuilder_ == null) {
            configuration_ = null;
          } else {
            configuration_ = null;
            configurationBuilder_ = null;
          }
          return this;
        }

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

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

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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_;
          result.label_ = label_;
          if (configurationBuilder_ == null) {
            result.configuration_ = configuration_;
          } else {
            result.configuration_ = configurationBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof 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();
          }
          if (!other.getLabel().isEmpty()) {
            label_ = other.label_;
            onChanged();
          }
          if (other.hasConfiguration()) {
            mergeConfiguration(other.getConfiguration());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          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>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>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>string primary_output = 1;</code>
         */
        public Builder setPrimaryOutput(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          primaryOutput_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string primary_output = 1;</code>
         */
        public Builder clearPrimaryOutput() {
          
          primaryOutput_ = getDefaultInstance().getPrimaryOutput();
          onChanged();
          return this;
        }
        /**
         * <code>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;
        }

        private java.lang.Object label_ = "";
        /**
         * <pre>
         * Optional, the label of the owner of the action, for reference.
         * </pre>
         *
         * <code>string label = 2;</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>
         * Optional, the label of the owner of the action, for reference.
         * </pre>
         *
         * <code>string label = 2;</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>
         * Optional, the label of the owner of the action, for reference.
         * </pre>
         *
         * <code>string label = 2;</code>
         */
        public Builder setLabel(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          label_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Optional, the label of the owner of the action, for reference.
         * </pre>
         *
         * <code>string label = 2;</code>
         */
        public Builder clearLabel() {
          
          label_ = getDefaultInstance().getLabel();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Optional, the label of the owner of the action, for reference.
         * </pre>
         *
         * <code>string label = 2;</code>
         */
        public Builder setLabelBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          label_ = value;
          onChanged();
          return this;
        }

        private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> configurationBuilder_;
        /**
         * <pre>
         * Optional, the id of the configuration of the action owner.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public boolean hasConfiguration() {
          return configurationBuilder_ != null || configuration_ != null;
        }
        /**
         * <pre>
         * Optional, the id of the configuration of the action owner.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
          if (configurationBuilder_ == null) {
            return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
          } else {
            return configurationBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * Optional, the id of the configuration of the action owner.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public Builder setConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
          if (configurationBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            configuration_ = value;
            onChanged();
          } else {
            configurationBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         * Optional, the id of the configuration of the action owner.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public Builder setConfiguration(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder builderForValue) {
          if (configurationBuilder_ == null) {
            configuration_ = builderForValue.build();
            onChanged();
          } else {
            configurationBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         * Optional, the id of the configuration of the action owner.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public Builder mergeConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
          if (configurationBuilder_ == null) {
            if (configuration_ != null) {
              configuration_ =
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.newBuilder(configuration_).mergeFrom(value).buildPartial();
            } else {
              configuration_ = value;
            }
            onChanged();
          } else {
            configurationBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         * Optional, the id of the configuration of the action owner.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public Builder clearConfiguration() {
          if (configurationBuilder_ == null) {
            configuration_ = null;
            onChanged();
          } else {
            configuration_ = null;
            configurationBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         * Optional, the id of the configuration of the action owner.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder getConfigurationBuilder() {
          
          onChanged();
          return getConfigurationFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Optional, the id of the configuration of the action owner.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
          if (configurationBuilder_ != null) {
            return configurationBuilder_.getMessageOrBuilder();
          } else {
            return configuration_ == null ?
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
          }
        }
        /**
         * <pre>
         * Optional, the id of the configuration of the action owner.
         * </pre>
         *
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> 
            getConfigurationFieldBuilder() {
          if (configurationBuilder_ == null) {
            configurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder>(
                    getConfiguration(),
                    getParentForChildren(),
                    isClean());
            configuration_ = null;
          }
          return configurationBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope: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>() {
        @java.lang.Override
        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;
      }

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

    }

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

      /**
       * <code>string label = 1;</code>
       */
      java.lang.String getLabel();
      /**
       * <code>string label = 1;</code>
       */
      com.google.protobuf.ByteString
          getLabelBytes();
    }
    /**
     * <pre>
     * Identifier of an event reporting an event associated with an unconfigured
     * label. Usually, this indicates a failure due to a missing input file. In
     * any case, it will report some form of error (i.e., the payload will be an
     * Aborted event); there are no regular events using this identifier. The
     * purpose of those events is to serve as the root cause of a failed target.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.UnconfiguredLabelId}
     */
    public  static final class UnconfiguredLabelId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.UnconfiguredLabelId)
        UnconfiguredLabelIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use UnconfiguredLabelId.newBuilder() to construct.
      private UnconfiguredLabelId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private UnconfiguredLabelId() {
        label_ = "";
      }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnconfiguredLabelId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.Builder.class);
      }

      public static final int LABEL_FIELD_NUMBER = 1;
      private volatile java.lang.Object label_;
      /**
       * <code>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>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;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

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

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

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

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

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

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + 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.UnconfiguredLabelId parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId parseFrom(
          java.nio.ByteBuffer 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.UnconfiguredLabelId 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.UnconfiguredLabelId 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.UnconfiguredLabelId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId 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.UnconfiguredLabelId 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.UnconfiguredLabelId 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.UnconfiguredLabelId 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.UnconfiguredLabelId 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.UnconfiguredLabelId 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.UnconfiguredLabelId parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event reporting an event associated with an unconfigured
       * label. Usually, this indicates a failure due to a missing input file. In
       * any case, it will report some form of error (i.e., the payload will be an
       * Aborted event); there are no regular events using this identifier. The
       * purpose of those events is to serve as the root cause of a failed target.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.UnconfiguredLabelId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.UnconfiguredLabelId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnconfiguredLabelId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnconfiguredLabelId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.Builder.class);
        }

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

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

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_UnconfiguredLabelId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId(this);
          result.label_ = label_;
          onBuilt();
          return result;
        }

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

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

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

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

        private java.lang.Object label_ = "";
        /**
         * <code>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>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>string label = 1;</code>
         */
        public Builder setLabel(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          label_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string label = 1;</code>
         */
        public Builder clearLabel() {
          
          label_ = getDefaultInstance().getLabel();
          onChanged();
          return this;
        }
        /**
         * <code>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;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <code>string label = 1;</code>
       */
      java.lang.String getLabel();
      /**
       * <code>string label = 1;</code>
       */
      com.google.protobuf.ByteString
          getLabelBytes();

      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      boolean hasConfiguration();
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration();
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder();
    }
    /**
     * <pre>
     * Identifier of an event reporting an event associated with a configured
     * label, usually a visibility error. In any case, an event with such an
     * id will always report some form of error (i.e., the payload will be an
     * Aborted event); there are no regular events using this identifier.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.ConfiguredLabelId}
     */
    public  static final class ConfiguredLabelId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.ConfiguredLabelId)
        ConfiguredLabelIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ConfiguredLabelId.newBuilder() to construct.
      private ConfiguredLabelId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ConfiguredLabelId() {
        label_ = "";
      }

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

                label_ = s;
                break;
              }
              case 18: {
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder subBuilder = null;
                if (configuration_ != null) {
                  subBuilder = configuration_.toBuilder();
                }
                configuration_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configuration_);
                  configuration_ = subBuilder.buildPartial();
                }

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ConfiguredLabelId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.Builder.class);
      }

      public static final int LABEL_FIELD_NUMBER = 1;
      private volatile java.lang.Object label_;
      /**
       * <code>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>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;
        }
      }

      public static final int CONFIGURATION_FIELD_NUMBER = 2;
      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_;
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      public boolean hasConfiguration() {
        return configuration_ != null;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
        return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
        return getConfiguration();
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getLabelBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, label_);
        }
        if (configuration_ != null) {
          output.writeMessage(2, getConfiguration());
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (!getLabelBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, label_);
        }
        if (configuration_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getConfiguration());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        boolean result = true;
        result = result && getLabel()
            .equals(other.getLabel());
        result = result && (hasConfiguration() == other.hasConfiguration());
        if (hasConfiguration()) {
          result = result && getConfiguration()
              .equals(other.getConfiguration());
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event reporting an event associated with a configured
       * label, usually a visibility error. In any case, an event with such an
       * id will always report some form of error (i.e., the payload will be an
       * Aborted event); there are no regular events using this identifier.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.ConfiguredLabelId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.ConfiguredLabelId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ConfiguredLabelId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ConfiguredLabelId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.Builder.class);
        }

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

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

          if (configurationBuilder_ == null) {
            configuration_ = null;
          } else {
            configuration_ = null;
            configurationBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_ConfiguredLabelId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId(this);
          result.label_ = label_;
          if (configurationBuilder_ == null) {
            result.configuration_ = configuration_;
          } else {
            result.configuration_ = configurationBuilder_.build();
          }
          onBuilt();
          return result;
        }

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

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

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

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

        private java.lang.Object label_ = "";
        /**
         * <code>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>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>string label = 1;</code>
         */
        public Builder setLabel(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          label_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string label = 1;</code>
         */
        public Builder clearLabel() {
          
          label_ = getDefaultInstance().getLabel();
          onChanged();
          return this;
        }
        /**
         * <code>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;
        }

        private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> configurationBuilder_;
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public boolean hasConfiguration() {
          return configurationBuilder_ != null || configuration_ != null;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
          if (configurationBuilder_ == null) {
            return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
          } else {
            return configurationBuilder_.getMessage();
          }
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public Builder setConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
          if (configurationBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            configuration_ = value;
            onChanged();
          } else {
            configurationBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public Builder setConfiguration(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder builderForValue) {
          if (configurationBuilder_ == null) {
            configuration_ = builderForValue.build();
            onChanged();
          } else {
            configurationBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public Builder mergeConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
          if (configurationBuilder_ == null) {
            if (configuration_ != null) {
              configuration_ =
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.newBuilder(configuration_).mergeFrom(value).buildPartial();
            } else {
              configuration_ = value;
            }
            onChanged();
          } else {
            configurationBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public Builder clearConfiguration() {
          if (configurationBuilder_ == null) {
            configuration_ = null;
            onChanged();
          } else {
            configuration_ = null;
            configurationBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder getConfigurationBuilder() {
          
          onChanged();
          return getConfigurationFieldBuilder().getBuilder();
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
          if (configurationBuilder_ != null) {
            return configurationBuilder_.getMessageOrBuilder();
          } else {
            return configuration_ == null ?
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
          }
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> 
            getConfigurationFieldBuilder() {
          if (configurationBuilder_ == null) {
            configurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder>(
                    getConfiguration(),
                    getParentForChildren(),
                    isClean());
            configuration_ = null;
          }
          return configurationBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <code>string label = 1;</code>
       */
      java.lang.String getLabel();
      /**
       * <code>string label = 1;</code>
       */
      com.google.protobuf.ByteString
          getLabelBytes();

      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
       */
      boolean hasConfiguration();
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration();
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder();

      /**
       * <code>int32 run = 2;</code>
       */
      int getRun();

      /**
       * <code>int32 shard = 3;</code>
       */
      int getShard();

      /**
       * <code>int32 attempt = 4;</code>
       */
      int getAttempt();
    }
    /**
     * <pre>
     * Identifier of an event reporting on an individual test run. The label
     * identifies the test that is reported about, the remaining fields are
     * in such a way as to uniquely identify the action within a build. In fact,
     * attempts for the same test, run, shard triple are counted sequentially,
     * starting with 1.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.TestResultId}
     */
    public  static final class TestResultId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.TestResultId)
        TestResultIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use TestResultId.newBuilder() to construct.
      private TestResultId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private TestResultId() {
        label_ = "";
        run_ = 0;
        shard_ = 0;
        attempt_ = 0;
      }

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

                label_ = s;
                break;
              }
              case 16: {

                run_ = input.readInt32();
                break;
              }
              case 24: {

                shard_ = input.readInt32();
                break;
              }
              case 32: {

                attempt_ = input.readInt32();
                break;
              }
              case 42: {
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder subBuilder = null;
                if (configuration_ != null) {
                  subBuilder = configuration_.toBuilder();
                }
                configuration_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configuration_);
                  configuration_ = subBuilder.buildPartial();
                }

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TestResultId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.Builder.class);
      }

      public static final int LABEL_FIELD_NUMBER = 1;
      private volatile java.lang.Object label_;
      /**
       * <code>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>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;
        }
      }

      public static final int CONFIGURATION_FIELD_NUMBER = 5;
      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_;
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
       */
      public boolean hasConfiguration() {
        return configuration_ != null;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
        return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
        return getConfiguration();
      }

      public static final int RUN_FIELD_NUMBER = 2;
      private int run_;
      /**
       * <code>int32 run = 2;</code>
       */
      public int getRun() {
        return run_;
      }

      public static final int SHARD_FIELD_NUMBER = 3;
      private int shard_;
      /**
       * <code>int32 shard = 3;</code>
       */
      public int getShard() {
        return shard_;
      }

      public static final int ATTEMPT_FIELD_NUMBER = 4;
      private int attempt_;
      /**
       * <code>int32 attempt = 4;</code>
       */
      public int getAttempt() {
        return attempt_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getLabelBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, label_);
        }
        if (run_ != 0) {
          output.writeInt32(2, run_);
        }
        if (shard_ != 0) {
          output.writeInt32(3, shard_);
        }
        if (attempt_ != 0) {
          output.writeInt32(4, attempt_);
        }
        if (configuration_ != null) {
          output.writeMessage(5, getConfiguration());
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (!getLabelBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, label_);
        }
        if (run_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, run_);
        }
        if (shard_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, shard_);
        }
        if (attempt_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, attempt_);
        }
        if (configuration_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getConfiguration());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

        boolean result = true;
        result = result && getLabel()
            .equals(other.getLabel());
        result = result && (hasConfiguration() == other.hasConfiguration());
        if (hasConfiguration()) {
          result = result && getConfiguration()
              .equals(other.getConfiguration());
        }
        result = result && (getRun()
            == other.getRun());
        result = result && (getShard()
            == other.getShard());
        result = result && (getAttempt()
            == other.getAttempt());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + LABEL_FIELD_NUMBER;
        hash = (53 * hash) + getLabel().hashCode();
        if (hasConfiguration()) {
          hash = (37 * hash) + CONFIGURATION_FIELD_NUMBER;
          hash = (53 * hash) + getConfiguration().hashCode();
        }
        hash = (37 * hash) + RUN_FIELD_NUMBER;
        hash = (53 * hash) + getRun();
        hash = (37 * hash) + SHARD_FIELD_NUMBER;
        hash = (53 * hash) + getShard();
        hash = (37 * hash) + ATTEMPT_FIELD_NUMBER;
        hash = (53 * hash) + getAttempt();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event reporting on an individual test run. The label
       * identifies the test that is reported about, the remaining fields are
       * in such a way as to uniquely identify the action within a build. In fact,
       * attempts for the same test, run, shard triple are counted sequentially,
       * starting with 1.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.TestResultId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.TestResultId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TestResultId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TestResultId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.Builder.class);
        }

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

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

          if (configurationBuilder_ == null) {
            configuration_ = null;
          } else {
            configuration_ = null;
            configurationBuilder_ = null;
          }
          run_ = 0;

          shard_ = 0;

          attempt_ = 0;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_TestResultId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId(this);
          result.label_ = label_;
          if (configurationBuilder_ == null) {
            result.configuration_ = configuration_;
          } else {
            result.configuration_ = configurationBuilder_.build();
          }
          result.run_ = run_;
          result.shard_ = shard_;
          result.attempt_ = attempt_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.getDefaultInstance()) return this;
          if (!other.getLabel().isEmpty()) {
            label_ = other.label_;
            onChanged();
          }
          if (other.hasConfiguration()) {
            mergeConfiguration(other.getConfiguration());
          }
          if (other.getRun() != 0) {
            setRun(other.getRun());
          }
          if (other.getShard() != 0) {
            setShard(other.getShard());
          }
          if (other.getAttempt() != 0) {
            setAttempt(other.getAttempt());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

        private java.lang.Object label_ = "";
        /**
         * <code>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>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>string label = 1;</code>
         */
        public Builder setLabel(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          label_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string label = 1;</code>
         */
        public Builder clearLabel() {
          
          label_ = getDefaultInstance().getLabel();
          onChanged();
          return this;
        }
        /**
         * <code>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;
        }

        private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> configurationBuilder_;
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
         */
        public boolean hasConfiguration() {
          return configurationBuilder_ != null || configuration_ != null;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
          if (configurationBuilder_ == null) {
            return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
          } else {
            return configurationBuilder_.getMessage();
          }
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
         */
        public Builder setConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
          if (configurationBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            configuration_ = value;
            onChanged();
          } else {
            configurationBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
         */
        public Builder setConfiguration(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder builderForValue) {
          if (configurationBuilder_ == null) {
            configuration_ = builderForValue.build();
            onChanged();
          } else {
            configurationBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
         */
        public Builder mergeConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
          if (configurationBuilder_ == null) {
            if (configuration_ != null) {
              configuration_ =
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.newBuilder(configuration_).mergeFrom(value).buildPartial();
            } else {
              configuration_ = value;
            }
            onChanged();
          } else {
            configurationBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
         */
        public Builder clearConfiguration() {
          if (configurationBuilder_ == null) {
            configuration_ = null;
            onChanged();
          } else {
            configuration_ = null;
            configurationBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder getConfigurationBuilder() {
          
          onChanged();
          return getConfigurationFieldBuilder().getBuilder();
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
          if (configurationBuilder_ != null) {
            return configurationBuilder_.getMessageOrBuilder();
          } else {
            return configuration_ == null ?
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
          }
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 5;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> 
            getConfigurationFieldBuilder() {
          if (configurationBuilder_ == null) {
            configurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder>(
                    getConfiguration(),
                    getParentForChildren(),
                    isClean());
            configuration_ = null;
          }
          return configurationBuilder_;
        }

        private int run_ ;
        /**
         * <code>int32 run = 2;</code>
         */
        public int getRun() {
          return run_;
        }
        /**
         * <code>int32 run = 2;</code>
         */
        public Builder setRun(int value) {
          
          run_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 run = 2;</code>
         */
        public Builder clearRun() {
          
          run_ = 0;
          onChanged();
          return this;
        }

        private int shard_ ;
        /**
         * <code>int32 shard = 3;</code>
         */
        public int getShard() {
          return shard_;
        }
        /**
         * <code>int32 shard = 3;</code>
         */
        public Builder setShard(int value) {
          
          shard_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 shard = 3;</code>
         */
        public Builder clearShard() {
          
          shard_ = 0;
          onChanged();
          return this;
        }

        private int attempt_ ;
        /**
         * <code>int32 attempt = 4;</code>
         */
        public int getAttempt() {
          return attempt_;
        }
        /**
         * <code>int32 attempt = 4;</code>
         */
        public Builder setAttempt(int value) {
          
          attempt_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 attempt = 4;</code>
         */
        public Builder clearAttempt() {
          
          attempt_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <code>string label = 1;</code>
       */
      java.lang.String getLabel();
      /**
       * <code>string label = 1;</code>
       */
      com.google.protobuf.ByteString
          getLabelBytes();

      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      boolean hasConfiguration();
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration();
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder();
    }
    /**
     * <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 {
    private static final long serialVersionUID = 0L;
      // 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 this.unknownFields;
      }
      private TestSummaryId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();

                label_ = s;
                break;
              }
              case 18: {
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder subBuilder = null;
                if (configuration_ != null) {
                  subBuilder = configuration_.toBuilder();
                }
                configuration_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configuration_);
                  configuration_ = subBuilder.buildPartial();
                }

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

      @java.lang.Override
      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>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>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;
        }
      }

      public static final int CONFIGURATION_FIELD_NUMBER = 2;
      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_;
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      public boolean hasConfiguration() {
        return configuration_ != null;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
        return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
        return getConfiguration();
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getLabelBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, label_);
        }
        if (configuration_ != null) {
          output.writeMessage(2, getConfiguration());
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (!getLabelBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, label_);
        }
        if (configuration_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getConfiguration());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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());
        result = result && (hasConfiguration() == other.hasConfiguration());
        if (hasConfiguration()) {
          result = result && getConfiguration()
              .equals(other.getConfiguration());
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

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

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestSummaryId parseFrom(
          java.nio.ByteBuffer 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(
          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);
      }

      @java.lang.Override
      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);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <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;
        }

        @java.lang.Override
        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) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          label_ = "";

          if (configurationBuilder_ == null) {
            configuration_ = null;
          } else {
            configuration_ = null;
            configurationBuilder_ = null;
          }
          return this;
        }

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

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

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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_;
          if (configurationBuilder_ == null) {
            result.configuration_ = configuration_;
          } else {
            result.configuration_ = configurationBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof 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();
          }
          if (other.hasConfiguration()) {
            mergeConfiguration(other.getConfiguration());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          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>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>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>string label = 1;</code>
         */
        public Builder setLabel(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          label_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string label = 1;</code>
         */
        public Builder clearLabel() {
          
          label_ = getDefaultInstance().getLabel();
          onChanged();
          return this;
        }
        /**
         * <code>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;
        }

        private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> configurationBuilder_;
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public boolean hasConfiguration() {
          return configurationBuilder_ != null || configuration_ != null;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
          if (configurationBuilder_ == null) {
            return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
          } else {
            return configurationBuilder_.getMessage();
          }
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public Builder setConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
          if (configurationBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            configuration_ = value;
            onChanged();
          } else {
            configurationBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public Builder setConfiguration(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder builderForValue) {
          if (configurationBuilder_ == null) {
            configuration_ = builderForValue.build();
            onChanged();
          } else {
            configurationBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public Builder mergeConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
          if (configurationBuilder_ == null) {
            if (configuration_ != null) {
              configuration_ =
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.newBuilder(configuration_).mergeFrom(value).buildPartial();
            } else {
              configuration_ = value;
            }
            onChanged();
          } else {
            configurationBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public Builder clearConfiguration() {
          if (configurationBuilder_ == null) {
            configuration_ = null;
            onChanged();
          } else {
            configuration_ = null;
            configurationBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder getConfigurationBuilder() {
          
          onChanged();
          return getConfigurationFieldBuilder().getBuilder();
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
          if (configurationBuilder_ != null) {
            return configurationBuilder_.getMessageOrBuilder();
          } else {
            return configuration_ == null ?
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
          }
        }
        /**
         * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> 
            getConfigurationFieldBuilder() {
          if (configurationBuilder_ == null) {
            configurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder>(
                    getConfiguration(),
                    getParentForChildren(),
                    isClean());
            configuration_ = null;
          }
          return configurationBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope: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>() {
        @java.lang.Override
        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;
      }

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

    }

    public interface BuildFinishedIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.BuildFinishedId)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Identifier of the BuildFinished event, indicating the end of a build.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.BuildFinishedId}
     */
    public  static final class BuildFinishedId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.BuildFinishedId)
        BuildFinishedIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use BuildFinishedId.newBuilder() to construct.
      private BuildFinishedId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private BuildFinishedId() {
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private BuildFinishedId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildFinishedId_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildFinishedId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.Builder.class);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of the BuildFinished event, indicating the end of a build.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.BuildFinishedId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.BuildFinishedId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildFinishedId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildFinishedId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.Builder.class);
        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildFinishedId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId(this);
          onBuilt();
          return result;
        }

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

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

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

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

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface BuildToolLogsIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.BuildToolLogsId)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Identifier of an event providing additional logs/statistics after
     * completion of the build.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.BuildToolLogsId}
     */
    public  static final class BuildToolLogsId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.BuildToolLogsId)
        BuildToolLogsIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use BuildToolLogsId.newBuilder() to construct.
      private BuildToolLogsId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private BuildToolLogsId() {
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private BuildToolLogsId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildToolLogsId_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildToolLogsId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.Builder.class);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event providing additional logs/statistics after
       * completion of the build.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.BuildToolLogsId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.BuildToolLogsId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildToolLogsId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildToolLogsId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.Builder.class);
        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildToolLogsId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId(this);
          onBuilt();
          return result;
        }

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

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

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

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

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface BuildMetricsIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEventId.BuildMetricsId)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * <pre>
     * Identifier of an event providing build metrics after completion
     * of the build.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildEventId.BuildMetricsId}
     */
    public  static final class BuildMetricsId extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildEventId.BuildMetricsId)
        BuildMetricsIdOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use BuildMetricsId.newBuilder() to construct.
      private BuildMetricsId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private BuildMetricsId() {
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private BuildMetricsId(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildMetricsId_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildMetricsId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.Builder.class);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

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

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Identifier of an event providing build metrics after completion
       * of the build.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildEventId.BuildMetricsId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildEventId.BuildMetricsId)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsIdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildMetricsId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildMetricsId_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.Builder.class);
        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEventId_BuildMetricsId_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.getDefaultInstance();
        }

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId(this);
          onBuilt();
          return result;
        }

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

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

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

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

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


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

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId 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),
      UNSTRUCTURED_COMMAND_LINE(11),
      STRUCTURED_COMMAND_LINE(18),
      WORKSPACE_STATUS(14),
      OPTIONS_PARSED(12),
      FETCH(17),
      CONFIGURATION(15),
      TARGET_CONFIGURED(16),
      PATTERN(4),
      PATTERN_SKIPPED(10),
      NAMED_SET(13),
      TARGET_COMPLETED(5),
      ACTION_COMPLETED(6),
      UNCONFIGURED_LABEL(19),
      CONFIGURED_LABEL(21),
      TEST_RESULT(8),
      TEST_SUMMARY(7),
      BUILD_FINISHED(9),
      BUILD_TOOL_LOGS(20),
      BUILD_METRICS(22),
      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 11: return UNSTRUCTURED_COMMAND_LINE;
          case 18: return STRUCTURED_COMMAND_LINE;
          case 14: return WORKSPACE_STATUS;
          case 12: return OPTIONS_PARSED;
          case 17: return FETCH;
          case 15: return CONFIGURATION;
          case 16: return TARGET_CONFIGURED;
          case 4: return PATTERN;
          case 10: return PATTERN_SKIPPED;
          case 13: return NAMED_SET;
          case 5: return TARGET_COMPLETED;
          case 6: return ACTION_COMPLETED;
          case 19: return UNCONFIGURED_LABEL;
          case 21: return CONFIGURED_LABEL;
          case 8: return TEST_RESULT;
          case 7: return TEST_SUMMARY;
          case 9: return BUILD_FINISHED;
          case 20: return BUILD_TOOL_LOGS;
          case 22: return BUILD_METRICS;
          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>.build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
     */
    public boolean hasUnknown() {
      return idCase_ == 1;
    }
    /**
     * <code>.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>.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>.build_event_stream.BuildEventId.ProgressId progress = 2;</code>
     */
    public boolean hasProgress() {
      return idCase_ == 2;
    }
    /**
     * <code>.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>.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>.build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
     */
    public boolean hasStarted() {
      return idCase_ == 3;
    }
    /**
     * <code>.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>.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 UNSTRUCTURED_COMMAND_LINE_FIELD_NUMBER = 11;
    /**
     * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
     */
    public boolean hasUnstructuredCommandLine() {
      return idCase_ == 11;
    }
    /**
     * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId getUnstructuredCommandLine() {
      if (idCase_ == 11) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineIdOrBuilder getUnstructuredCommandLineOrBuilder() {
      if (idCase_ == 11) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.getDefaultInstance();
    }

    public static final int STRUCTURED_COMMAND_LINE_FIELD_NUMBER = 18;
    /**
     * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
     */
    public boolean hasStructuredCommandLine() {
      return idCase_ == 18;
    }
    /**
     * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId getStructuredCommandLine() {
      if (idCase_ == 18) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineIdOrBuilder getStructuredCommandLineOrBuilder() {
      if (idCase_ == 18) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.getDefaultInstance();
    }

    public static final int WORKSPACE_STATUS_FIELD_NUMBER = 14;
    /**
     * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
     */
    public boolean hasWorkspaceStatus() {
      return idCase_ == 14;
    }
    /**
     * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId getWorkspaceStatus() {
      if (idCase_ == 14) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusIdOrBuilder getWorkspaceStatusOrBuilder() {
      if (idCase_ == 14) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.getDefaultInstance();
    }

    public static final int OPTIONS_PARSED_FIELD_NUMBER = 12;
    /**
     * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
     */
    public boolean hasOptionsParsed() {
      return idCase_ == 12;
    }
    /**
     * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId getOptionsParsed() {
      if (idCase_ == 12) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedIdOrBuilder getOptionsParsedOrBuilder() {
      if (idCase_ == 12) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.getDefaultInstance();
    }

    public static final int FETCH_FIELD_NUMBER = 17;
    /**
     * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
     */
    public boolean hasFetch() {
      return idCase_ == 17;
    }
    /**
     * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId getFetch() {
      if (idCase_ == 17) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchIdOrBuilder getFetchOrBuilder() {
      if (idCase_ == 17) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.getDefaultInstance();
    }

    public static final int CONFIGURATION_FIELD_NUMBER = 15;
    /**
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
     */
    public boolean hasConfiguration() {
      return idCase_ == 15;
    }
    /**
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
      if (idCase_ == 15) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
      if (idCase_ == 15) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance();
    }

    public static final int TARGET_CONFIGURED_FIELD_NUMBER = 16;
    /**
     * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
     */
    public boolean hasTargetConfigured() {
      return idCase_ == 16;
    }
    /**
     * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId getTargetConfigured() {
      if (idCase_ == 16) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredIdOrBuilder getTargetConfiguredOrBuilder() {
      if (idCase_ == 16) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.getDefaultInstance();
    }

    public static final int PATTERN_FIELD_NUMBER = 4;
    /**
     * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
     */
    public boolean hasPattern() {
      return idCase_ == 4;
    }
    /**
     * <code>.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>.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 PATTERN_SKIPPED_FIELD_NUMBER = 10;
    /**
     * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
     */
    public boolean hasPatternSkipped() {
      return idCase_ == 10;
    }
    /**
     * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId getPatternSkipped() {
      if (idCase_ == 10) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder getPatternSkippedOrBuilder() {
      if (idCase_ == 10) {
         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 NAMED_SET_FIELD_NUMBER = 13;
    /**
     * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
     */
    public boolean hasNamedSet() {
      return idCase_ == 13;
    }
    /**
     * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getNamedSet() {
      if (idCase_ == 13) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder getNamedSetOrBuilder() {
      if (idCase_ == 13) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance();
    }

    public static final int TARGET_COMPLETED_FIELD_NUMBER = 5;
    /**
     * <code>.build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
     */
    public boolean hasTargetCompleted() {
      return idCase_ == 5;
    }
    /**
     * <code>.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>.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>.build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
     */
    public boolean hasActionCompleted() {
      return idCase_ == 6;
    }
    /**
     * <code>.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>.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 UNCONFIGURED_LABEL_FIELD_NUMBER = 19;
    /**
     * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
     */
    public boolean hasUnconfiguredLabel() {
      return idCase_ == 19;
    }
    /**
     * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId getUnconfiguredLabel() {
      if (idCase_ == 19) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelIdOrBuilder getUnconfiguredLabelOrBuilder() {
      if (idCase_ == 19) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.getDefaultInstance();
    }

    public static final int CONFIGURED_LABEL_FIELD_NUMBER = 21;
    /**
     * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
     */
    public boolean hasConfiguredLabel() {
      return idCase_ == 21;
    }
    /**
     * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId getConfiguredLabel() {
      if (idCase_ == 21) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelIdOrBuilder getConfiguredLabelOrBuilder() {
      if (idCase_ == 21) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.getDefaultInstance();
    }

    public static final int TEST_RESULT_FIELD_NUMBER = 8;
    /**
     * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
     */
    public boolean hasTestResult() {
      return idCase_ == 8;
    }
    /**
     * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId getTestResult() {
      if (idCase_ == 8) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultIdOrBuilder getTestResultOrBuilder() {
      if (idCase_ == 8) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.getDefaultInstance();
    }

    public static final int TEST_SUMMARY_FIELD_NUMBER = 7;
    /**
     * <code>.build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
     */
    public boolean hasTestSummary() {
      return idCase_ == 7;
    }
    /**
     * <code>.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>.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();
    }

    public static final int BUILD_FINISHED_FIELD_NUMBER = 9;
    /**
     * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
     */
    public boolean hasBuildFinished() {
      return idCase_ == 9;
    }
    /**
     * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId getBuildFinished() {
      if (idCase_ == 9) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedIdOrBuilder getBuildFinishedOrBuilder() {
      if (idCase_ == 9) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.getDefaultInstance();
    }

    public static final int BUILD_TOOL_LOGS_FIELD_NUMBER = 20;
    /**
     * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
     */
    public boolean hasBuildToolLogs() {
      return idCase_ == 20;
    }
    /**
     * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId getBuildToolLogs() {
      if (idCase_ == 20) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsIdOrBuilder getBuildToolLogsOrBuilder() {
      if (idCase_ == 20) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.getDefaultInstance();
    }

    public static final int BUILD_METRICS_FIELD_NUMBER = 22;
    /**
     * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
     */
    public boolean hasBuildMetrics() {
      return idCase_ == 22;
    }
    /**
     * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId getBuildMetrics() {
      if (idCase_ == 22) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsIdOrBuilder getBuildMetricsOrBuilder() {
      if (idCase_ == 22) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId) id_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.getDefaultInstance();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (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_);
      }
      if (idCase_ == 8) {
        output.writeMessage(8, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId) id_);
      }
      if (idCase_ == 9) {
        output.writeMessage(9, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId) id_);
      }
      if (idCase_ == 10) {
        output.writeMessage(10, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_);
      }
      if (idCase_ == 11) {
        output.writeMessage(11, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId) id_);
      }
      if (idCase_ == 12) {
        output.writeMessage(12, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId) id_);
      }
      if (idCase_ == 13) {
        output.writeMessage(13, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId) id_);
      }
      if (idCase_ == 14) {
        output.writeMessage(14, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId) id_);
      }
      if (idCase_ == 15) {
        output.writeMessage(15, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId) id_);
      }
      if (idCase_ == 16) {
        output.writeMessage(16, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId) id_);
      }
      if (idCase_ == 17) {
        output.writeMessage(17, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId) id_);
      }
      if (idCase_ == 18) {
        output.writeMessage(18, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId) id_);
      }
      if (idCase_ == 19) {
        output.writeMessage(19, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId) id_);
      }
      if (idCase_ == 20) {
        output.writeMessage(20, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId) id_);
      }
      if (idCase_ == 21) {
        output.writeMessage(21, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId) id_);
      }
      if (idCase_ == 22) {
        output.writeMessage(22, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId) id_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    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_);
      }
      if (idCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId) id_);
      }
      if (idCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId) id_);
      }
      if (idCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_);
      }
      if (idCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId) id_);
      }
      if (idCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId) id_);
      }
      if (idCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId) id_);
      }
      if (idCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId) id_);
      }
      if (idCase_ == 15) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId) id_);
      }
      if (idCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId) id_);
      }
      if (idCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId) id_);
      }
      if (idCase_ == 18) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId) id_);
      }
      if (idCase_ == 19) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId) id_);
      }
      if (idCase_ == 20) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId) id_);
      }
      if (idCase_ == 21) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId) id_);
      }
      if (idCase_ == 22) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId) id_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof 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 11:
          result = result && getUnstructuredCommandLine()
              .equals(other.getUnstructuredCommandLine());
          break;
        case 18:
          result = result && getStructuredCommandLine()
              .equals(other.getStructuredCommandLine());
          break;
        case 14:
          result = result && getWorkspaceStatus()
              .equals(other.getWorkspaceStatus());
          break;
        case 12:
          result = result && getOptionsParsed()
              .equals(other.getOptionsParsed());
          break;
        case 17:
          result = result && getFetch()
              .equals(other.getFetch());
          break;
        case 15:
          result = result && getConfiguration()
              .equals(other.getConfiguration());
          break;
        case 16:
          result = result && getTargetConfigured()
              .equals(other.getTargetConfigured());
          break;
        case 4:
          result = result && getPattern()
              .equals(other.getPattern());
          break;
        case 10:
          result = result && getPatternSkipped()
              .equals(other.getPatternSkipped());
          break;
        case 13:
          result = result && getNamedSet()
              .equals(other.getNamedSet());
          break;
        case 5:
          result = result && getTargetCompleted()
              .equals(other.getTargetCompleted());
          break;
        case 6:
          result = result && getActionCompleted()
              .equals(other.getActionCompleted());
          break;
        case 19:
          result = result && getUnconfiguredLabel()
              .equals(other.getUnconfiguredLabel());
          break;
        case 21:
          result = result && getConfiguredLabel()
              .equals(other.getConfiguredLabel());
          break;
        case 8:
          result = result && getTestResult()
              .equals(other.getTestResult());
          break;
        case 7:
          result = result && getTestSummary()
              .equals(other.getTestSummary());
          break;
        case 9:
          result = result && getBuildFinished()
              .equals(other.getBuildFinished());
          break;
        case 20:
          result = result && getBuildToolLogs()
              .equals(other.getBuildToolLogs());
          break;
        case 22:
          result = result && getBuildMetrics()
              .equals(other.getBuildMetrics());
          break;
        case 0:
        default:
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      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 11:
          hash = (37 * hash) + UNSTRUCTURED_COMMAND_LINE_FIELD_NUMBER;
          hash = (53 * hash) + getUnstructuredCommandLine().hashCode();
          break;
        case 18:
          hash = (37 * hash) + STRUCTURED_COMMAND_LINE_FIELD_NUMBER;
          hash = (53 * hash) + getStructuredCommandLine().hashCode();
          break;
        case 14:
          hash = (37 * hash) + WORKSPACE_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getWorkspaceStatus().hashCode();
          break;
        case 12:
          hash = (37 * hash) + OPTIONS_PARSED_FIELD_NUMBER;
          hash = (53 * hash) + getOptionsParsed().hashCode();
          break;
        case 17:
          hash = (37 * hash) + FETCH_FIELD_NUMBER;
          hash = (53 * hash) + getFetch().hashCode();
          break;
        case 15:
          hash = (37 * hash) + CONFIGURATION_FIELD_NUMBER;
          hash = (53 * hash) + getConfiguration().hashCode();
          break;
        case 16:
          hash = (37 * hash) + TARGET_CONFIGURED_FIELD_NUMBER;
          hash = (53 * hash) + getTargetConfigured().hashCode();
          break;
        case 4:
          hash = (37 * hash) + PATTERN_FIELD_NUMBER;
          hash = (53 * hash) + getPattern().hashCode();
          break;
        case 10:
          hash = (37 * hash) + PATTERN_SKIPPED_FIELD_NUMBER;
          hash = (53 * hash) + getPatternSkipped().hashCode();
          break;
        case 13:
          hash = (37 * hash) + NAMED_SET_FIELD_NUMBER;
          hash = (53 * hash) + getNamedSet().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 19:
          hash = (37 * hash) + UNCONFIGURED_LABEL_FIELD_NUMBER;
          hash = (53 * hash) + getUnconfiguredLabel().hashCode();
          break;
        case 21:
          hash = (37 * hash) + CONFIGURED_LABEL_FIELD_NUMBER;
          hash = (53 * hash) + getConfiguredLabel().hashCode();
          break;
        case 8:
          hash = (37 * hash) + TEST_RESULT_FIELD_NUMBER;
          hash = (53 * hash) + getTestResult().hashCode();
          break;
        case 7:
          hash = (37 * hash) + TEST_SUMMARY_FIELD_NUMBER;
          hash = (53 * hash) + getTestSummary().hashCode();
          break;
        case 9:
          hash = (37 * hash) + BUILD_FINISHED_FIELD_NUMBER;
          hash = (53 * hash) + getBuildFinished().hashCode();
          break;
        case 20:
          hash = (37 * hash) + BUILD_TOOL_LOGS_FIELD_NUMBER;
          hash = (53 * hash) + getBuildToolLogs().hashCode();
          break;
        case 22:
          hash = (37 * hash) + BUILD_METRICS_FIELD_NUMBER;
          hash = (53 * hash) + getBuildMetrics().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(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId parseFrom(
        java.nio.ByteBuffer 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(
        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);
    }

    @java.lang.Override
    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);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <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;
      }

      @java.lang.Override
      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) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        idCase_ = 0;
        id_ = null;
        return this;
      }

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

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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_ == 11) {
          if (unstructuredCommandLineBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = unstructuredCommandLineBuilder_.build();
          }
        }
        if (idCase_ == 18) {
          if (structuredCommandLineBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = structuredCommandLineBuilder_.build();
          }
        }
        if (idCase_ == 14) {
          if (workspaceStatusBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = workspaceStatusBuilder_.build();
          }
        }
        if (idCase_ == 12) {
          if (optionsParsedBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = optionsParsedBuilder_.build();
          }
        }
        if (idCase_ == 17) {
          if (fetchBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = fetchBuilder_.build();
          }
        }
        if (idCase_ == 15) {
          if (configurationBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = configurationBuilder_.build();
          }
        }
        if (idCase_ == 16) {
          if (targetConfiguredBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = targetConfiguredBuilder_.build();
          }
        }
        if (idCase_ == 4) {
          if (patternBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = patternBuilder_.build();
          }
        }
        if (idCase_ == 10) {
          if (patternSkippedBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = patternSkippedBuilder_.build();
          }
        }
        if (idCase_ == 13) {
          if (namedSetBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = namedSetBuilder_.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_ == 19) {
          if (unconfiguredLabelBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = unconfiguredLabelBuilder_.build();
          }
        }
        if (idCase_ == 21) {
          if (configuredLabelBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = configuredLabelBuilder_.build();
          }
        }
        if (idCase_ == 8) {
          if (testResultBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = testResultBuilder_.build();
          }
        }
        if (idCase_ == 7) {
          if (testSummaryBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = testSummaryBuilder_.build();
          }
        }
        if (idCase_ == 9) {
          if (buildFinishedBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = buildFinishedBuilder_.build();
          }
        }
        if (idCase_ == 20) {
          if (buildToolLogsBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = buildToolLogsBuilder_.build();
          }
        }
        if (idCase_ == 22) {
          if (buildMetricsBuilder_ == null) {
            result.id_ = id_;
          } else {
            result.id_ = buildMetricsBuilder_.build();
          }
        }
        result.idCase_ = idCase_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof 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 UNSTRUCTURED_COMMAND_LINE: {
            mergeUnstructuredCommandLine(other.getUnstructuredCommandLine());
            break;
          }
          case STRUCTURED_COMMAND_LINE: {
            mergeStructuredCommandLine(other.getStructuredCommandLine());
            break;
          }
          case WORKSPACE_STATUS: {
            mergeWorkspaceStatus(other.getWorkspaceStatus());
            break;
          }
          case OPTIONS_PARSED: {
            mergeOptionsParsed(other.getOptionsParsed());
            break;
          }
          case FETCH: {
            mergeFetch(other.getFetch());
            break;
          }
          case CONFIGURATION: {
            mergeConfiguration(other.getConfiguration());
            break;
          }
          case TARGET_CONFIGURED: {
            mergeTargetConfigured(other.getTargetConfigured());
            break;
          }
          case PATTERN: {
            mergePattern(other.getPattern());
            break;
          }
          case PATTERN_SKIPPED: {
            mergePatternSkipped(other.getPatternSkipped());
            break;
          }
          case NAMED_SET: {
            mergeNamedSet(other.getNamedSet());
            break;
          }
          case TARGET_COMPLETED: {
            mergeTargetCompleted(other.getTargetCompleted());
            break;
          }
          case ACTION_COMPLETED: {
            mergeActionCompleted(other.getActionCompleted());
            break;
          }
          case UNCONFIGURED_LABEL: {
            mergeUnconfiguredLabel(other.getUnconfiguredLabel());
            break;
          }
          case CONFIGURED_LABEL: {
            mergeConfiguredLabel(other.getConfiguredLabel());
            break;
          }
          case TEST_RESULT: {
            mergeTestResult(other.getTestResult());
            break;
          }
          case TEST_SUMMARY: {
            mergeTestSummary(other.getTestSummary());
            break;
          }
          case BUILD_FINISHED: {
            mergeBuildFinished(other.getBuildFinished());
            break;
          }
          case BUILD_TOOL_LOGS: {
            mergeBuildToolLogs(other.getBuildToolLogs());
            break;
          }
          case BUILD_METRICS: {
            mergeBuildMetrics(other.getBuildMetrics());
            break;
          }
          case ID_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        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>.build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
       */
      public boolean hasUnknown() {
        return idCase_ == 1;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.BuildEventId.UnknownBuildEventId unknown = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnknownBuildEventId.Builder getUnknownBuilder() {
        return getUnknownFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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>.build_event_stream.BuildEventId.ProgressId progress = 2;</code>
       */
      public boolean hasProgress() {
        return idCase_ == 2;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.BuildEventId.ProgressId progress = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ProgressId.Builder getProgressBuilder() {
        return getProgressFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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>.build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
       */
      public boolean hasStarted() {
        return idCase_ == 3;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.BuildEventId.BuildStartedId started = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildStartedId.Builder getStartedBuilder() {
        return getStartedFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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.UnstructuredCommandLineId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineIdOrBuilder> unstructuredCommandLineBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
       */
      public boolean hasUnstructuredCommandLine() {
        return idCase_ == 11;
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId getUnstructuredCommandLine() {
        if (unstructuredCommandLineBuilder_ == null) {
          if (idCase_ == 11) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.getDefaultInstance();
        } else {
          if (idCase_ == 11) {
            return unstructuredCommandLineBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
       */
      public Builder setUnstructuredCommandLine(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId value) {
        if (unstructuredCommandLineBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          unstructuredCommandLineBuilder_.setMessage(value);
        }
        idCase_ = 11;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
       */
      public Builder setUnstructuredCommandLine(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.Builder builderForValue) {
        if (unstructuredCommandLineBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          unstructuredCommandLineBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 11;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
       */
      public Builder mergeUnstructuredCommandLine(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId value) {
        if (unstructuredCommandLineBuilder_ == null) {
          if (idCase_ == 11 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 11) {
            unstructuredCommandLineBuilder_.mergeFrom(value);
          }
          unstructuredCommandLineBuilder_.setMessage(value);
        }
        idCase_ = 11;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
       */
      public Builder clearUnstructuredCommandLine() {
        if (unstructuredCommandLineBuilder_ == null) {
          if (idCase_ == 11) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 11) {
            idCase_ = 0;
            id_ = null;
          }
          unstructuredCommandLineBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.Builder getUnstructuredCommandLineBuilder() {
        return getUnstructuredCommandLineFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineIdOrBuilder getUnstructuredCommandLineOrBuilder() {
        if ((idCase_ == 11) && (unstructuredCommandLineBuilder_ != null)) {
          return unstructuredCommandLineBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 11) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnstructuredCommandLineId unstructured_command_line = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineIdOrBuilder> 
          getUnstructuredCommandLineFieldBuilder() {
        if (unstructuredCommandLineBuilder_ == null) {
          if (!(idCase_ == 11)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.getDefaultInstance();
          }
          unstructuredCommandLineBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnstructuredCommandLineId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 11;
        onChanged();;
        return unstructuredCommandLineBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineIdOrBuilder> structuredCommandLineBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
       */
      public boolean hasStructuredCommandLine() {
        return idCase_ == 18;
      }
      /**
       * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId getStructuredCommandLine() {
        if (structuredCommandLineBuilder_ == null) {
          if (idCase_ == 18) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.getDefaultInstance();
        } else {
          if (idCase_ == 18) {
            return structuredCommandLineBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
       */
      public Builder setStructuredCommandLine(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId value) {
        if (structuredCommandLineBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          structuredCommandLineBuilder_.setMessage(value);
        }
        idCase_ = 18;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
       */
      public Builder setStructuredCommandLine(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.Builder builderForValue) {
        if (structuredCommandLineBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          structuredCommandLineBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 18;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
       */
      public Builder mergeStructuredCommandLine(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId value) {
        if (structuredCommandLineBuilder_ == null) {
          if (idCase_ == 18 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 18) {
            structuredCommandLineBuilder_.mergeFrom(value);
          }
          structuredCommandLineBuilder_.setMessage(value);
        }
        idCase_ = 18;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
       */
      public Builder clearStructuredCommandLine() {
        if (structuredCommandLineBuilder_ == null) {
          if (idCase_ == 18) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 18) {
            idCase_ = 0;
            id_ = null;
          }
          structuredCommandLineBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.Builder getStructuredCommandLineBuilder() {
        return getStructuredCommandLineFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineIdOrBuilder getStructuredCommandLineOrBuilder() {
        if ((idCase_ == 18) && (structuredCommandLineBuilder_ != null)) {
          return structuredCommandLineBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 18) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.StructuredCommandLineId structured_command_line = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineIdOrBuilder> 
          getStructuredCommandLineFieldBuilder() {
        if (structuredCommandLineBuilder_ == null) {
          if (!(idCase_ == 18)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.getDefaultInstance();
          }
          structuredCommandLineBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.StructuredCommandLineId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 18;
        onChanged();;
        return structuredCommandLineBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusIdOrBuilder> workspaceStatusBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
       */
      public boolean hasWorkspaceStatus() {
        return idCase_ == 14;
      }
      /**
       * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId getWorkspaceStatus() {
        if (workspaceStatusBuilder_ == null) {
          if (idCase_ == 14) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.getDefaultInstance();
        } else {
          if (idCase_ == 14) {
            return workspaceStatusBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
       */
      public Builder setWorkspaceStatus(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId value) {
        if (workspaceStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          workspaceStatusBuilder_.setMessage(value);
        }
        idCase_ = 14;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
       */
      public Builder setWorkspaceStatus(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.Builder builderForValue) {
        if (workspaceStatusBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          workspaceStatusBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 14;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
       */
      public Builder mergeWorkspaceStatus(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId value) {
        if (workspaceStatusBuilder_ == null) {
          if (idCase_ == 14 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 14) {
            workspaceStatusBuilder_.mergeFrom(value);
          }
          workspaceStatusBuilder_.setMessage(value);
        }
        idCase_ = 14;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
       */
      public Builder clearWorkspaceStatus() {
        if (workspaceStatusBuilder_ == null) {
          if (idCase_ == 14) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 14) {
            idCase_ = 0;
            id_ = null;
          }
          workspaceStatusBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.Builder getWorkspaceStatusBuilder() {
        return getWorkspaceStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusIdOrBuilder getWorkspaceStatusOrBuilder() {
        if ((idCase_ == 14) && (workspaceStatusBuilder_ != null)) {
          return workspaceStatusBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 14) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.WorkspaceStatusId workspace_status = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusIdOrBuilder> 
          getWorkspaceStatusFieldBuilder() {
        if (workspaceStatusBuilder_ == null) {
          if (!(idCase_ == 14)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.getDefaultInstance();
          }
          workspaceStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.WorkspaceStatusId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 14;
        onChanged();;
        return workspaceStatusBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedIdOrBuilder> optionsParsedBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
       */
      public boolean hasOptionsParsed() {
        return idCase_ == 12;
      }
      /**
       * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId getOptionsParsed() {
        if (optionsParsedBuilder_ == null) {
          if (idCase_ == 12) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.getDefaultInstance();
        } else {
          if (idCase_ == 12) {
            return optionsParsedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
       */
      public Builder setOptionsParsed(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId value) {
        if (optionsParsedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          optionsParsedBuilder_.setMessage(value);
        }
        idCase_ = 12;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
       */
      public Builder setOptionsParsed(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.Builder builderForValue) {
        if (optionsParsedBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          optionsParsedBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 12;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
       */
      public Builder mergeOptionsParsed(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId value) {
        if (optionsParsedBuilder_ == null) {
          if (idCase_ == 12 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 12) {
            optionsParsedBuilder_.mergeFrom(value);
          }
          optionsParsedBuilder_.setMessage(value);
        }
        idCase_ = 12;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
       */
      public Builder clearOptionsParsed() {
        if (optionsParsedBuilder_ == null) {
          if (idCase_ == 12) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 12) {
            idCase_ = 0;
            id_ = null;
          }
          optionsParsedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.Builder getOptionsParsedBuilder() {
        return getOptionsParsedFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedIdOrBuilder getOptionsParsedOrBuilder() {
        if ((idCase_ == 12) && (optionsParsedBuilder_ != null)) {
          return optionsParsedBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 12) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.OptionsParsedId options_parsed = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedIdOrBuilder> 
          getOptionsParsedFieldBuilder() {
        if (optionsParsedBuilder_ == null) {
          if (!(idCase_ == 12)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.getDefaultInstance();
          }
          optionsParsedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.OptionsParsedId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 12;
        onChanged();;
        return optionsParsedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchIdOrBuilder> fetchBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
       */
      public boolean hasFetch() {
        return idCase_ == 17;
      }
      /**
       * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId getFetch() {
        if (fetchBuilder_ == null) {
          if (idCase_ == 17) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.getDefaultInstance();
        } else {
          if (idCase_ == 17) {
            return fetchBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
       */
      public Builder setFetch(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId value) {
        if (fetchBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          fetchBuilder_.setMessage(value);
        }
        idCase_ = 17;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
       */
      public Builder setFetch(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.Builder builderForValue) {
        if (fetchBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          fetchBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 17;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
       */
      public Builder mergeFetch(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId value) {
        if (fetchBuilder_ == null) {
          if (idCase_ == 17 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 17) {
            fetchBuilder_.mergeFrom(value);
          }
          fetchBuilder_.setMessage(value);
        }
        idCase_ = 17;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
       */
      public Builder clearFetch() {
        if (fetchBuilder_ == null) {
          if (idCase_ == 17) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 17) {
            idCase_ = 0;
            id_ = null;
          }
          fetchBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.Builder getFetchBuilder() {
        return getFetchFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchIdOrBuilder getFetchOrBuilder() {
        if ((idCase_ == 17) && (fetchBuilder_ != null)) {
          return fetchBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 17) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.FetchId fetch = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchIdOrBuilder> 
          getFetchFieldBuilder() {
        if (fetchBuilder_ == null) {
          if (!(idCase_ == 17)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.getDefaultInstance();
          }
          fetchBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.FetchId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 17;
        onChanged();;
        return fetchBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> configurationBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
       */
      public boolean hasConfiguration() {
        return idCase_ == 15;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
        if (configurationBuilder_ == null) {
          if (idCase_ == 15) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance();
        } else {
          if (idCase_ == 15) {
            return configurationBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
       */
      public Builder setConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
        if (configurationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          configurationBuilder_.setMessage(value);
        }
        idCase_ = 15;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
       */
      public Builder setConfiguration(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder builderForValue) {
        if (configurationBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          configurationBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 15;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
       */
      public Builder mergeConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
        if (configurationBuilder_ == null) {
          if (idCase_ == 15 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 15) {
            configurationBuilder_.mergeFrom(value);
          }
          configurationBuilder_.setMessage(value);
        }
        idCase_ = 15;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
       */
      public Builder clearConfiguration() {
        if (configurationBuilder_ == null) {
          if (idCase_ == 15) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 15) {
            idCase_ = 0;
            id_ = null;
          }
          configurationBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder getConfigurationBuilder() {
        return getConfigurationFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
        if ((idCase_ == 15) && (configurationBuilder_ != null)) {
          return configurationBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 15) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> 
          getConfigurationFieldBuilder() {
        if (configurationBuilder_ == null) {
          if (!(idCase_ == 15)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance();
          }
          configurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 15;
        onChanged();;
        return configurationBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredIdOrBuilder> targetConfiguredBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
       */
      public boolean hasTargetConfigured() {
        return idCase_ == 16;
      }
      /**
       * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId getTargetConfigured() {
        if (targetConfiguredBuilder_ == null) {
          if (idCase_ == 16) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.getDefaultInstance();
        } else {
          if (idCase_ == 16) {
            return targetConfiguredBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
       */
      public Builder setTargetConfigured(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId value) {
        if (targetConfiguredBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          targetConfiguredBuilder_.setMessage(value);
        }
        idCase_ = 16;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
       */
      public Builder setTargetConfigured(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.Builder builderForValue) {
        if (targetConfiguredBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          targetConfiguredBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 16;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
       */
      public Builder mergeTargetConfigured(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId value) {
        if (targetConfiguredBuilder_ == null) {
          if (idCase_ == 16 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 16) {
            targetConfiguredBuilder_.mergeFrom(value);
          }
          targetConfiguredBuilder_.setMessage(value);
        }
        idCase_ = 16;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
       */
      public Builder clearTargetConfigured() {
        if (targetConfiguredBuilder_ == null) {
          if (idCase_ == 16) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 16) {
            idCase_ = 0;
            id_ = null;
          }
          targetConfiguredBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.Builder getTargetConfiguredBuilder() {
        return getTargetConfiguredFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredIdOrBuilder getTargetConfiguredOrBuilder() {
        if ((idCase_ == 16) && (targetConfiguredBuilder_ != null)) {
          return targetConfiguredBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 16) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.TargetConfiguredId target_configured = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredIdOrBuilder> 
          getTargetConfiguredFieldBuilder() {
        if (targetConfiguredBuilder_ == null) {
          if (!(idCase_ == 16)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.getDefaultInstance();
          }
          targetConfiguredBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TargetConfiguredId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 16;
        onChanged();;
        return targetConfiguredBuilder_;
      }

      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>.build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
       */
      public boolean hasPattern() {
        return idCase_ == 4;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.BuildEventId.PatternExpandedId pattern = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder getPatternBuilder() {
        return getPatternFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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.PatternExpandedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder> patternSkippedBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
       */
      public boolean hasPatternSkipped() {
        return idCase_ == 10;
      }
      /**
       * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId getPatternSkipped() {
        if (patternSkippedBuilder_ == null) {
          if (idCase_ == 10) {
            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_ == 10) {
            return patternSkippedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
       */
      public Builder setPatternSkipped(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId value) {
        if (patternSkippedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          patternSkippedBuilder_.setMessage(value);
        }
        idCase_ = 10;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
       */
      public Builder setPatternSkipped(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder builderForValue) {
        if (patternSkippedBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          patternSkippedBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 10;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
       */
      public Builder mergePatternSkipped(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId value) {
        if (patternSkippedBuilder_ == null) {
          if (idCase_ == 10 &&
              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_ == 10) {
            patternSkippedBuilder_.mergeFrom(value);
          }
          patternSkippedBuilder_.setMessage(value);
        }
        idCase_ = 10;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
       */
      public Builder clearPatternSkipped() {
        if (patternSkippedBuilder_ == null) {
          if (idCase_ == 10) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 10) {
            idCase_ = 0;
            id_ = null;
          }
          patternSkippedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.Builder getPatternSkippedBuilder() {
        return getPatternSkippedFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedIdOrBuilder getPatternSkippedOrBuilder() {
        if ((idCase_ == 10) && (patternSkippedBuilder_ != null)) {
          return patternSkippedBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 10) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.PatternExpandedId pattern_skipped = 10;</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> 
          getPatternSkippedFieldBuilder() {
        if (patternSkippedBuilder_ == null) {
          if (!(idCase_ == 10)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.PatternExpandedId.getDefaultInstance();
          }
          patternSkippedBuilder_ = 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_ = 10;
        onChanged();;
        return patternSkippedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> namedSetBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
       */
      public boolean hasNamedSet() {
        return idCase_ == 13;
      }
      /**
       * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getNamedSet() {
        if (namedSetBuilder_ == null) {
          if (idCase_ == 13) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance();
        } else {
          if (idCase_ == 13) {
            return namedSetBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
       */
      public Builder setNamedSet(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId value) {
        if (namedSetBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          namedSetBuilder_.setMessage(value);
        }
        idCase_ = 13;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
       */
      public Builder setNamedSet(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder builderForValue) {
        if (namedSetBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          namedSetBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 13;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
       */
      public Builder mergeNamedSet(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId value) {
        if (namedSetBuilder_ == null) {
          if (idCase_ == 13 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 13) {
            namedSetBuilder_.mergeFrom(value);
          }
          namedSetBuilder_.setMessage(value);
        }
        idCase_ = 13;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
       */
      public Builder clearNamedSet() {
        if (namedSetBuilder_ == null) {
          if (idCase_ == 13) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 13) {
            idCase_ = 0;
            id_ = null;
          }
          namedSetBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder getNamedSetBuilder() {
        return getNamedSetFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder getNamedSetOrBuilder() {
        if ((idCase_ == 13) && (namedSetBuilder_ != null)) {
          return namedSetBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 13) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.NamedSetOfFilesId named_set = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> 
          getNamedSetFieldBuilder() {
        if (namedSetBuilder_ == null) {
          if (!(idCase_ == 13)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance();
          }
          namedSetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 13;
        onChanged();;
        return namedSetBuilder_;
      }

      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>.build_event_stream.BuildEventId.TargetCompletedId target_completed = 5;</code>
       */
      public boolean hasTargetCompleted() {
        return idCase_ == 5;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.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>.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>.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>.build_event_stream.BuildEventId.ActionCompletedId action_completed = 6;</code>
       */
      public boolean hasActionCompleted() {
        return idCase_ == 6;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.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>.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>.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.UnconfiguredLabelId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelIdOrBuilder> unconfiguredLabelBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
       */
      public boolean hasUnconfiguredLabel() {
        return idCase_ == 19;
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId getUnconfiguredLabel() {
        if (unconfiguredLabelBuilder_ == null) {
          if (idCase_ == 19) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.getDefaultInstance();
        } else {
          if (idCase_ == 19) {
            return unconfiguredLabelBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
       */
      public Builder setUnconfiguredLabel(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId value) {
        if (unconfiguredLabelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          unconfiguredLabelBuilder_.setMessage(value);
        }
        idCase_ = 19;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
       */
      public Builder setUnconfiguredLabel(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.Builder builderForValue) {
        if (unconfiguredLabelBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          unconfiguredLabelBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 19;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
       */
      public Builder mergeUnconfiguredLabel(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId value) {
        if (unconfiguredLabelBuilder_ == null) {
          if (idCase_ == 19 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 19) {
            unconfiguredLabelBuilder_.mergeFrom(value);
          }
          unconfiguredLabelBuilder_.setMessage(value);
        }
        idCase_ = 19;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
       */
      public Builder clearUnconfiguredLabel() {
        if (unconfiguredLabelBuilder_ == null) {
          if (idCase_ == 19) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 19) {
            idCase_ = 0;
            id_ = null;
          }
          unconfiguredLabelBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.Builder getUnconfiguredLabelBuilder() {
        return getUnconfiguredLabelFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelIdOrBuilder getUnconfiguredLabelOrBuilder() {
        if ((idCase_ == 19) && (unconfiguredLabelBuilder_ != null)) {
          return unconfiguredLabelBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 19) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.UnconfiguredLabelId unconfigured_label = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelIdOrBuilder> 
          getUnconfiguredLabelFieldBuilder() {
        if (unconfiguredLabelBuilder_ == null) {
          if (!(idCase_ == 19)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.getDefaultInstance();
          }
          unconfiguredLabelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.UnconfiguredLabelId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 19;
        onChanged();;
        return unconfiguredLabelBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelIdOrBuilder> configuredLabelBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
       */
      public boolean hasConfiguredLabel() {
        return idCase_ == 21;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId getConfiguredLabel() {
        if (configuredLabelBuilder_ == null) {
          if (idCase_ == 21) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.getDefaultInstance();
        } else {
          if (idCase_ == 21) {
            return configuredLabelBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
       */
      public Builder setConfiguredLabel(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId value) {
        if (configuredLabelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          configuredLabelBuilder_.setMessage(value);
        }
        idCase_ = 21;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
       */
      public Builder setConfiguredLabel(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.Builder builderForValue) {
        if (configuredLabelBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          configuredLabelBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 21;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
       */
      public Builder mergeConfiguredLabel(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId value) {
        if (configuredLabelBuilder_ == null) {
          if (idCase_ == 21 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 21) {
            configuredLabelBuilder_.mergeFrom(value);
          }
          configuredLabelBuilder_.setMessage(value);
        }
        idCase_ = 21;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
       */
      public Builder clearConfiguredLabel() {
        if (configuredLabelBuilder_ == null) {
          if (idCase_ == 21) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 21) {
            idCase_ = 0;
            id_ = null;
          }
          configuredLabelBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.Builder getConfiguredLabelBuilder() {
        return getConfiguredLabelFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelIdOrBuilder getConfiguredLabelOrBuilder() {
        if ((idCase_ == 21) && (configuredLabelBuilder_ != null)) {
          return configuredLabelBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 21) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.ConfiguredLabelId configured_label = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelIdOrBuilder> 
          getConfiguredLabelFieldBuilder() {
        if (configuredLabelBuilder_ == null) {
          if (!(idCase_ == 21)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.getDefaultInstance();
          }
          configuredLabelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfiguredLabelId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 21;
        onChanged();;
        return configuredLabelBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultIdOrBuilder> testResultBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
       */
      public boolean hasTestResult() {
        return idCase_ == 8;
      }
      /**
       * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId getTestResult() {
        if (testResultBuilder_ == null) {
          if (idCase_ == 8) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.getDefaultInstance();
        } else {
          if (idCase_ == 8) {
            return testResultBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
       */
      public Builder setTestResult(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId value) {
        if (testResultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          testResultBuilder_.setMessage(value);
        }
        idCase_ = 8;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
       */
      public Builder setTestResult(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.Builder builderForValue) {
        if (testResultBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          testResultBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 8;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
       */
      public Builder mergeTestResult(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId value) {
        if (testResultBuilder_ == null) {
          if (idCase_ == 8 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 8) {
            testResultBuilder_.mergeFrom(value);
          }
          testResultBuilder_.setMessage(value);
        }
        idCase_ = 8;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
       */
      public Builder clearTestResult() {
        if (testResultBuilder_ == null) {
          if (idCase_ == 8) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 8) {
            idCase_ = 0;
            id_ = null;
          }
          testResultBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.Builder getTestResultBuilder() {
        return getTestResultFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultIdOrBuilder getTestResultOrBuilder() {
        if ((idCase_ == 8) && (testResultBuilder_ != null)) {
          return testResultBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 8) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.TestResultId test_result = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultIdOrBuilder> 
          getTestResultFieldBuilder() {
        if (testResultBuilder_ == null) {
          if (!(idCase_ == 8)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.getDefaultInstance();
          }
          testResultBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.TestResultId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 8;
        onChanged();;
        return testResultBuilder_;
      }

      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>.build_event_stream.BuildEventId.TestSummaryId test_summary = 7;</code>
       */
      public boolean hasTestSummary() {
        return idCase_ == 7;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.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>.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>.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_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedIdOrBuilder> buildFinishedBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
       */
      public boolean hasBuildFinished() {
        return idCase_ == 9;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId getBuildFinished() {
        if (buildFinishedBuilder_ == null) {
          if (idCase_ == 9) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.getDefaultInstance();
        } else {
          if (idCase_ == 9) {
            return buildFinishedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
       */
      public Builder setBuildFinished(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId value) {
        if (buildFinishedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          buildFinishedBuilder_.setMessage(value);
        }
        idCase_ = 9;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
       */
      public Builder setBuildFinished(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.Builder builderForValue) {
        if (buildFinishedBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          buildFinishedBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 9;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
       */
      public Builder mergeBuildFinished(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId value) {
        if (buildFinishedBuilder_ == null) {
          if (idCase_ == 9 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 9) {
            buildFinishedBuilder_.mergeFrom(value);
          }
          buildFinishedBuilder_.setMessage(value);
        }
        idCase_ = 9;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
       */
      public Builder clearBuildFinished() {
        if (buildFinishedBuilder_ == null) {
          if (idCase_ == 9) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 9) {
            idCase_ = 0;
            id_ = null;
          }
          buildFinishedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.Builder getBuildFinishedBuilder() {
        return getBuildFinishedFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedIdOrBuilder getBuildFinishedOrBuilder() {
        if ((idCase_ == 9) && (buildFinishedBuilder_ != null)) {
          return buildFinishedBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 9) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildFinishedId build_finished = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedIdOrBuilder> 
          getBuildFinishedFieldBuilder() {
        if (buildFinishedBuilder_ == null) {
          if (!(idCase_ == 9)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.getDefaultInstance();
          }
          buildFinishedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildFinishedId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 9;
        onChanged();;
        return buildFinishedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsIdOrBuilder> buildToolLogsBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
       */
      public boolean hasBuildToolLogs() {
        return idCase_ == 20;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId getBuildToolLogs() {
        if (buildToolLogsBuilder_ == null) {
          if (idCase_ == 20) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.getDefaultInstance();
        } else {
          if (idCase_ == 20) {
            return buildToolLogsBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
       */
      public Builder setBuildToolLogs(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId value) {
        if (buildToolLogsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          buildToolLogsBuilder_.setMessage(value);
        }
        idCase_ = 20;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
       */
      public Builder setBuildToolLogs(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.Builder builderForValue) {
        if (buildToolLogsBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          buildToolLogsBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 20;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
       */
      public Builder mergeBuildToolLogs(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId value) {
        if (buildToolLogsBuilder_ == null) {
          if (idCase_ == 20 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 20) {
            buildToolLogsBuilder_.mergeFrom(value);
          }
          buildToolLogsBuilder_.setMessage(value);
        }
        idCase_ = 20;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
       */
      public Builder clearBuildToolLogs() {
        if (buildToolLogsBuilder_ == null) {
          if (idCase_ == 20) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 20) {
            idCase_ = 0;
            id_ = null;
          }
          buildToolLogsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.Builder getBuildToolLogsBuilder() {
        return getBuildToolLogsFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsIdOrBuilder getBuildToolLogsOrBuilder() {
        if ((idCase_ == 20) && (buildToolLogsBuilder_ != null)) {
          return buildToolLogsBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 20) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildToolLogsId build_tool_logs = 20;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsIdOrBuilder> 
          getBuildToolLogsFieldBuilder() {
        if (buildToolLogsBuilder_ == null) {
          if (!(idCase_ == 20)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.getDefaultInstance();
          }
          buildToolLogsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildToolLogsId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 20;
        onChanged();;
        return buildToolLogsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsIdOrBuilder> buildMetricsBuilder_;
      /**
       * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
       */
      public boolean hasBuildMetrics() {
        return idCase_ == 22;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId getBuildMetrics() {
        if (buildMetricsBuilder_ == null) {
          if (idCase_ == 22) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.getDefaultInstance();
        } else {
          if (idCase_ == 22) {
            return buildMetricsBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
       */
      public Builder setBuildMetrics(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId value) {
        if (buildMetricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          id_ = value;
          onChanged();
        } else {
          buildMetricsBuilder_.setMessage(value);
        }
        idCase_ = 22;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
       */
      public Builder setBuildMetrics(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.Builder builderForValue) {
        if (buildMetricsBuilder_ == null) {
          id_ = builderForValue.build();
          onChanged();
        } else {
          buildMetricsBuilder_.setMessage(builderForValue.build());
        }
        idCase_ = 22;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
       */
      public Builder mergeBuildMetrics(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId value) {
        if (buildMetricsBuilder_ == null) {
          if (idCase_ == 22 &&
              id_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.getDefaultInstance()) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId) id_)
                .mergeFrom(value).buildPartial();
          } else {
            id_ = value;
          }
          onChanged();
        } else {
          if (idCase_ == 22) {
            buildMetricsBuilder_.mergeFrom(value);
          }
          buildMetricsBuilder_.setMessage(value);
        }
        idCase_ = 22;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
       */
      public Builder clearBuildMetrics() {
        if (buildMetricsBuilder_ == null) {
          if (idCase_ == 22) {
            idCase_ = 0;
            id_ = null;
            onChanged();
          }
        } else {
          if (idCase_ == 22) {
            idCase_ = 0;
            id_ = null;
          }
          buildMetricsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.Builder getBuildMetricsBuilder() {
        return getBuildMetricsFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsIdOrBuilder getBuildMetricsOrBuilder() {
        if ((idCase_ == 22) && (buildMetricsBuilder_ != null)) {
          return buildMetricsBuilder_.getMessageOrBuilder();
        } else {
          if (idCase_ == 22) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId) id_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildEventId.BuildMetricsId build_metrics = 22;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsIdOrBuilder> 
          getBuildMetricsFieldBuilder() {
        if (buildMetricsBuilder_ == null) {
          if (!(idCase_ == 22)) {
            id_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.getDefaultInstance();
          }
          buildMetricsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsIdOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.BuildMetricsId) id_,
                  getParentForChildren(),
                  isClean());
          id_ = null;
        }
        idCase_ = 22;
        onChanged();;
        return buildMetricsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope: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>() {
      @java.lang.Override
      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;
    }

    @java.lang.Override
    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>
     * The next chunk of stdout that bazel produced since the last progress event
     * or the beginning of the build.
     * </pre>
     *
     * <code>string stdout = 1;</code>
     */
    java.lang.String getStdout();
    /**
     * <pre>
     * The next chunk of stdout that bazel produced since the last progress event
     * or the beginning of the build.
     * </pre>
     *
     * <code>string stdout = 1;</code>
     */
    com.google.protobuf.ByteString
        getStdoutBytes();

    /**
     * <pre>
     * The next chunk of stderr that bazel produced since the last progress event
     * or the beginning of the build.
     * </pre>
     *
     * <code>string stderr = 2;</code>
     */
    java.lang.String getStderr();
    /**
     * <pre>
     * The next chunk of stderr that bazel produced since the last progress event
     * or the beginning of the build.
     * </pre>
     *
     * <code>string stderr = 2;</code>
     */
    com.google.protobuf.ByteString
        getStderrBytes();
  }
  /**
   * <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 {
  private static final long serialVersionUID = 0L;
    // Use Progress.newBuilder() to construct.
    private Progress(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Progress() {
      stdout_ = "";
      stderr_ = "";
    }

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

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

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

    @java.lang.Override
    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);
    }

    public static final int STDOUT_FIELD_NUMBER = 1;
    private volatile java.lang.Object stdout_;
    /**
     * <pre>
     * The next chunk of stdout that bazel produced since the last progress event
     * or the beginning of the build.
     * </pre>
     *
     * <code>string stdout = 1;</code>
     */
    public java.lang.String getStdout() {
      java.lang.Object ref = stdout_;
      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();
        stdout_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The next chunk of stdout that bazel produced since the last progress event
     * or the beginning of the build.
     * </pre>
     *
     * <code>string stdout = 1;</code>
     */
    public com.google.protobuf.ByteString
        getStdoutBytes() {
      java.lang.Object ref = stdout_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        stdout_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STDERR_FIELD_NUMBER = 2;
    private volatile java.lang.Object stderr_;
    /**
     * <pre>
     * The next chunk of stderr that bazel produced since the last progress event
     * or the beginning of the build.
     * </pre>
     *
     * <code>string stderr = 2;</code>
     */
    public java.lang.String getStderr() {
      java.lang.Object ref = stderr_;
      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();
        stderr_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The next chunk of stderr that bazel produced since the last progress event
     * or the beginning of the build.
     * </pre>
     *
     * <code>string stderr = 2;</code>
     */
    public com.google.protobuf.ByteString
        getStderrBytes() {
      java.lang.Object ref = stderr_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        stderr_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getStdoutBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, stdout_);
      }
      if (!getStderrBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, stderr_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!getStdoutBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, stdout_);
      }
      if (!getStderrBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, stderr_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof 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;
      result = result && getStdout()
          .equals(other.getStdout());
      result = result && getStderr()
          .equals(other.getStderr());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + STDOUT_FIELD_NUMBER;
      hash = (53 * hash) + getStdout().hashCode();
      hash = (37 * hash) + STDERR_FIELD_NUMBER;
      hash = (53 * hash) + getStderr().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress parseFrom(
        java.nio.ByteBuffer 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(
        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);
    }

    @java.lang.Override
    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);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <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;
      }

      @java.lang.Override
      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) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        stdout_ = "";

        stderr_ = "";

        return this;
      }

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

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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);
        result.stdout_ = stdout_;
        result.stderr_ = stderr_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof 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;
        if (!other.getStdout().isEmpty()) {
          stdout_ = other.stdout_;
          onChanged();
        }
        if (!other.getStderr().isEmpty()) {
          stderr_ = other.stderr_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        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;
      }

      private java.lang.Object stdout_ = "";
      /**
       * <pre>
       * The next chunk of stdout that bazel produced since the last progress event
       * or the beginning of the build.
       * </pre>
       *
       * <code>string stdout = 1;</code>
       */
      public java.lang.String getStdout() {
        java.lang.Object ref = stdout_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          stdout_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The next chunk of stdout that bazel produced since the last progress event
       * or the beginning of the build.
       * </pre>
       *
       * <code>string stdout = 1;</code>
       */
      public com.google.protobuf.ByteString
          getStdoutBytes() {
        java.lang.Object ref = stdout_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          stdout_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The next chunk of stdout that bazel produced since the last progress event
       * or the beginning of the build.
       * </pre>
       *
       * <code>string stdout = 1;</code>
       */
      public Builder setStdout(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        stdout_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The next chunk of stdout that bazel produced since the last progress event
       * or the beginning of the build.
       * </pre>
       *
       * <code>string stdout = 1;</code>
       */
      public Builder clearStdout() {
        
        stdout_ = getDefaultInstance().getStdout();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The next chunk of stdout that bazel produced since the last progress event
       * or the beginning of the build.
       * </pre>
       *
       * <code>string stdout = 1;</code>
       */
      public Builder setStdoutBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        stdout_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object stderr_ = "";
      /**
       * <pre>
       * The next chunk of stderr that bazel produced since the last progress event
       * or the beginning of the build.
       * </pre>
       *
       * <code>string stderr = 2;</code>
       */
      public java.lang.String getStderr() {
        java.lang.Object ref = stderr_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          stderr_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The next chunk of stderr that bazel produced since the last progress event
       * or the beginning of the build.
       * </pre>
       *
       * <code>string stderr = 2;</code>
       */
      public com.google.protobuf.ByteString
          getStderrBytes() {
        java.lang.Object ref = stderr_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          stderr_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The next chunk of stderr that bazel produced since the last progress event
       * or the beginning of the build.
       * </pre>
       *
       * <code>string stderr = 2;</code>
       */
      public Builder setStderr(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        stderr_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The next chunk of stderr that bazel produced since the last progress event
       * or the beginning of the build.
       * </pre>
       *
       * <code>string stderr = 2;</code>
       */
      public Builder clearStderr() {
        
        stderr_ = getDefaultInstance().getStderr();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The next chunk of stderr that bazel produced since the last progress event
       * or the beginning of the build.
       * </pre>
       *
       * <code>string stderr = 2;</code>
       */
      public Builder setStderrBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        stderr_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope: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>() {
      @java.lang.Override
      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;
    }

    @java.lang.Override
    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>.build_event_stream.Aborted.AbortReason reason = 1;</code>
     */
    int getReasonValue();
    /**
     * <code>.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>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>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 {
  private static final long serialVersionUID = 0L;
    // 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 this.unknownFields;
    }
    private Aborted(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              int rawValue = input.readEnum();

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

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

    @java.lang.Override
    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 user requested that no analysis be performed.
       * </pre>
       *
       * <code>NO_ANALYZE = 8;</code>
       */
      NO_ANALYZE(8),
      /**
       * <pre>
       * The user requested that no build be carried out.
       * </pre>
       *
       * <code>NO_BUILD = 9;</code>
       */
      NO_BUILD(9),
      /**
       * <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),
      /**
       * <pre>
       * A Failure occurred in the loading phase of a target.
       * </pre>
       *
       * <code>LOADING_FAILURE = 5;</code>
       */
      LOADING_FAILURE(5),
      /**
       * <pre>
       * A Failure occurred in the analysis phase of a target.
       * </pre>
       *
       * <code>ANALYSIS_FAILURE = 6;</code>
       */
      ANALYSIS_FAILURE(6),
      /**
       * <pre>
       * Target build was skipped (e.g. due to incompatible CPU constraints).
       * </pre>
       *
       * <code>SKIPPED = 7;</code>
       */
      SKIPPED(7),
      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 user requested that no analysis be performed.
       * </pre>
       *
       * <code>NO_ANALYZE = 8;</code>
       */
      public static final int NO_ANALYZE_VALUE = 8;
      /**
       * <pre>
       * The user requested that no build be carried out.
       * </pre>
       *
       * <code>NO_BUILD = 9;</code>
       */
      public static final int NO_BUILD_VALUE = 9;
      /**
       * <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;
      /**
       * <pre>
       * A Failure occurred in the loading phase of a target.
       * </pre>
       *
       * <code>LOADING_FAILURE = 5;</code>
       */
      public static final int LOADING_FAILURE_VALUE = 5;
      /**
       * <pre>
       * A Failure occurred in the analysis phase of a target.
       * </pre>
       *
       * <code>ANALYSIS_FAILURE = 6;</code>
       */
      public static final int ANALYSIS_FAILURE_VALUE = 6;
      /**
       * <pre>
       * Target build was skipped (e.g. due to incompatible CPU constraints).
       * </pre>
       *
       * <code>SKIPPED = 7;</code>
       */
      public static final int SKIPPED_VALUE = 7;


      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 8: return NO_ANALYZE;
          case 9: return NO_BUILD;
          case 2: return TIME_OUT;
          case 3: return REMOTE_ENVIRONMENT_FAILURE;
          case 4: return INTERNAL;
          case 5: return LOADING_FAILURE;
          case 6: return ANALYSIS_FAILURE;
          case 7: return SKIPPED;
          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>.build_event_stream.Aborted.AbortReason reason = 1;</code>
     */
    public int getReasonValue() {
      return reason_;
    }
    /**
     * <code>.build_event_stream.Aborted.AbortReason reason = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason getReason() {
      @SuppressWarnings("deprecation")
      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>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>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;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (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_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    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_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof 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());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + 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(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted parseFrom(
        java.nio.ByteBuffer 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(
        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);
    }

    @java.lang.Override
    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);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <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;
      }

      @java.lang.Override
      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) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        reason_ = 0;

        description_ = "";

        return this;
      }

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

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof 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();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        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>.build_event_stream.Aborted.AbortReason reason = 1;</code>
       */
      public int getReasonValue() {
        return reason_;
      }
      /**
       * <code>.build_event_stream.Aborted.AbortReason reason = 1;</code>
       */
      public Builder setReasonValue(int value) {
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.build_event_stream.Aborted.AbortReason reason = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason getReason() {
        @SuppressWarnings("deprecation")
        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>.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>.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>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>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>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>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>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;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope: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>() {
      @java.lang.Override
      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;
    }

    @java.lang.Override
    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>string uuid = 1;</code>
     */
    java.lang.String getUuid();
    /**
     * <code>string uuid = 1;</code>
     */
    com.google.protobuf.ByteString
        getUuidBytes();

    /**
     * <pre>
     * Start of the build in ms since the epoch.
     * TODO(buchgr): Use google.protobuf.TimeStamp once bazel's protoc supports
     * it.
     * </pre>
     *
     * <code>int64 start_time_millis = 2;</code>
     */
    long getStartTimeMillis();

    /**
     * <pre>
     * Version of the build tool that is running.
     * </pre>
     *
     * <code>string build_tool_version = 3;</code>
     */
    java.lang.String getBuildToolVersion();
    /**
     * <pre>
     * Version of the build tool that is running.
     * </pre>
     *
     * <code>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>string options_description = 4;</code>
     */
    java.lang.String getOptionsDescription();
    /**
     * <pre>
     * A human-readable description of all the non-default option settings
     * </pre>
     *
     * <code>string options_description = 4;</code>
     */
    com.google.protobuf.ByteString
        getOptionsDescriptionBytes();

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

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

    /**
     * <pre>
     * The directory of the workspace.
     * </pre>
     *
     * <code>string workspace_directory = 7;</code>
     */
    java.lang.String getWorkspaceDirectory();
    /**
     * <pre>
     * The directory of the workspace.
     * </pre>
     *
     * <code>string workspace_directory = 7;</code>
     */
    com.google.protobuf.ByteString
        getWorkspaceDirectoryBytes();

    /**
     * <pre>
     * The process ID of the Bazel server.
     * </pre>
     *
     * <code>int64 server_pid = 8;</code>
     */
    long getServerPid();
  }
  /**
   * <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 {
  private static final long serialVersionUID = 0L;
    // Use BuildStarted.newBuilder() to construct.
    private BuildStarted(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BuildStarted() {
      uuid_ = "";
      startTimeMillis_ = 0L;
      buildToolVersion_ = "";
      optionsDescription_ = "";
      command_ = "";
      workingDirectory_ = "";
      workspaceDirectory_ = "";
      serverPid_ = 0L;
    }

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

              uuid_ = s;
              break;
            }
            case 16: {

              startTimeMillis_ = 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;
            }
            case 64: {

              serverPid_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildStarted_descriptor;
    }

    @java.lang.Override
    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>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>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_MILLIS_FIELD_NUMBER = 2;
    private long startTimeMillis_;
    /**
     * <pre>
     * Start of the build in ms since the epoch.
     * TODO(buchgr): Use google.protobuf.TimeStamp once bazel's protoc supports
     * it.
     * </pre>
     *
     * <code>int64 start_time_millis = 2;</code>
     */
    public long getStartTimeMillis() {
      return startTimeMillis_;
    }

    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>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>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>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>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>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>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>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>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>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>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;
      }
    }

    public static final int SERVER_PID_FIELD_NUMBER = 8;
    private long serverPid_;
    /**
     * <pre>
     * The process ID of the Bazel server.
     * </pre>
     *
     * <code>int64 server_pid = 8;</code>
     */
    public long getServerPid() {
      return serverPid_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getUuidBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uuid_);
      }
      if (startTimeMillis_ != 0L) {
        output.writeInt64(2, startTimeMillis_);
      }
      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_);
      }
      if (serverPid_ != 0L) {
        output.writeInt64(8, serverPid_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    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 (startTimeMillis_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, startTimeMillis_);
      }
      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_);
      }
      if (serverPid_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, serverPid_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof 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 && (getStartTimeMillis()
          == other.getStartTimeMillis());
      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());
      result = result && (getServerPid()
          == other.getServerPid());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + UUID_FIELD_NUMBER;
      hash = (53 * hash) + getUuid().hashCode();
      hash = (37 * hash) + START_TIME_MILLIS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getStartTimeMillis());
      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 = (37 * hash) + SERVER_PID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getServerPid());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted parseFrom(
        java.nio.ByteBuffer 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(
        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);
    }

    @java.lang.Override
    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);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <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;
      }

      @java.lang.Override
      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) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        uuid_ = "";

        startTimeMillis_ = 0L;

        buildToolVersion_ = "";

        optionsDescription_ = "";

        command_ = "";

        workingDirectory_ = "";

        workspaceDirectory_ = "";

        serverPid_ = 0L;

        return this;
      }

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

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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.startTimeMillis_ = startTimeMillis_;
        result.buildToolVersion_ = buildToolVersion_;
        result.optionsDescription_ = optionsDescription_;
        result.command_ = command_;
        result.workingDirectory_ = workingDirectory_;
        result.workspaceDirectory_ = workspaceDirectory_;
        result.serverPid_ = serverPid_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof 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.getStartTimeMillis() != 0L) {
          setStartTimeMillis(other.getStartTimeMillis());
        }
        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();
        }
        if (other.getServerPid() != 0L) {
          setServerPid(other.getServerPid());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        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>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>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>string uuid = 1;</code>
       */
      public Builder setUuid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        uuid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string uuid = 1;</code>
       */
      public Builder clearUuid() {
        
        uuid_ = getDefaultInstance().getUuid();
        onChanged();
        return this;
      }
      /**
       * <code>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 startTimeMillis_ ;
      /**
       * <pre>
       * Start of the build in ms since the epoch.
       * TODO(buchgr): Use google.protobuf.TimeStamp once bazel's protoc supports
       * it.
       * </pre>
       *
       * <code>int64 start_time_millis = 2;</code>
       */
      public long getStartTimeMillis() {
        return startTimeMillis_;
      }
      /**
       * <pre>
       * Start of the build in ms since the epoch.
       * TODO(buchgr): Use google.protobuf.TimeStamp once bazel's protoc supports
       * it.
       * </pre>
       *
       * <code>int64 start_time_millis = 2;</code>
       */
      public Builder setStartTimeMillis(long value) {
        
        startTimeMillis_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Start of the build in ms since the epoch.
       * TODO(buchgr): Use google.protobuf.TimeStamp once bazel's protoc supports
       * it.
       * </pre>
       *
       * <code>int64 start_time_millis = 2;</code>
       */
      public Builder clearStartTimeMillis() {
        
        startTimeMillis_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object buildToolVersion_ = "";
      /**
       * <pre>
       * Version of the build tool that is running.
       * </pre>
       *
       * <code>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>string workspace_directory = 7;</code>
       */
      public Builder clearWorkspaceDirectory() {
        
        workspaceDirectory_ = getDefaultInstance().getWorkspaceDirectory();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The directory of the workspace.
       * </pre>
       *
       * <code>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;
      }

      private long serverPid_ ;
      /**
       * <pre>
       * The process ID of the Bazel server.
       * </pre>
       *
       * <code>int64 server_pid = 8;</code>
       */
      public long getServerPid() {
        return serverPid_;
      }
      /**
       * <pre>
       * The process ID of the Bazel server.
       * </pre>
       *
       * <code>int64 server_pid = 8;</code>
       */
      public Builder setServerPid(long value) {
        
        serverPid_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The process ID of the Bazel server.
       * </pre>
       *
       * <code>int64 server_pid = 8;</code>
       */
      public Builder clearServerPid() {
        
        serverPid_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope: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>() {
      @java.lang.Override
      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;
    }

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

  }

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

    /**
     * <code>repeated string args = 1;</code>
     */
    java.util.List<java.lang.String>
        getArgsList();
    /**
     * <code>repeated string args = 1;</code>
     */
    int getArgsCount();
    /**
     * <code>repeated string args = 1;</code>
     */
    java.lang.String getArgs(int index);
    /**
     * <code>repeated string args = 1;</code>
     */
    com.google.protobuf.ByteString
        getArgsBytes(int index);
  }
  /**
   * <pre>
   * Payload of an event reporting the command-line of the invocation as
   * originally received by the server. Note that this is not the command-line
   * given by the user, as the client adds information about the invocation,
   * like name and relevant entries of rc-files and client environment variables.
   * However, it does contain enough information to reproduce the build
   * invocation.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.UnstructuredCommandLine}
   */
  public  static final class UnstructuredCommandLine extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.UnstructuredCommandLine)
      UnstructuredCommandLineOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UnstructuredCommandLine.newBuilder() to construct.
    private UnstructuredCommandLine(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private UnstructuredCommandLine() {
      args_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UnstructuredCommandLine(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                args_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              args_.add(s);
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          args_ = args_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_UnstructuredCommandLine_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_UnstructuredCommandLine_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.Builder.class);
    }

    public static final int ARGS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList args_;
    /**
     * <code>repeated string args = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getArgsList() {
      return args_;
    }
    /**
     * <code>repeated string args = 1;</code>
     */
    public int getArgsCount() {
      return args_.size();
    }
    /**
     * <code>repeated string args = 1;</code>
     */
    public java.lang.String getArgs(int index) {
      return args_.get(index);
    }
    /**
     * <code>repeated string args = 1;</code>
     */
    public com.google.protobuf.ByteString
        getArgsBytes(int index) {
      return args_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < args_.size(); i++) {
          dataSize += computeStringSizeNoTag(args_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getArgsList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getArgsCount() > 0) {
        hash = (37 * hash) + ARGS_FIELD_NUMBER;
        hash = (53 * hash) + getArgsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Payload of an event reporting the command-line of the invocation as
     * originally received by the server. Note that this is not the command-line
     * given by the user, as the client adds information about the invocation,
     * like name and relevant entries of rc-files and client environment variables.
     * However, it does contain enough information to reproduce the build
     * invocation.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.UnstructuredCommandLine}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.UnstructuredCommandLine)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLineOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_UnstructuredCommandLine_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_UnstructuredCommandLine_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.Builder.class);
      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_UnstructuredCommandLine_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          args_ = args_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.args_ = args_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.getDefaultInstance()) return this;
        if (!other.args_.isEmpty()) {
          if (args_.isEmpty()) {
            args_ = other.args_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureArgsIsMutable();
            args_.addAll(other.args_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private com.google.protobuf.LazyStringList args_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureArgsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          args_ = new com.google.protobuf.LazyStringArrayList(args_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string args = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getArgsList() {
        return args_.getUnmodifiableView();
      }
      /**
       * <code>repeated string args = 1;</code>
       */
      public int getArgsCount() {
        return args_.size();
      }
      /**
       * <code>repeated string args = 1;</code>
       */
      public java.lang.String getArgs(int index) {
        return args_.get(index);
      }
      /**
       * <code>repeated string args = 1;</code>
       */
      public com.google.protobuf.ByteString
          getArgsBytes(int index) {
        return args_.getByteString(index);
      }
      /**
       * <code>repeated string args = 1;</code>
       */
      public Builder setArgs(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureArgsIsMutable();
        args_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string args = 1;</code>
       */
      public Builder addArgs(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureArgsIsMutable();
        args_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string args = 1;</code>
       */
      public Builder addAllArgs(
          java.lang.Iterable<java.lang.String> values) {
        ensureArgsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, args_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string args = 1;</code>
       */
      public Builder clearArgs() {
        args_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string args = 1;</code>
       */
      public Builder addArgsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureArgsIsMutable();
        args_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


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

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

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

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

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

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

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>repeated string startup_options = 1;</code>
     */
    java.util.List<java.lang.String>
        getStartupOptionsList();
    /**
     * <code>repeated string startup_options = 1;</code>
     */
    int getStartupOptionsCount();
    /**
     * <code>repeated string startup_options = 1;</code>
     */
    java.lang.String getStartupOptions(int index);
    /**
     * <code>repeated string startup_options = 1;</code>
     */
    com.google.protobuf.ByteString
        getStartupOptionsBytes(int index);

    /**
     * <code>repeated string explicit_startup_options = 2;</code>
     */
    java.util.List<java.lang.String>
        getExplicitStartupOptionsList();
    /**
     * <code>repeated string explicit_startup_options = 2;</code>
     */
    int getExplicitStartupOptionsCount();
    /**
     * <code>repeated string explicit_startup_options = 2;</code>
     */
    java.lang.String getExplicitStartupOptions(int index);
    /**
     * <code>repeated string explicit_startup_options = 2;</code>
     */
    com.google.protobuf.ByteString
        getExplicitStartupOptionsBytes(int index);

    /**
     * <code>repeated string cmd_line = 3;</code>
     */
    java.util.List<java.lang.String>
        getCmdLineList();
    /**
     * <code>repeated string cmd_line = 3;</code>
     */
    int getCmdLineCount();
    /**
     * <code>repeated string cmd_line = 3;</code>
     */
    java.lang.String getCmdLine(int index);
    /**
     * <code>repeated string cmd_line = 3;</code>
     */
    com.google.protobuf.ByteString
        getCmdLineBytes(int index);

    /**
     * <code>repeated string explicit_cmd_line = 4;</code>
     */
    java.util.List<java.lang.String>
        getExplicitCmdLineList();
    /**
     * <code>repeated string explicit_cmd_line = 4;</code>
     */
    int getExplicitCmdLineCount();
    /**
     * <code>repeated string explicit_cmd_line = 4;</code>
     */
    java.lang.String getExplicitCmdLine(int index);
    /**
     * <code>repeated string explicit_cmd_line = 4;</code>
     */
    com.google.protobuf.ByteString
        getExplicitCmdLineBytes(int index);

    /**
     * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
     */
    boolean hasInvocationPolicy();
    /**
     * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
     */
    com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy getInvocationPolicy();
    /**
     * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
     */
    com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicyOrBuilder getInvocationPolicyOrBuilder();

    /**
     * <code>string tool_tag = 6;</code>
     */
    java.lang.String getToolTag();
    /**
     * <code>string tool_tag = 6;</code>
     */
    com.google.protobuf.ByteString
        getToolTagBytes();
  }
  /**
   * <pre>
   * Payload of an event reporting on the parsed options, grouped in various ways.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.OptionsParsed}
   */
  public  static final class OptionsParsed extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.OptionsParsed)
      OptionsParsedOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OptionsParsed.newBuilder() to construct.
    private OptionsParsed(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OptionsParsed() {
      startupOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      explicitStartupOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      cmdLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      explicitCmdLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      toolTag_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private OptionsParsed(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                startupOptions_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              startupOptions_.add(s);
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                explicitStartupOptions_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              explicitStartupOptions_.add(s);
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                cmdLine_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              cmdLine_.add(s);
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                explicitCmdLine_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              explicitCmdLine_.add(s);
              break;
            }
            case 42: {
              com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.Builder subBuilder = null;
              if (invocationPolicy_ != null) {
                subBuilder = invocationPolicy_.toBuilder();
              }
              invocationPolicy_ = input.readMessage(com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(invocationPolicy_);
                invocationPolicy_ = subBuilder.buildPartial();
              }

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

              toolTag_ = s;
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          startupOptions_ = startupOptions_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          explicitStartupOptions_ = explicitStartupOptions_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          cmdLine_ = cmdLine_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          explicitCmdLine_ = explicitCmdLine_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_OptionsParsed_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_OptionsParsed_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.Builder.class);
    }

    private int bitField0_;
    public static final int STARTUP_OPTIONS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList startupOptions_;
    /**
     * <code>repeated string startup_options = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getStartupOptionsList() {
      return startupOptions_;
    }
    /**
     * <code>repeated string startup_options = 1;</code>
     */
    public int getStartupOptionsCount() {
      return startupOptions_.size();
    }
    /**
     * <code>repeated string startup_options = 1;</code>
     */
    public java.lang.String getStartupOptions(int index) {
      return startupOptions_.get(index);
    }
    /**
     * <code>repeated string startup_options = 1;</code>
     */
    public com.google.protobuf.ByteString
        getStartupOptionsBytes(int index) {
      return startupOptions_.getByteString(index);
    }

    public static final int EXPLICIT_STARTUP_OPTIONS_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList explicitStartupOptions_;
    /**
     * <code>repeated string explicit_startup_options = 2;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getExplicitStartupOptionsList() {
      return explicitStartupOptions_;
    }
    /**
     * <code>repeated string explicit_startup_options = 2;</code>
     */
    public int getExplicitStartupOptionsCount() {
      return explicitStartupOptions_.size();
    }
    /**
     * <code>repeated string explicit_startup_options = 2;</code>
     */
    public java.lang.String getExplicitStartupOptions(int index) {
      return explicitStartupOptions_.get(index);
    }
    /**
     * <code>repeated string explicit_startup_options = 2;</code>
     */
    public com.google.protobuf.ByteString
        getExplicitStartupOptionsBytes(int index) {
      return explicitStartupOptions_.getByteString(index);
    }

    public static final int CMD_LINE_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList cmdLine_;
    /**
     * <code>repeated string cmd_line = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getCmdLineList() {
      return cmdLine_;
    }
    /**
     * <code>repeated string cmd_line = 3;</code>
     */
    public int getCmdLineCount() {
      return cmdLine_.size();
    }
    /**
     * <code>repeated string cmd_line = 3;</code>
     */
    public java.lang.String getCmdLine(int index) {
      return cmdLine_.get(index);
    }
    /**
     * <code>repeated string cmd_line = 3;</code>
     */
    public com.google.protobuf.ByteString
        getCmdLineBytes(int index) {
      return cmdLine_.getByteString(index);
    }

    public static final int EXPLICIT_CMD_LINE_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList explicitCmdLine_;
    /**
     * <code>repeated string explicit_cmd_line = 4;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getExplicitCmdLineList() {
      return explicitCmdLine_;
    }
    /**
     * <code>repeated string explicit_cmd_line = 4;</code>
     */
    public int getExplicitCmdLineCount() {
      return explicitCmdLine_.size();
    }
    /**
     * <code>repeated string explicit_cmd_line = 4;</code>
     */
    public java.lang.String getExplicitCmdLine(int index) {
      return explicitCmdLine_.get(index);
    }
    /**
     * <code>repeated string explicit_cmd_line = 4;</code>
     */
    public com.google.protobuf.ByteString
        getExplicitCmdLineBytes(int index) {
      return explicitCmdLine_.getByteString(index);
    }

    public static final int INVOCATION_POLICY_FIELD_NUMBER = 5;
    private com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy invocationPolicy_;
    /**
     * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
     */
    public boolean hasInvocationPolicy() {
      return invocationPolicy_ != null;
    }
    /**
     * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
     */
    public com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy getInvocationPolicy() {
      return invocationPolicy_ == null ? com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.getDefaultInstance() : invocationPolicy_;
    }
    /**
     * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
     */
    public com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicyOrBuilder getInvocationPolicyOrBuilder() {
      return getInvocationPolicy();
    }

    public static final int TOOL_TAG_FIELD_NUMBER = 6;
    private volatile java.lang.Object toolTag_;
    /**
     * <code>string tool_tag = 6;</code>
     */
    public java.lang.String getToolTag() {
      java.lang.Object ref = toolTag_;
      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();
        toolTag_ = s;
        return s;
      }
    }
    /**
     * <code>string tool_tag = 6;</code>
     */
    public com.google.protobuf.ByteString
        getToolTagBytes() {
      java.lang.Object ref = toolTag_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        toolTag_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < startupOptions_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, startupOptions_.getRaw(i));
      }
      for (int i = 0; i < explicitStartupOptions_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, explicitStartupOptions_.getRaw(i));
      }
      for (int i = 0; i < cmdLine_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, cmdLine_.getRaw(i));
      }
      for (int i = 0; i < explicitCmdLine_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, explicitCmdLine_.getRaw(i));
      }
      if (invocationPolicy_ != null) {
        output.writeMessage(5, getInvocationPolicy());
      }
      if (!getToolTagBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, toolTag_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < startupOptions_.size(); i++) {
          dataSize += computeStringSizeNoTag(startupOptions_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getStartupOptionsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < explicitStartupOptions_.size(); i++) {
          dataSize += computeStringSizeNoTag(explicitStartupOptions_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getExplicitStartupOptionsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < cmdLine_.size(); i++) {
          dataSize += computeStringSizeNoTag(cmdLine_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCmdLineList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < explicitCmdLine_.size(); i++) {
          dataSize += computeStringSizeNoTag(explicitCmdLine_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getExplicitCmdLineList().size();
      }
      if (invocationPolicy_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getInvocationPolicy());
      }
      if (!getToolTagBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, toolTag_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && getStartupOptionsList()
          .equals(other.getStartupOptionsList());
      result = result && getExplicitStartupOptionsList()
          .equals(other.getExplicitStartupOptionsList());
      result = result && getCmdLineList()
          .equals(other.getCmdLineList());
      result = result && getExplicitCmdLineList()
          .equals(other.getExplicitCmdLineList());
      result = result && (hasInvocationPolicy() == other.hasInvocationPolicy());
      if (hasInvocationPolicy()) {
        result = result && getInvocationPolicy()
            .equals(other.getInvocationPolicy());
      }
      result = result && getToolTag()
          .equals(other.getToolTag());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getStartupOptionsCount() > 0) {
        hash = (37 * hash) + STARTUP_OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getStartupOptionsList().hashCode();
      }
      if (getExplicitStartupOptionsCount() > 0) {
        hash = (37 * hash) + EXPLICIT_STARTUP_OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getExplicitStartupOptionsList().hashCode();
      }
      if (getCmdLineCount() > 0) {
        hash = (37 * hash) + CMD_LINE_FIELD_NUMBER;
        hash = (53 * hash) + getCmdLineList().hashCode();
      }
      if (getExplicitCmdLineCount() > 0) {
        hash = (37 * hash) + EXPLICIT_CMD_LINE_FIELD_NUMBER;
        hash = (53 * hash) + getExplicitCmdLineList().hashCode();
      }
      if (hasInvocationPolicy()) {
        hash = (37 * hash) + INVOCATION_POLICY_FIELD_NUMBER;
        hash = (53 * hash) + getInvocationPolicy().hashCode();
      }
      hash = (37 * hash) + TOOL_TAG_FIELD_NUMBER;
      hash = (53 * hash) + getToolTag().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Payload of an event reporting on the parsed options, grouped in various ways.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.OptionsParsed}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.OptionsParsed)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_OptionsParsed_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_OptionsParsed_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        startupOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        explicitStartupOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        cmdLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        explicitCmdLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (invocationPolicyBuilder_ == null) {
          invocationPolicy_ = null;
        } else {
          invocationPolicy_ = null;
          invocationPolicyBuilder_ = null;
        }
        toolTag_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_OptionsParsed_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          startupOptions_ = startupOptions_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.startupOptions_ = startupOptions_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          explicitStartupOptions_ = explicitStartupOptions_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.explicitStartupOptions_ = explicitStartupOptions_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          cmdLine_ = cmdLine_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.cmdLine_ = cmdLine_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          explicitCmdLine_ = explicitCmdLine_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.explicitCmdLine_ = explicitCmdLine_;
        if (invocationPolicyBuilder_ == null) {
          result.invocationPolicy_ = invocationPolicy_;
        } else {
          result.invocationPolicy_ = invocationPolicyBuilder_.build();
        }
        result.toolTag_ = toolTag_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.getDefaultInstance()) return this;
        if (!other.startupOptions_.isEmpty()) {
          if (startupOptions_.isEmpty()) {
            startupOptions_ = other.startupOptions_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureStartupOptionsIsMutable();
            startupOptions_.addAll(other.startupOptions_);
          }
          onChanged();
        }
        if (!other.explicitStartupOptions_.isEmpty()) {
          if (explicitStartupOptions_.isEmpty()) {
            explicitStartupOptions_ = other.explicitStartupOptions_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureExplicitStartupOptionsIsMutable();
            explicitStartupOptions_.addAll(other.explicitStartupOptions_);
          }
          onChanged();
        }
        if (!other.cmdLine_.isEmpty()) {
          if (cmdLine_.isEmpty()) {
            cmdLine_ = other.cmdLine_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureCmdLineIsMutable();
            cmdLine_.addAll(other.cmdLine_);
          }
          onChanged();
        }
        if (!other.explicitCmdLine_.isEmpty()) {
          if (explicitCmdLine_.isEmpty()) {
            explicitCmdLine_ = other.explicitCmdLine_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureExplicitCmdLineIsMutable();
            explicitCmdLine_.addAll(other.explicitCmdLine_);
          }
          onChanged();
        }
        if (other.hasInvocationPolicy()) {
          mergeInvocationPolicy(other.getInvocationPolicy());
        }
        if (!other.getToolTag().isEmpty()) {
          toolTag_ = other.toolTag_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private com.google.protobuf.LazyStringList startupOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureStartupOptionsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          startupOptions_ = new com.google.protobuf.LazyStringArrayList(startupOptions_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string startup_options = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getStartupOptionsList() {
        return startupOptions_.getUnmodifiableView();
      }
      /**
       * <code>repeated string startup_options = 1;</code>
       */
      public int getStartupOptionsCount() {
        return startupOptions_.size();
      }
      /**
       * <code>repeated string startup_options = 1;</code>
       */
      public java.lang.String getStartupOptions(int index) {
        return startupOptions_.get(index);
      }
      /**
       * <code>repeated string startup_options = 1;</code>
       */
      public com.google.protobuf.ByteString
          getStartupOptionsBytes(int index) {
        return startupOptions_.getByteString(index);
      }
      /**
       * <code>repeated string startup_options = 1;</code>
       */
      public Builder setStartupOptions(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureStartupOptionsIsMutable();
        startupOptions_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string startup_options = 1;</code>
       */
      public Builder addStartupOptions(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureStartupOptionsIsMutable();
        startupOptions_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string startup_options = 1;</code>
       */
      public Builder addAllStartupOptions(
          java.lang.Iterable<java.lang.String> values) {
        ensureStartupOptionsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, startupOptions_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string startup_options = 1;</code>
       */
      public Builder clearStartupOptions() {
        startupOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string startup_options = 1;</code>
       */
      public Builder addStartupOptionsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureStartupOptionsIsMutable();
        startupOptions_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList explicitStartupOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureExplicitStartupOptionsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          explicitStartupOptions_ = new com.google.protobuf.LazyStringArrayList(explicitStartupOptions_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string explicit_startup_options = 2;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getExplicitStartupOptionsList() {
        return explicitStartupOptions_.getUnmodifiableView();
      }
      /**
       * <code>repeated string explicit_startup_options = 2;</code>
       */
      public int getExplicitStartupOptionsCount() {
        return explicitStartupOptions_.size();
      }
      /**
       * <code>repeated string explicit_startup_options = 2;</code>
       */
      public java.lang.String getExplicitStartupOptions(int index) {
        return explicitStartupOptions_.get(index);
      }
      /**
       * <code>repeated string explicit_startup_options = 2;</code>
       */
      public com.google.protobuf.ByteString
          getExplicitStartupOptionsBytes(int index) {
        return explicitStartupOptions_.getByteString(index);
      }
      /**
       * <code>repeated string explicit_startup_options = 2;</code>
       */
      public Builder setExplicitStartupOptions(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureExplicitStartupOptionsIsMutable();
        explicitStartupOptions_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string explicit_startup_options = 2;</code>
       */
      public Builder addExplicitStartupOptions(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureExplicitStartupOptionsIsMutable();
        explicitStartupOptions_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string explicit_startup_options = 2;</code>
       */
      public Builder addAllExplicitStartupOptions(
          java.lang.Iterable<java.lang.String> values) {
        ensureExplicitStartupOptionsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, explicitStartupOptions_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string explicit_startup_options = 2;</code>
       */
      public Builder clearExplicitStartupOptions() {
        explicitStartupOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string explicit_startup_options = 2;</code>
       */
      public Builder addExplicitStartupOptionsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureExplicitStartupOptionsIsMutable();
        explicitStartupOptions_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList cmdLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureCmdLineIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          cmdLine_ = new com.google.protobuf.LazyStringArrayList(cmdLine_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated string cmd_line = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getCmdLineList() {
        return cmdLine_.getUnmodifiableView();
      }
      /**
       * <code>repeated string cmd_line = 3;</code>
       */
      public int getCmdLineCount() {
        return cmdLine_.size();
      }
      /**
       * <code>repeated string cmd_line = 3;</code>
       */
      public java.lang.String getCmdLine(int index) {
        return cmdLine_.get(index);
      }
      /**
       * <code>repeated string cmd_line = 3;</code>
       */
      public com.google.protobuf.ByteString
          getCmdLineBytes(int index) {
        return cmdLine_.getByteString(index);
      }
      /**
       * <code>repeated string cmd_line = 3;</code>
       */
      public Builder setCmdLine(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCmdLineIsMutable();
        cmdLine_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string cmd_line = 3;</code>
       */
      public Builder addCmdLine(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCmdLineIsMutable();
        cmdLine_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string cmd_line = 3;</code>
       */
      public Builder addAllCmdLine(
          java.lang.Iterable<java.lang.String> values) {
        ensureCmdLineIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, cmdLine_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string cmd_line = 3;</code>
       */
      public Builder clearCmdLine() {
        cmdLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string cmd_line = 3;</code>
       */
      public Builder addCmdLineBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureCmdLineIsMutable();
        cmdLine_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList explicitCmdLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureExplicitCmdLineIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          explicitCmdLine_ = new com.google.protobuf.LazyStringArrayList(explicitCmdLine_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated string explicit_cmd_line = 4;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getExplicitCmdLineList() {
        return explicitCmdLine_.getUnmodifiableView();
      }
      /**
       * <code>repeated string explicit_cmd_line = 4;</code>
       */
      public int getExplicitCmdLineCount() {
        return explicitCmdLine_.size();
      }
      /**
       * <code>repeated string explicit_cmd_line = 4;</code>
       */
      public java.lang.String getExplicitCmdLine(int index) {
        return explicitCmdLine_.get(index);
      }
      /**
       * <code>repeated string explicit_cmd_line = 4;</code>
       */
      public com.google.protobuf.ByteString
          getExplicitCmdLineBytes(int index) {
        return explicitCmdLine_.getByteString(index);
      }
      /**
       * <code>repeated string explicit_cmd_line = 4;</code>
       */
      public Builder setExplicitCmdLine(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureExplicitCmdLineIsMutable();
        explicitCmdLine_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string explicit_cmd_line = 4;</code>
       */
      public Builder addExplicitCmdLine(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureExplicitCmdLineIsMutable();
        explicitCmdLine_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string explicit_cmd_line = 4;</code>
       */
      public Builder addAllExplicitCmdLine(
          java.lang.Iterable<java.lang.String> values) {
        ensureExplicitCmdLineIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, explicitCmdLine_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string explicit_cmd_line = 4;</code>
       */
      public Builder clearExplicitCmdLine() {
        explicitCmdLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string explicit_cmd_line = 4;</code>
       */
      public Builder addExplicitCmdLineBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureExplicitCmdLineIsMutable();
        explicitCmdLine_.add(value);
        onChanged();
        return this;
      }

      private com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy invocationPolicy_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy, com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.Builder, com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicyOrBuilder> invocationPolicyBuilder_;
      /**
       * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
       */
      public boolean hasInvocationPolicy() {
        return invocationPolicyBuilder_ != null || invocationPolicy_ != null;
      }
      /**
       * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
       */
      public com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy getInvocationPolicy() {
        if (invocationPolicyBuilder_ == null) {
          return invocationPolicy_ == null ? com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.getDefaultInstance() : invocationPolicy_;
        } else {
          return invocationPolicyBuilder_.getMessage();
        }
      }
      /**
       * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
       */
      public Builder setInvocationPolicy(com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy value) {
        if (invocationPolicyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          invocationPolicy_ = value;
          onChanged();
        } else {
          invocationPolicyBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
       */
      public Builder setInvocationPolicy(
          com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.Builder builderForValue) {
        if (invocationPolicyBuilder_ == null) {
          invocationPolicy_ = builderForValue.build();
          onChanged();
        } else {
          invocationPolicyBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
       */
      public Builder mergeInvocationPolicy(com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy value) {
        if (invocationPolicyBuilder_ == null) {
          if (invocationPolicy_ != null) {
            invocationPolicy_ =
              com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.newBuilder(invocationPolicy_).mergeFrom(value).buildPartial();
          } else {
            invocationPolicy_ = value;
          }
          onChanged();
        } else {
          invocationPolicyBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
       */
      public Builder clearInvocationPolicy() {
        if (invocationPolicyBuilder_ == null) {
          invocationPolicy_ = null;
          onChanged();
        } else {
          invocationPolicy_ = null;
          invocationPolicyBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
       */
      public com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.Builder getInvocationPolicyBuilder() {
        
        onChanged();
        return getInvocationPolicyFieldBuilder().getBuilder();
      }
      /**
       * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
       */
      public com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicyOrBuilder getInvocationPolicyOrBuilder() {
        if (invocationPolicyBuilder_ != null) {
          return invocationPolicyBuilder_.getMessageOrBuilder();
        } else {
          return invocationPolicy_ == null ?
              com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.getDefaultInstance() : invocationPolicy_;
        }
      }
      /**
       * <code>.blaze.invocation_policy.InvocationPolicy invocation_policy = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy, com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.Builder, com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicyOrBuilder> 
          getInvocationPolicyFieldBuilder() {
        if (invocationPolicyBuilder_ == null) {
          invocationPolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy, com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy.Builder, com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicyOrBuilder>(
                  getInvocationPolicy(),
                  getParentForChildren(),
                  isClean());
          invocationPolicy_ = null;
        }
        return invocationPolicyBuilder_;
      }

      private java.lang.Object toolTag_ = "";
      /**
       * <code>string tool_tag = 6;</code>
       */
      public java.lang.String getToolTag() {
        java.lang.Object ref = toolTag_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          toolTag_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string tool_tag = 6;</code>
       */
      public com.google.protobuf.ByteString
          getToolTagBytes() {
        java.lang.Object ref = toolTag_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          toolTag_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string tool_tag = 6;</code>
       */
      public Builder setToolTag(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        toolTag_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string tool_tag = 6;</code>
       */
      public Builder clearToolTag() {
        
        toolTag_ = getDefaultInstance().getToolTag();
        onChanged();
        return this;
      }
      /**
       * <code>string tool_tag = 6;</code>
       */
      public Builder setToolTagBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        toolTag_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


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

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

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

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

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

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

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>bool success = 1;</code>
     */
    boolean getSuccess();
  }
  /**
   * <pre>
   * Payload of an event indicating that an external resource was fetched. This
   * event will only occur in streams where an actual fetch happened, not in ones
   * where a cached copy of the entity to be fetched was used.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.Fetch}
   */
  public  static final class Fetch extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.Fetch)
      FetchOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Fetch.newBuilder() to construct.
    private Fetch(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Fetch() {
      success_ = false;
    }

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

              success_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Fetch_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Fetch_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.Builder.class);
    }

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

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + 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.Fetch parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch parseFrom(
        java.nio.ByteBuffer 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.Fetch parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch 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.Fetch parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch 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.Fetch 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.Fetch 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.Fetch 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.Fetch 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.Fetch 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.Fetch parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Payload of an event indicating that an external resource was fetched. This
     * event will only occur in streams where an actual fetch happened, not in ones
     * where a cached copy of the entity to be fetched was used.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.Fetch}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.Fetch)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FetchOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Fetch_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Fetch_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.Builder.class);
      }

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

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

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Fetch_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch(this);
        result.success_ = success_;
        onBuilt();
        return result;
      }

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

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

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

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

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

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


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

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

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

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

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

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

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
     */
    java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item> 
        getItemList();
    /**
     * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item getItem(int index);
    /**
     * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
     */
    int getItemCount();
    /**
     * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.ItemOrBuilder> 
        getItemOrBuilderList();
    /**
     * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.ItemOrBuilder getItemOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Payload of an event reporting the workspace status. Key-value pairs can be
   * provided by specifying the workspace_status_command to an executable that
   * returns one key-value pair per line of output (key and value separated by a
   * space).
   * </pre>
   *
   * Protobuf type {@code build_event_stream.WorkspaceStatus}
   */
  public  static final class WorkspaceStatus extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.WorkspaceStatus)
      WorkspaceStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use WorkspaceStatus.newBuilder() to construct.
    private WorkspaceStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private WorkspaceStatus() {
      item_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private WorkspaceStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                item_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item>();
                mutable_bitField0_ |= 0x00000001;
              }
              item_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          item_ = java.util.Collections.unmodifiableList(item_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_WorkspaceStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_WorkspaceStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Builder.class);
    }

    public interface ItemOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.WorkspaceStatus.Item)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>string key = 1;</code>
       */
      java.lang.String getKey();
      /**
       * <code>string key = 1;</code>
       */
      com.google.protobuf.ByteString
          getKeyBytes();

      /**
       * <code>string value = 2;</code>
       */
      java.lang.String getValue();
      /**
       * <code>string value = 2;</code>
       */
      com.google.protobuf.ByteString
          getValueBytes();
    }
    /**
     * Protobuf type {@code build_event_stream.WorkspaceStatus.Item}
     */
    public  static final class Item extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.WorkspaceStatus.Item)
        ItemOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Item.newBuilder() to construct.
      private Item(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Item() {
        key_ = "";
        value_ = "";
      }

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

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_WorkspaceStatus_Item_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder.class);
      }

      public static final int KEY_FIELD_NUMBER = 1;
      private volatile java.lang.Object key_;
      /**
       * <code>string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        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();
          key_ = s;
          return s;
        }
      }
      /**
       * <code>string key = 1;</code>
       */
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int VALUE_FIELD_NUMBER = 2;
      private volatile java.lang.Object value_;
      /**
       * <code>string value = 2;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        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();
          value_ = s;
          return s;
        }
      }
      /**
       * <code>string value = 2;</code>
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getKeyBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
        }
        if (!getValueBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (!getKeyBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
        }
        if (!getValueBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item) obj;

        boolean result = true;
        result = result && getKey()
            .equals(other.getKey());
        result = result && getValue()
            .equals(other.getValue());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code build_event_stream.WorkspaceStatus.Item}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.WorkspaceStatus.Item)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.ItemOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_WorkspaceStatus_Item_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_WorkspaceStatus_Item_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder.class);
        }

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

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

          value_ = "";

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_WorkspaceStatus_Item_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.getDefaultInstance();
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item(this);
          result.key_ = key_;
          result.value_ = value_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.getDefaultInstance()) return this;
          if (!other.getKey().isEmpty()) {
            key_ = other.key_;
            onChanged();
          }
          if (!other.getValue().isEmpty()) {
            value_ = other.value_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

        private java.lang.Object key_ = "";
        /**
         * <code>string key = 1;</code>
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            key_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string key = 1;</code>
         */
        public com.google.protobuf.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string key = 1;</code>
         */
        public Builder setKey(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          key_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string key = 1;</code>
         */
        public Builder clearKey() {
          
          key_ = getDefaultInstance().getKey();
          onChanged();
          return this;
        }
        /**
         * <code>string key = 1;</code>
         */
        public Builder setKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          key_ = value;
          onChanged();
          return this;
        }

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

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


        // @@protoc_insertion_point(builder_scope:build_event_stream.WorkspaceStatus.Item)
      }

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int ITEM_FIELD_NUMBER = 1;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item> item_;
    /**
     * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
     */
    public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item> getItemList() {
      return item_;
    }
    /**
     * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.ItemOrBuilder> 
        getItemOrBuilderList() {
      return item_;
    }
    /**
     * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
     */
    public int getItemCount() {
      return item_.size();
    }
    /**
     * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item getItem(int index) {
      return item_.get(index);
    }
    /**
     * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.ItemOrBuilder getItemOrBuilder(
        int index) {
      return item_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < item_.size(); i++) {
        output.writeMessage(1, item_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

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

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

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getItemCount() > 0) {
        hash = (37 * hash) + ITEM_FIELD_NUMBER;
        hash = (53 * hash) + getItemList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Payload of an event reporting the workspace status. Key-value pairs can be
     * provided by specifying the workspace_status_command to an executable that
     * returns one key-value pair per line of output (key and value separated by a
     * space).
     * </pre>
     *
     * Protobuf type {@code build_event_stream.WorkspaceStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.WorkspaceStatus)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_WorkspaceStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_WorkspaceStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getItemFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (itemBuilder_ == null) {
          item_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          itemBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_WorkspaceStatus_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus(this);
        int from_bitField0_ = bitField0_;
        if (itemBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            item_ = java.util.Collections.unmodifiableList(item_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.item_ = item_;
        } else {
          result.item_ = itemBuilder_.build();
        }
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.getDefaultInstance()) return this;
        if (itemBuilder_ == null) {
          if (!other.item_.isEmpty()) {
            if (item_.isEmpty()) {
              item_ = other.item_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureItemIsMutable();
              item_.addAll(other.item_);
            }
            onChanged();
          }
        } else {
          if (!other.item_.isEmpty()) {
            if (itemBuilder_.isEmpty()) {
              itemBuilder_.dispose();
              itemBuilder_ = null;
              item_ = other.item_;
              bitField0_ = (bitField0_ & ~0x00000001);
              itemBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getItemFieldBuilder() : null;
            } else {
              itemBuilder_.addAllMessages(other.item_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item> item_ =
        java.util.Collections.emptyList();
      private void ensureItemIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          item_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item>(item_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.ItemOrBuilder> itemBuilder_;

      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item> getItemList() {
        if (itemBuilder_ == null) {
          return java.util.Collections.unmodifiableList(item_);
        } else {
          return itemBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public int getItemCount() {
        if (itemBuilder_ == null) {
          return item_.size();
        } else {
          return itemBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item getItem(int index) {
        if (itemBuilder_ == null) {
          return item_.get(index);
        } else {
          return itemBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public Builder setItem(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item value) {
        if (itemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemIsMutable();
          item_.set(index, value);
          onChanged();
        } else {
          itemBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public Builder setItem(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder builderForValue) {
        if (itemBuilder_ == null) {
          ensureItemIsMutable();
          item_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public Builder addItem(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item value) {
        if (itemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemIsMutable();
          item_.add(value);
          onChanged();
        } else {
          itemBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public Builder addItem(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item value) {
        if (itemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemIsMutable();
          item_.add(index, value);
          onChanged();
        } else {
          itemBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public Builder addItem(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder builderForValue) {
        if (itemBuilder_ == null) {
          ensureItemIsMutable();
          item_.add(builderForValue.build());
          onChanged();
        } else {
          itemBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public Builder addItem(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder builderForValue) {
        if (itemBuilder_ == null) {
          ensureItemIsMutable();
          item_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public Builder addAllItem(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item> values) {
        if (itemBuilder_ == null) {
          ensureItemIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, item_);
          onChanged();
        } else {
          itemBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public Builder clearItem() {
        if (itemBuilder_ == null) {
          item_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          itemBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public Builder removeItem(int index) {
        if (itemBuilder_ == null) {
          ensureItemIsMutable();
          item_.remove(index);
          onChanged();
        } else {
          itemBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder getItemBuilder(
          int index) {
        return getItemFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.ItemOrBuilder getItemOrBuilder(
          int index) {
        if (itemBuilder_ == null) {
          return item_.get(index);  } else {
          return itemBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.ItemOrBuilder> 
           getItemOrBuilderList() {
        if (itemBuilder_ != null) {
          return itemBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(item_);
        }
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder addItemBuilder() {
        return getItemFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.getDefaultInstance());
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder addItemBuilder(
          int index) {
        return getItemFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.getDefaultInstance());
      }
      /**
       * <code>repeated .build_event_stream.WorkspaceStatus.Item item = 1;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder> 
           getItemBuilderList() {
        return getItemFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.ItemOrBuilder> 
          getItemFieldBuilder() {
        if (itemBuilder_ == null) {
          itemBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Item.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.ItemOrBuilder>(
                  item_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          item_ = null;
        }
        return itemBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


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

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

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

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

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

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

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>string mnemonic = 1;</code>
     */
    java.lang.String getMnemonic();
    /**
     * <code>string mnemonic = 1;</code>
     */
    com.google.protobuf.ByteString
        getMnemonicBytes();

    /**
     * <code>string platform_name = 2;</code>
     */
    java.lang.String getPlatformName();
    /**
     * <code>string platform_name = 2;</code>
     */
    com.google.protobuf.ByteString
        getPlatformNameBytes();

    /**
     * <code>string cpu = 3;</code>
     */
    java.lang.String getCpu();
    /**
     * <code>string cpu = 3;</code>
     */
    com.google.protobuf.ByteString
        getCpuBytes();

    /**
     * <code>map&lt;string, string&gt; make_variable = 4;</code>
     */
    int getMakeVariableCount();
    /**
     * <code>map&lt;string, string&gt; make_variable = 4;</code>
     */
    boolean containsMakeVariable(
        java.lang.String key);
    /**
     * Use {@link #getMakeVariableMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getMakeVariable();
    /**
     * <code>map&lt;string, string&gt; make_variable = 4;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getMakeVariableMap();
    /**
     * <code>map&lt;string, string&gt; make_variable = 4;</code>
     */

    java.lang.String getMakeVariableOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; make_variable = 4;</code>
     */

    java.lang.String getMakeVariableOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   * Payload of an event reporting details of a given configuration.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.Configuration}
   */
  public  static final class Configuration extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.Configuration)
      ConfigurationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Configuration.newBuilder() to construct.
    private Configuration(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Configuration() {
      mnemonic_ = "";
      platformName_ = "";
      cpu_ = "";
    }

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

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

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

              cpu_ = s;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                makeVariable_ = com.google.protobuf.MapField.newMapField(
                    MakeVariableDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000008;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              makeVariable__ = input.readMessage(
                  MakeVariableDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              makeVariable_.getMutableMap().put(
                  makeVariable__.getKey(), makeVariable__.getValue());
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Configuration_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 4:
          return internalGetMakeVariable();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Configuration_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.Builder.class);
    }

    private int bitField0_;
    public static final int MNEMONIC_FIELD_NUMBER = 1;
    private volatile java.lang.Object mnemonic_;
    /**
     * <code>string mnemonic = 1;</code>
     */
    public java.lang.String getMnemonic() {
      java.lang.Object ref = mnemonic_;
      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();
        mnemonic_ = s;
        return s;
      }
    }
    /**
     * <code>string mnemonic = 1;</code>
     */
    public com.google.protobuf.ByteString
        getMnemonicBytes() {
      java.lang.Object ref = mnemonic_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mnemonic_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PLATFORM_NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object platformName_;
    /**
     * <code>string platform_name = 2;</code>
     */
    public java.lang.String getPlatformName() {
      java.lang.Object ref = platformName_;
      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();
        platformName_ = s;
        return s;
      }
    }
    /**
     * <code>string platform_name = 2;</code>
     */
    public com.google.protobuf.ByteString
        getPlatformNameBytes() {
      java.lang.Object ref = platformName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        platformName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CPU_FIELD_NUMBER = 3;
    private volatile java.lang.Object cpu_;
    /**
     * <code>string cpu = 3;</code>
     */
    public java.lang.String getCpu() {
      java.lang.Object ref = cpu_;
      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();
        cpu_ = s;
        return s;
      }
    }
    /**
     * <code>string cpu = 3;</code>
     */
    public com.google.protobuf.ByteString
        getCpuBytes() {
      java.lang.Object ref = cpu_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cpu_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MAKE_VARIABLE_FIELD_NUMBER = 4;
    private static final class MakeVariableDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Configuration_MakeVariableEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> makeVariable_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetMakeVariable() {
      if (makeVariable_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MakeVariableDefaultEntryHolder.defaultEntry);
      }
      return makeVariable_;
    }

    public int getMakeVariableCount() {
      return internalGetMakeVariable().getMap().size();
    }
    /**
     * <code>map&lt;string, string&gt; make_variable = 4;</code>
     */

    public boolean containsMakeVariable(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetMakeVariable().getMap().containsKey(key);
    }
    /**
     * Use {@link #getMakeVariableMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getMakeVariable() {
      return getMakeVariableMap();
    }
    /**
     * <code>map&lt;string, string&gt; make_variable = 4;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getMakeVariableMap() {
      return internalGetMakeVariable().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; make_variable = 4;</code>
     */

    public java.lang.String getMakeVariableOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetMakeVariable().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, string&gt; make_variable = 4;</code>
     */

    public java.lang.String getMakeVariableOrThrow(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetMakeVariable().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getMnemonicBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, mnemonic_);
      }
      if (!getPlatformNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, platformName_);
      }
      if (!getCpuBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, cpu_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetMakeVariable(),
          MakeVariableDefaultEntryHolder.defaultEntry,
          4);
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!getMnemonicBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, mnemonic_);
      }
      if (!getPlatformNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, platformName_);
      }
      if (!getCpuBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, cpu_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetMakeVariable().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        makeVariable__ = MakeVariableDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, makeVariable__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && getMnemonic()
          .equals(other.getMnemonic());
      result = result && getPlatformName()
          .equals(other.getPlatformName());
      result = result && getCpu()
          .equals(other.getCpu());
      result = result && internalGetMakeVariable().equals(
          other.internalGetMakeVariable());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MNEMONIC_FIELD_NUMBER;
      hash = (53 * hash) + getMnemonic().hashCode();
      hash = (37 * hash) + PLATFORM_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getPlatformName().hashCode();
      hash = (37 * hash) + CPU_FIELD_NUMBER;
      hash = (53 * hash) + getCpu().hashCode();
      if (!internalGetMakeVariable().getMap().isEmpty()) {
        hash = (37 * hash) + MAKE_VARIABLE_FIELD_NUMBER;
        hash = (53 * hash) + internalGetMakeVariable().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Payload of an event reporting details of a given configuration.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.Configuration}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.Configuration)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ConfigurationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Configuration_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 4:
            return internalGetMakeVariable();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 4:
            return internalGetMutableMakeVariable();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Configuration_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.Builder.class);
      }

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

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

        platformName_ = "";

        cpu_ = "";

        internalGetMutableMakeVariable().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_Configuration_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.mnemonic_ = mnemonic_;
        result.platformName_ = platformName_;
        result.cpu_ = cpu_;
        result.makeVariable_ = internalGetMakeVariable();
        result.makeVariable_.makeImmutable();
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.getDefaultInstance()) return this;
        if (!other.getMnemonic().isEmpty()) {
          mnemonic_ = other.mnemonic_;
          onChanged();
        }
        if (!other.getPlatformName().isEmpty()) {
          platformName_ = other.platformName_;
          onChanged();
        }
        if (!other.getCpu().isEmpty()) {
          cpu_ = other.cpu_;
          onChanged();
        }
        internalGetMutableMakeVariable().mergeFrom(
            other.internalGetMakeVariable());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private java.lang.Object mnemonic_ = "";
      /**
       * <code>string mnemonic = 1;</code>
       */
      public java.lang.String getMnemonic() {
        java.lang.Object ref = mnemonic_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mnemonic_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string mnemonic = 1;</code>
       */
      public com.google.protobuf.ByteString
          getMnemonicBytes() {
        java.lang.Object ref = mnemonic_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mnemonic_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string mnemonic = 1;</code>
       */
      public Builder setMnemonic(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        mnemonic_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string mnemonic = 1;</code>
       */
      public Builder clearMnemonic() {
        
        mnemonic_ = getDefaultInstance().getMnemonic();
        onChanged();
        return this;
      }
      /**
       * <code>string mnemonic = 1;</code>
       */
      public Builder setMnemonicBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        mnemonic_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object platformName_ = "";
      /**
       * <code>string platform_name = 2;</code>
       */
      public java.lang.String getPlatformName() {
        java.lang.Object ref = platformName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          platformName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string platform_name = 2;</code>
       */
      public com.google.protobuf.ByteString
          getPlatformNameBytes() {
        java.lang.Object ref = platformName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          platformName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string platform_name = 2;</code>
       */
      public Builder setPlatformName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        platformName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string platform_name = 2;</code>
       */
      public Builder clearPlatformName() {
        
        platformName_ = getDefaultInstance().getPlatformName();
        onChanged();
        return this;
      }
      /**
       * <code>string platform_name = 2;</code>
       */
      public Builder setPlatformNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        platformName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object cpu_ = "";
      /**
       * <code>string cpu = 3;</code>
       */
      public java.lang.String getCpu() {
        java.lang.Object ref = cpu_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          cpu_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string cpu = 3;</code>
       */
      public com.google.protobuf.ByteString
          getCpuBytes() {
        java.lang.Object ref = cpu_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          cpu_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string cpu = 3;</code>
       */
      public Builder setCpu(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        cpu_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string cpu = 3;</code>
       */
      public Builder clearCpu() {
        
        cpu_ = getDefaultInstance().getCpu();
        onChanged();
        return this;
      }
      /**
       * <code>string cpu = 3;</code>
       */
      public Builder setCpuBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        cpu_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> makeVariable_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMakeVariable() {
        if (makeVariable_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              MakeVariableDefaultEntryHolder.defaultEntry);
        }
        return makeVariable_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableMakeVariable() {
        onChanged();;
        if (makeVariable_ == null) {
          makeVariable_ = com.google.protobuf.MapField.newMapField(
              MakeVariableDefaultEntryHolder.defaultEntry);
        }
        if (!makeVariable_.isMutable()) {
          makeVariable_ = makeVariable_.copy();
        }
        return makeVariable_;
      }

      public int getMakeVariableCount() {
        return internalGetMakeVariable().getMap().size();
      }
      /**
       * <code>map&lt;string, string&gt; make_variable = 4;</code>
       */

      public boolean containsMakeVariable(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetMakeVariable().getMap().containsKey(key);
      }
      /**
       * Use {@link #getMakeVariableMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMakeVariable() {
        return getMakeVariableMap();
      }
      /**
       * <code>map&lt;string, string&gt; make_variable = 4;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getMakeVariableMap() {
        return internalGetMakeVariable().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; make_variable = 4;</code>
       */

      public java.lang.String getMakeVariableOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetMakeVariable().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, string&gt; make_variable = 4;</code>
       */

      public java.lang.String getMakeVariableOrThrow(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetMakeVariable().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearMakeVariable() {
        internalGetMutableMakeVariable().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; make_variable = 4;</code>
       */

      public Builder removeMakeVariable(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableMakeVariable().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableMakeVariable() {
        return internalGetMutableMakeVariable().getMutableMap();
      }
      /**
       * <code>map&lt;string, string&gt; make_variable = 4;</code>
       */
      public Builder putMakeVariable(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableMakeVariable().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; make_variable = 4;</code>
       */

      public Builder putAllMakeVariable(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableMakeVariable().getMutableMap()
            .putAll(values);
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


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

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

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

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

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

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

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration 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 {
  private static final long serialVersionUID = 0L;
    // 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 this.unknownFields;
    }
    private PatternExpanded(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_PatternExpanded_descriptor;
    }

    @java.lang.Override
    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;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof 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;
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

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

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded parseFrom(
        java.nio.ByteBuffer 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(
        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);
    }

    @java.lang.Override
    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);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <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;
      }

      @java.lang.Override
      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) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

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

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof 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;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        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;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope: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>() {
      @java.lang.Override
      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;
    }

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

  }

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

    /**
     * <pre>
     * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
     * "generated file") where the completion is reported.
     * </pre>
     *
     * <code>string target_kind = 1;</code>
     */
    java.lang.String getTargetKind();
    /**
     * <pre>
     * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
     * "generated file") where the completion is reported.
     * </pre>
     *
     * <code>string target_kind = 1;</code>
     */
    com.google.protobuf.ByteString
        getTargetKindBytes();

    /**
     * <pre>
     * The size of the test, if the target is a test target. Unset otherwise.
     * </pre>
     *
     * <code>.build_event_stream.TestSize test_size = 2;</code>
     */
    int getTestSizeValue();
    /**
     * <pre>
     * The size of the test, if the target is a test target. Unset otherwise.
     * </pre>
     *
     * <code>.build_event_stream.TestSize test_size = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize getTestSize();

    /**
     * <pre>
     * List of all tags associated with this target (for all possible
     * configurations).
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    java.util.List<java.lang.String>
        getTagList();
    /**
     * <pre>
     * List of all tags associated with this target (for all possible
     * configurations).
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    int getTagCount();
    /**
     * <pre>
     * List of all tags associated with this target (for all possible
     * configurations).
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    java.lang.String getTag(int index);
    /**
     * <pre>
     * List of all tags associated with this target (for all possible
     * configurations).
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    com.google.protobuf.ByteString
        getTagBytes(int index);
  }
  /**
   * <pre>
   * Payload of the event indicating that the configurations for a target have
   * been identified. As with pattern expansion the main information is in the
   * chaining part: the id will contain the target that was configured and the
   * children id will contain the configured targets it was configured to.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.TargetConfigured}
   */
  public  static final class TargetConfigured extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.TargetConfigured)
      TargetConfiguredOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TargetConfigured.newBuilder() to construct.
    private TargetConfigured(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TargetConfigured() {
      targetKind_ = "";
      testSize_ = 0;
      tag_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

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

              targetKind_ = s;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();

              testSize_ = rawValue;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                tag_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              tag_.add(s);
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          tag_ = tag_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TargetConfigured_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TargetConfigured_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.Builder.class);
    }

    private int bitField0_;
    public static final int TARGET_KIND_FIELD_NUMBER = 1;
    private volatile java.lang.Object targetKind_;
    /**
     * <pre>
     * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
     * "generated file") where the completion is reported.
     * </pre>
     *
     * <code>string target_kind = 1;</code>
     */
    public java.lang.String getTargetKind() {
      java.lang.Object ref = targetKind_;
      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();
        targetKind_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
     * "generated file") where the completion is reported.
     * </pre>
     *
     * <code>string target_kind = 1;</code>
     */
    public com.google.protobuf.ByteString
        getTargetKindBytes() {
      java.lang.Object ref = targetKind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        targetKind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TEST_SIZE_FIELD_NUMBER = 2;
    private int testSize_;
    /**
     * <pre>
     * The size of the test, if the target is a test target. Unset otherwise.
     * </pre>
     *
     * <code>.build_event_stream.TestSize test_size = 2;</code>
     */
    public int getTestSizeValue() {
      return testSize_;
    }
    /**
     * <pre>
     * The size of the test, if the target is a test target. Unset otherwise.
     * </pre>
     *
     * <code>.build_event_stream.TestSize test_size = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize getTestSize() {
      @SuppressWarnings("deprecation")
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize result = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.valueOf(testSize_);
      return result == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.UNRECOGNIZED : result;
    }

    public static final int TAG_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList tag_;
    /**
     * <pre>
     * List of all tags associated with this target (for all possible
     * configurations).
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getTagList() {
      return tag_;
    }
    /**
     * <pre>
     * List of all tags associated with this target (for all possible
     * configurations).
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    public int getTagCount() {
      return tag_.size();
    }
    /**
     * <pre>
     * List of all tags associated with this target (for all possible
     * configurations).
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    public java.lang.String getTag(int index) {
      return tag_.get(index);
    }
    /**
     * <pre>
     * List of all tags associated with this target (for all possible
     * configurations).
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    public com.google.protobuf.ByteString
        getTagBytes(int index) {
      return tag_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getTargetKindBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, targetKind_);
      }
      if (testSize_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.UNKNOWN.getNumber()) {
        output.writeEnum(2, testSize_);
      }
      for (int i = 0; i < tag_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, tag_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!getTargetKindBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, targetKind_);
      }
      if (testSize_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, testSize_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tag_.size(); i++) {
          dataSize += computeStringSizeNoTag(tag_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTagList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && getTargetKind()
          .equals(other.getTargetKind());
      result = result && testSize_ == other.testSize_;
      result = result && getTagList()
          .equals(other.getTagList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TARGET_KIND_FIELD_NUMBER;
      hash = (53 * hash) + getTargetKind().hashCode();
      hash = (37 * hash) + TEST_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + testSize_;
      if (getTagCount() > 0) {
        hash = (37 * hash) + TAG_FIELD_NUMBER;
        hash = (53 * hash) + getTagList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Payload of the event indicating that the configurations for a target have
     * been identified. As with pattern expansion the main information is in the
     * chaining part: the id will contain the target that was configured and the
     * children id will contain the configured targets it was configured to.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.TargetConfigured}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.TargetConfigured)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfiguredOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TargetConfigured_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TargetConfigured_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.Builder.class);
      }

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

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

        testSize_ = 0;

        tag_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TargetConfigured_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.targetKind_ = targetKind_;
        result.testSize_ = testSize_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          tag_ = tag_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.tag_ = tag_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.getDefaultInstance()) return this;
        if (!other.getTargetKind().isEmpty()) {
          targetKind_ = other.targetKind_;
          onChanged();
        }
        if (other.testSize_ != 0) {
          setTestSizeValue(other.getTestSizeValue());
        }
        if (!other.tag_.isEmpty()) {
          if (tag_.isEmpty()) {
            tag_ = other.tag_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureTagIsMutable();
            tag_.addAll(other.tag_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private java.lang.Object targetKind_ = "";
      /**
       * <pre>
       * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
       * "generated file") where the completion is reported.
       * </pre>
       *
       * <code>string target_kind = 1;</code>
       */
      public java.lang.String getTargetKind() {
        java.lang.Object ref = targetKind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          targetKind_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
       * "generated file") where the completion is reported.
       * </pre>
       *
       * <code>string target_kind = 1;</code>
       */
      public com.google.protobuf.ByteString
          getTargetKindBytes() {
        java.lang.Object ref = targetKind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          targetKind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
       * "generated file") where the completion is reported.
       * </pre>
       *
       * <code>string target_kind = 1;</code>
       */
      public Builder setTargetKind(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        targetKind_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
       * "generated file") where the completion is reported.
       * </pre>
       *
       * <code>string target_kind = 1;</code>
       */
      public Builder clearTargetKind() {
        
        targetKind_ = getDefaultInstance().getTargetKind();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
       * "generated file") where the completion is reported.
       * </pre>
       *
       * <code>string target_kind = 1;</code>
       */
      public Builder setTargetKindBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        targetKind_ = value;
        onChanged();
        return this;
      }

      private int testSize_ = 0;
      /**
       * <pre>
       * The size of the test, if the target is a test target. Unset otherwise.
       * </pre>
       *
       * <code>.build_event_stream.TestSize test_size = 2;</code>
       */
      public int getTestSizeValue() {
        return testSize_;
      }
      /**
       * <pre>
       * The size of the test, if the target is a test target. Unset otherwise.
       * </pre>
       *
       * <code>.build_event_stream.TestSize test_size = 2;</code>
       */
      public Builder setTestSizeValue(int value) {
        testSize_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The size of the test, if the target is a test target. Unset otherwise.
       * </pre>
       *
       * <code>.build_event_stream.TestSize test_size = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize getTestSize() {
        @SuppressWarnings("deprecation")
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize result = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.valueOf(testSize_);
        return result == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * The size of the test, if the target is a test target. Unset otherwise.
       * </pre>
       *
       * <code>.build_event_stream.TestSize test_size = 2;</code>
       */
      public Builder setTestSize(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        testSize_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The size of the test, if the target is a test target. Unset otherwise.
       * </pre>
       *
       * <code>.build_event_stream.TestSize test_size = 2;</code>
       */
      public Builder clearTestSize() {
        
        testSize_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList tag_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTagIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          tag_ = new com.google.protobuf.LazyStringArrayList(tag_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <pre>
       * List of all tags associated with this target (for all possible
       * configurations).
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getTagList() {
        return tag_.getUnmodifiableView();
      }
      /**
       * <pre>
       * List of all tags associated with this target (for all possible
       * configurations).
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public int getTagCount() {
        return tag_.size();
      }
      /**
       * <pre>
       * List of all tags associated with this target (for all possible
       * configurations).
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public java.lang.String getTag(int index) {
        return tag_.get(index);
      }
      /**
       * <pre>
       * List of all tags associated with this target (for all possible
       * configurations).
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public com.google.protobuf.ByteString
          getTagBytes(int index) {
        return tag_.getByteString(index);
      }
      /**
       * <pre>
       * List of all tags associated with this target (for all possible
       * configurations).
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public Builder setTag(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagIsMutable();
        tag_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * List of all tags associated with this target (for all possible
       * configurations).
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public Builder addTag(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagIsMutable();
        tag_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * List of all tags associated with this target (for all possible
       * configurations).
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public Builder addAllTag(
          java.lang.Iterable<java.lang.String> values) {
        ensureTagIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, tag_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * List of all tags associated with this target (for all possible
       * configurations).
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public Builder clearTag() {
        tag_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * List of all tags associated with this target (for all possible
       * configurations).
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public Builder addTagBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureTagIsMutable();
        tag_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


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

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

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

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

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

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

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured 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>string name = 1;</code>
     */
    java.lang.String getName();
    /**
     * <pre>
     * identifier indicating the nature of the file (e.g., "stdout", "stderr")
     * </pre>
     *
     * <code>string name = 1;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

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

    /**
     * <pre>
     * The contents of the file, if they are guaranteed to be short.
     * </pre>
     *
     * <code>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 {
  private static final long serialVersionUID = 0L;
    // 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 this.unknownFields;
    }
    private File(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              name_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              fileCase_ = 2;
              file_ = s;
              break;
            }
            case 26: {
              fileCase_ = 3;
              file_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_File_descriptor;
    }

    @java.lang.Override
    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>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>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. The string is
     * encoded according to RFC2396.
     * </pre>
     *
     * <code>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. The string is
     * encoded according to RFC2396.
     * </pre>
     *
     * <code>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 contents of the file, if they are guaranteed to be short.
     * </pre>
     *
     * <code>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;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (fileCase_ == 2) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, file_);
      }
      if (fileCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(
              3, (com.google.protobuf.ByteString) file_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof 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:
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      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(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File parseFrom(
        java.nio.ByteBuffer 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(
        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);
    }

    @java.lang.Override
    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);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code 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;
      }

      @java.lang.Override
      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) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";

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

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

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof 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;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        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>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>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>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>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>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. The string is
       * encoded according to RFC2396.
       * </pre>
       *
       * <code>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. The string is
       * encoded according to RFC2396.
       * </pre>
       *
       * <code>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. The string is
       * encoded according to RFC2396.
       * </pre>
       *
       * <code>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. The string is
       * encoded according to RFC2396.
       * </pre>
       *
       * <code>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. The string is
       * encoded according to RFC2396.
       * </pre>
       *
       * <code>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 contents of the file, if they are guaranteed to be short.
       * </pre>
       *
       * <code>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 contents of the file, if they are guaranteed to be short.
       * </pre>
       *
       * <code>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 contents of the file, if they are guaranteed to be short.
       * </pre>
       *
       * <code>bytes contents = 3;</code>
       */
      public Builder clearContents() {
        if (fileCase_ == 3) {
          fileCase_ = 0;
          file_ = null;
          onChanged();
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope: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>() {
      @java.lang.Override
      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;
    }

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

  }

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

    /**
     * <pre>
     * Files that belong to this named set of files.
     * </pre>
     *
     * <code>repeated .build_event_stream.File files = 1;</code>
     */
    java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> 
        getFilesList();
    /**
     * <pre>
     * Files that belong to this named set of files.
     * </pre>
     *
     * <code>repeated .build_event_stream.File files = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getFiles(int index);
    /**
     * <pre>
     * Files that belong to this named set of files.
     * </pre>
     *
     * <code>repeated .build_event_stream.File files = 1;</code>
     */
    int getFilesCount();
    /**
     * <pre>
     * Files that belong to this named set of files.
     * </pre>
     *
     * <code>repeated .build_event_stream.File files = 1;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getFilesOrBuilderList();
    /**
     * <pre>
     * Files that belong to this named set of files.
     * </pre>
     *
     * <code>repeated .build_event_stream.File files = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getFilesOrBuilder(
        int index);

    /**
     * <pre>
     * Other named sets whose members also belong to this set.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
     */
    java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId> 
        getFileSetsList();
    /**
     * <pre>
     * Other named sets whose members also belong to this set.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getFileSets(int index);
    /**
     * <pre>
     * Other named sets whose members also belong to this set.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
     */
    int getFileSetsCount();
    /**
     * <pre>
     * Other named sets whose members also belong to this set.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> 
        getFileSetsOrBuilderList();
    /**
     * <pre>
     * Other named sets whose members also belong to this set.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder getFileSetsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Payload of a message to describe a set of files, usually build artifacts, to
   * be referred to later by their name. In this way, files that occur identically
   * as outputs of several targets have to be named only once.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.NamedSetOfFiles}
   */
  public  static final class NamedSetOfFiles extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.NamedSetOfFiles)
      NamedSetOfFilesOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use NamedSetOfFiles.newBuilder() to construct.
    private NamedSetOfFiles(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private NamedSetOfFiles() {
      files_ = java.util.Collections.emptyList();
      fileSets_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private NamedSetOfFiles(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                files_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>();
                mutable_bitField0_ |= 0x00000001;
              }
              files_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                fileSets_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId>();
                mutable_bitField0_ |= 0x00000002;
              }
              fileSets_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          files_ = java.util.Collections.unmodifiableList(files_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          fileSets_ = java.util.Collections.unmodifiableList(fileSets_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_NamedSetOfFiles_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_NamedSetOfFiles_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.Builder.class);
    }

    public static final int FILES_FIELD_NUMBER = 1;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> files_;
    /**
     * <pre>
     * Files that belong to this named set of files.
     * </pre>
     *
     * <code>repeated .build_event_stream.File files = 1;</code>
     */
    public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getFilesList() {
      return files_;
    }
    /**
     * <pre>
     * Files that belong to this named set of files.
     * </pre>
     *
     * <code>repeated .build_event_stream.File files = 1;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getFilesOrBuilderList() {
      return files_;
    }
    /**
     * <pre>
     * Files that belong to this named set of files.
     * </pre>
     *
     * <code>repeated .build_event_stream.File files = 1;</code>
     */
    public int getFilesCount() {
      return files_.size();
    }
    /**
     * <pre>
     * Files that belong to this named set of files.
     * </pre>
     *
     * <code>repeated .build_event_stream.File files = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getFiles(int index) {
      return files_.get(index);
    }
    /**
     * <pre>
     * Files that belong to this named set of files.
     * </pre>
     *
     * <code>repeated .build_event_stream.File files = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getFilesOrBuilder(
        int index) {
      return files_.get(index);
    }

    public static final int FILE_SETS_FIELD_NUMBER = 2;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId> fileSets_;
    /**
     * <pre>
     * Other named sets whose members also belong to this set.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
     */
    public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId> getFileSetsList() {
      return fileSets_;
    }
    /**
     * <pre>
     * Other named sets whose members also belong to this set.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> 
        getFileSetsOrBuilderList() {
      return fileSets_;
    }
    /**
     * <pre>
     * Other named sets whose members also belong to this set.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
     */
    public int getFileSetsCount() {
      return fileSets_.size();
    }
    /**
     * <pre>
     * Other named sets whose members also belong to this set.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getFileSets(int index) {
      return fileSets_.get(index);
    }
    /**
     * <pre>
     * Other named sets whose members also belong to this set.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder getFileSetsOrBuilder(
        int index) {
      return fileSets_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < files_.size(); i++) {
        output.writeMessage(1, files_.get(i));
      }
      for (int i = 0; i < fileSets_.size(); i++) {
        output.writeMessage(2, fileSets_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

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

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

      boolean result = true;
      result = result && getFilesList()
          .equals(other.getFilesList());
      result = result && getFileSetsList()
          .equals(other.getFileSetsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getFilesCount() > 0) {
        hash = (37 * hash) + FILES_FIELD_NUMBER;
        hash = (53 * hash) + getFilesList().hashCode();
      }
      if (getFileSetsCount() > 0) {
        hash = (37 * hash) + FILE_SETS_FIELD_NUMBER;
        hash = (53 * hash) + getFileSetsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Payload of a message to describe a set of files, usually build artifacts, to
     * be referred to later by their name. In this way, files that occur identically
     * as outputs of several targets have to be named only once.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.NamedSetOfFiles}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.NamedSetOfFiles)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFilesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_NamedSetOfFiles_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_NamedSetOfFiles_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getFilesFieldBuilder();
          getFileSetsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (filesBuilder_ == null) {
          files_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          filesBuilder_.clear();
        }
        if (fileSetsBuilder_ == null) {
          fileSets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          fileSetsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_NamedSetOfFiles_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles(this);
        int from_bitField0_ = bitField0_;
        if (filesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            files_ = java.util.Collections.unmodifiableList(files_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.files_ = files_;
        } else {
          result.files_ = filesBuilder_.build();
        }
        if (fileSetsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            fileSets_ = java.util.Collections.unmodifiableList(fileSets_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.fileSets_ = fileSets_;
        } else {
          result.fileSets_ = fileSetsBuilder_.build();
        }
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.getDefaultInstance()) return this;
        if (filesBuilder_ == null) {
          if (!other.files_.isEmpty()) {
            if (files_.isEmpty()) {
              files_ = other.files_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureFilesIsMutable();
              files_.addAll(other.files_);
            }
            onChanged();
          }
        } else {
          if (!other.files_.isEmpty()) {
            if (filesBuilder_.isEmpty()) {
              filesBuilder_.dispose();
              filesBuilder_ = null;
              files_ = other.files_;
              bitField0_ = (bitField0_ & ~0x00000001);
              filesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFilesFieldBuilder() : null;
            } else {
              filesBuilder_.addAllMessages(other.files_);
            }
          }
        }
        if (fileSetsBuilder_ == null) {
          if (!other.fileSets_.isEmpty()) {
            if (fileSets_.isEmpty()) {
              fileSets_ = other.fileSets_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureFileSetsIsMutable();
              fileSets_.addAll(other.fileSets_);
            }
            onChanged();
          }
        } else {
          if (!other.fileSets_.isEmpty()) {
            if (fileSetsBuilder_.isEmpty()) {
              fileSetsBuilder_.dispose();
              fileSetsBuilder_ = null;
              fileSets_ = other.fileSets_;
              bitField0_ = (bitField0_ & ~0x00000002);
              fileSetsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFileSetsFieldBuilder() : null;
            } else {
              fileSetsBuilder_.addAllMessages(other.fileSets_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

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

      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> filesBuilder_;

      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getFilesList() {
        if (filesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(files_);
        } else {
          return filesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public int getFilesCount() {
        if (filesBuilder_ == null) {
          return files_.size();
        } else {
          return filesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getFiles(int index) {
        if (filesBuilder_ == null) {
          return files_.get(index);
        } else {
          return filesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public Builder setFiles(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (filesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFilesIsMutable();
          files_.set(index, value);
          onChanged();
        } else {
          filesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public Builder setFiles(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (filesBuilder_ == null) {
          ensureFilesIsMutable();
          files_.set(index, builderForValue.build());
          onChanged();
        } else {
          filesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public Builder addFiles(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (filesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFilesIsMutable();
          files_.add(value);
          onChanged();
        } else {
          filesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public Builder addFiles(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (filesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFilesIsMutable();
          files_.add(index, value);
          onChanged();
        } else {
          filesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public Builder addFiles(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (filesBuilder_ == null) {
          ensureFilesIsMutable();
          files_.add(builderForValue.build());
          onChanged();
        } else {
          filesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public Builder addFiles(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (filesBuilder_ == null) {
          ensureFilesIsMutable();
          files_.add(index, builderForValue.build());
          onChanged();
        } else {
          filesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public Builder addAllFiles(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> values) {
        if (filesBuilder_ == null) {
          ensureFilesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, files_);
          onChanged();
        } else {
          filesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public Builder clearFiles() {
        if (filesBuilder_ == null) {
          files_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          filesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public Builder removeFiles(int index) {
        if (filesBuilder_ == null) {
          ensureFilesIsMutable();
          files_.remove(index);
          onChanged();
        } else {
          filesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder getFilesBuilder(
          int index) {
        return getFilesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getFilesOrBuilder(
          int index) {
        if (filesBuilder_ == null) {
          return files_.get(index);  } else {
          return filesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
           getFilesOrBuilderList() {
        if (filesBuilder_ != null) {
          return filesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(files_);
        }
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addFilesBuilder() {
        return getFilesFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addFilesBuilder(
          int index) {
        return getFilesFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <pre>
       * Files that belong to this named set of files.
       * </pre>
       *
       * <code>repeated .build_event_stream.File files = 1;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder> 
           getFilesBuilderList() {
        return getFilesFieldBuilder().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> 
          getFilesFieldBuilder() {
        if (filesBuilder_ == null) {
          filesBuilder_ = 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>(
                  files_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          files_ = null;
        }
        return filesBuilder_;
      }

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> fileSetsBuilder_;

      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId> getFileSetsList() {
        if (fileSetsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(fileSets_);
        } else {
          return fileSetsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public int getFileSetsCount() {
        if (fileSetsBuilder_ == null) {
          return fileSets_.size();
        } else {
          return fileSetsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getFileSets(int index) {
        if (fileSetsBuilder_ == null) {
          return fileSets_.get(index);
        } else {
          return fileSetsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public Builder setFileSets(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId value) {
        if (fileSetsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFileSetsIsMutable();
          fileSets_.set(index, value);
          onChanged();
        } else {
          fileSetsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public Builder setFileSets(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder builderForValue) {
        if (fileSetsBuilder_ == null) {
          ensureFileSetsIsMutable();
          fileSets_.set(index, builderForValue.build());
          onChanged();
        } else {
          fileSetsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public Builder addFileSets(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId value) {
        if (fileSetsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFileSetsIsMutable();
          fileSets_.add(value);
          onChanged();
        } else {
          fileSetsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public Builder addFileSets(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId value) {
        if (fileSetsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFileSetsIsMutable();
          fileSets_.add(index, value);
          onChanged();
        } else {
          fileSetsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public Builder addFileSets(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder builderForValue) {
        if (fileSetsBuilder_ == null) {
          ensureFileSetsIsMutable();
          fileSets_.add(builderForValue.build());
          onChanged();
        } else {
          fileSetsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public Builder addFileSets(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder builderForValue) {
        if (fileSetsBuilder_ == null) {
          ensureFileSetsIsMutable();
          fileSets_.add(index, builderForValue.build());
          onChanged();
        } else {
          fileSetsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public Builder addAllFileSets(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId> values) {
        if (fileSetsBuilder_ == null) {
          ensureFileSetsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, fileSets_);
          onChanged();
        } else {
          fileSetsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public Builder clearFileSets() {
        if (fileSetsBuilder_ == null) {
          fileSets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          fileSetsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public Builder removeFileSets(int index) {
        if (fileSetsBuilder_ == null) {
          ensureFileSetsIsMutable();
          fileSets_.remove(index);
          onChanged();
        } else {
          fileSetsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder getFileSetsBuilder(
          int index) {
        return getFileSetsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder getFileSetsOrBuilder(
          int index) {
        if (fileSetsBuilder_ == null) {
          return fileSets_.get(index);  } else {
          return fileSetsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> 
           getFileSetsOrBuilderList() {
        if (fileSetsBuilder_ != null) {
          return fileSetsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(fileSets_);
        }
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder addFileSetsBuilder() {
        return getFileSetsFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance());
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder addFileSetsBuilder(
          int index) {
        return getFileSetsFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance());
      }
      /**
       * <pre>
       * Other named sets whose members also belong to this set.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 2;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder> 
           getFileSetsBuilderList() {
        return getFileSetsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> 
          getFileSetsFieldBuilder() {
        if (fileSetsBuilder_ == null) {
          fileSetsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder>(
                  fileSets_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          fileSets_ = null;
        }
        return fileSetsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


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

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

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

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

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

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

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

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

    /**
     * <pre>
     * The mnemonic of the action that was executed
     * </pre>
     *
     * <code>string type = 8;</code>
     */
    java.lang.String getType();
    /**
     * <pre>
     * The mnemonic of the action that was executed
     * </pre>
     *
     * <code>string type = 8;</code>
     */
    com.google.protobuf.ByteString
        getTypeBytes();

    /**
     * <pre>
     * The exit code of the action, if it is available.
     * </pre>
     *
     * <code>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>.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>.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>.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>.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>.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>.build_event_stream.File stderr = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getStderrOrBuilder();

    /**
     * <pre>
     * Deprecated. This field is now present on ActionCompletedId.
     * </pre>
     *
     * <code>string label = 5 [deprecated = true];</code>
     */
    @java.lang.Deprecated java.lang.String getLabel();
    /**
     * <pre>
     * Deprecated. This field is now present on ActionCompletedId.
     * </pre>
     *
     * <code>string label = 5 [deprecated = true];</code>
     */
    @java.lang.Deprecated com.google.protobuf.ByteString
        getLabelBytes();

    /**
     * <pre>
     * Deprecated. This field is now present on ActionCompletedId.
     * </pre>
     *
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
     */
    @java.lang.Deprecated boolean hasConfiguration();
    /**
     * <pre>
     * Deprecated. This field is now present on ActionCompletedId.
     * </pre>
     *
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
     */
    @java.lang.Deprecated com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration();
    /**
     * <pre>
     * Deprecated. This field is now present on ActionCompletedId.
     * </pre>
     *
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
     */
    @java.lang.Deprecated com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder();

    /**
     * <pre>
     * Primary output; only provided for successful actions.
     * </pre>
     *
     * <code>.build_event_stream.File primary_output = 6;</code>
     */
    boolean hasPrimaryOutput();
    /**
     * <pre>
     * Primary output; only provided for successful actions.
     * </pre>
     *
     * <code>.build_event_stream.File primary_output = 6;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getPrimaryOutput();
    /**
     * <pre>
     * Primary output; only provided for successful actions.
     * </pre>
     *
     * <code>.build_event_stream.File primary_output = 6;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getPrimaryOutputOrBuilder();

    /**
     * <pre>
     * The command-line of the action, if the action is a command.
     * </pre>
     *
     * <code>repeated string command_line = 9;</code>
     */
    java.util.List<java.lang.String>
        getCommandLineList();
    /**
     * <pre>
     * The command-line of the action, if the action is a command.
     * </pre>
     *
     * <code>repeated string command_line = 9;</code>
     */
    int getCommandLineCount();
    /**
     * <pre>
     * The command-line of the action, if the action is a command.
     * </pre>
     *
     * <code>repeated string command_line = 9;</code>
     */
    java.lang.String getCommandLine(int index);
    /**
     * <pre>
     * The command-line of the action, if the action is a command.
     * </pre>
     *
     * <code>repeated string command_line = 9;</code>
     */
    com.google.protobuf.ByteString
        getCommandLineBytes(int index);
  }
  /**
   * <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 must 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 {
  private static final long serialVersionUID = 0L;
    // Use ActionExecuted.newBuilder() to construct.
    private ActionExecuted(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ActionExecuted() {
      success_ = false;
      type_ = "";
      exitCode_ = 0;
      label_ = "";
      commandLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ActionExecuted(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 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;
            }
            case 50: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder subBuilder = null;
              if (primaryOutput_ != null) {
                subBuilder = primaryOutput_.toBuilder();
              }
              primaryOutput_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(primaryOutput_);
                primaryOutput_ = subBuilder.buildPartial();
              }

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

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

              type_ = s;
              break;
            }
            case 74: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                commandLine_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000100;
              }
              commandLine_.add(s);
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
          commandLine_ = commandLine_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        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;
    }

    @java.lang.Override
    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);
    }

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

    public static final int TYPE_FIELD_NUMBER = 8;
    private volatile java.lang.Object type_;
    /**
     * <pre>
     * The mnemonic of the action that was executed
     * </pre>
     *
     * <code>string type = 8;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        type_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The mnemonic of the action that was executed
     * </pre>
     *
     * <code>string type = 8;</code>
     */
    public com.google.protobuf.ByteString
        getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    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>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>.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>.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>.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>.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>.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>.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>
     * Deprecated. This field is now present on ActionCompletedId.
     * </pre>
     *
     * <code>string label = 5 [deprecated = true];</code>
     */
    @java.lang.Deprecated 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>
     * Deprecated. This field is now present on ActionCompletedId.
     * </pre>
     *
     * <code>string label = 5 [deprecated = true];</code>
     */
    @java.lang.Deprecated 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;
      }
    }

    public static final int CONFIGURATION_FIELD_NUMBER = 7;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_;
    /**
     * <pre>
     * Deprecated. This field is now present on ActionCompletedId.
     * </pre>
     *
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
     */
    @java.lang.Deprecated public boolean hasConfiguration() {
      return configuration_ != null;
    }
    /**
     * <pre>
     * Deprecated. This field is now present on ActionCompletedId.
     * </pre>
     *
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
     */
    @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
      return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
    }
    /**
     * <pre>
     * Deprecated. This field is now present on ActionCompletedId.
     * </pre>
     *
     * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
     */
    @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
      return getConfiguration();
    }

    public static final int PRIMARY_OUTPUT_FIELD_NUMBER = 6;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File primaryOutput_;
    /**
     * <pre>
     * Primary output; only provided for successful actions.
     * </pre>
     *
     * <code>.build_event_stream.File primary_output = 6;</code>
     */
    public boolean hasPrimaryOutput() {
      return primaryOutput_ != null;
    }
    /**
     * <pre>
     * Primary output; only provided for successful actions.
     * </pre>
     *
     * <code>.build_event_stream.File primary_output = 6;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getPrimaryOutput() {
      return primaryOutput_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance() : primaryOutput_;
    }
    /**
     * <pre>
     * Primary output; only provided for successful actions.
     * </pre>
     *
     * <code>.build_event_stream.File primary_output = 6;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getPrimaryOutputOrBuilder() {
      return getPrimaryOutput();
    }

    public static final int COMMAND_LINE_FIELD_NUMBER = 9;
    private com.google.protobuf.LazyStringList commandLine_;
    /**
     * <pre>
     * The command-line of the action, if the action is a command.
     * </pre>
     *
     * <code>repeated string command_line = 9;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getCommandLineList() {
      return commandLine_;
    }
    /**
     * <pre>
     * The command-line of the action, if the action is a command.
     * </pre>
     *
     * <code>repeated string command_line = 9;</code>
     */
    public int getCommandLineCount() {
      return commandLine_.size();
    }
    /**
     * <pre>
     * The command-line of the action, if the action is a command.
     * </pre>
     *
     * <code>repeated string command_line = 9;</code>
     */
    public java.lang.String getCommandLine(int index) {
      return commandLine_.get(index);
    }
    /**
     * <pre>
     * The command-line of the action, if the action is a command.
     * </pre>
     *
     * <code>repeated string command_line = 9;</code>
     */
    public com.google.protobuf.ByteString
        getCommandLineBytes(int index) {
      return commandLine_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (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_);
      }
      if (primaryOutput_ != null) {
        output.writeMessage(6, getPrimaryOutput());
      }
      if (configuration_ != null) {
        output.writeMessage(7, getConfiguration());
      }
      if (!getTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, type_);
      }
      for (int i = 0; i < commandLine_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, commandLine_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    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_);
      }
      if (primaryOutput_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getPrimaryOutput());
      }
      if (configuration_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getConfiguration());
      }
      if (!getTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, type_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < commandLine_.size(); i++) {
          dataSize += computeStringSizeNoTag(commandLine_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCommandLineList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof 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 && getType()
          .equals(other.getType());
      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());
      result = result && (hasConfiguration() == other.hasConfiguration());
      if (hasConfiguration()) {
        result = result && getConfiguration()
            .equals(other.getConfiguration());
      }
      result = result && (hasPrimaryOutput() == other.hasPrimaryOutput());
      if (hasPrimaryOutput()) {
        result = result && getPrimaryOutput()
            .equals(other.getPrimaryOutput());
      }
      result = result && getCommandLineList()
          .equals(other.getCommandLineList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getSuccess());
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getType().hashCode();
      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();
      if (hasConfiguration()) {
        hash = (37 * hash) + CONFIGURATION_FIELD_NUMBER;
        hash = (53 * hash) + getConfiguration().hashCode();
      }
      if (hasPrimaryOutput()) {
        hash = (37 * hash) + PRIMARY_OUTPUT_FIELD_NUMBER;
        hash = (53 * hash) + getPrimaryOutput().hashCode();
      }
      if (getCommandLineCount() > 0) {
        hash = (37 * hash) + COMMAND_LINE_FIELD_NUMBER;
        hash = (53 * hash) + getCommandLineList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted parseFrom(
        java.nio.ByteBuffer 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(
        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);
    }

    @java.lang.Override
    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);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <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 must 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;
      }

      @java.lang.Override
      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) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        success_ = false;

        type_ = "";

        exitCode_ = 0;

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

        if (configurationBuilder_ == null) {
          configuration_ = null;
        } else {
          configuration_ = null;
          configurationBuilder_ = null;
        }
        if (primaryOutputBuilder_ == null) {
          primaryOutput_ = null;
        } else {
          primaryOutput_ = null;
          primaryOutputBuilder_ = null;
        }
        commandLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

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

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.success_ = success_;
        result.type_ = type_;
        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_;
        if (configurationBuilder_ == null) {
          result.configuration_ = configuration_;
        } else {
          result.configuration_ = configurationBuilder_.build();
        }
        if (primaryOutputBuilder_ == null) {
          result.primaryOutput_ = primaryOutput_;
        } else {
          result.primaryOutput_ = primaryOutputBuilder_.build();
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          commandLine_ = commandLine_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000100);
        }
        result.commandLine_ = commandLine_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof 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.getType().isEmpty()) {
          type_ = other.type_;
          onChanged();
        }
        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();
        }
        if (other.hasConfiguration()) {
          mergeConfiguration(other.getConfiguration());
        }
        if (other.hasPrimaryOutput()) {
          mergePrimaryOutput(other.getPrimaryOutput());
        }
        if (!other.commandLine_.isEmpty()) {
          if (commandLine_.isEmpty()) {
            commandLine_ = other.commandLine_;
            bitField0_ = (bitField0_ & ~0x00000100);
          } else {
            ensureCommandLineIsMutable();
            commandLine_.addAll(other.commandLine_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        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 int bitField0_;

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

      private java.lang.Object type_ = "";
      /**
       * <pre>
       * The mnemonic of the action that was executed
       * </pre>
       *
       * <code>string type = 8;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          type_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The mnemonic of the action that was executed
       * </pre>
       *
       * <code>string type = 8;</code>
       */
      public com.google.protobuf.ByteString
          getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The mnemonic of the action that was executed
       * </pre>
       *
       * <code>string type = 8;</code>
       */
      public Builder setType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The mnemonic of the action that was executed
       * </pre>
       *
       * <code>string type = 8;</code>
       */
      public Builder clearType() {
        
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The mnemonic of the action that was executed
       * </pre>
       *
       * <code>string type = 8;</code>
       */
      public Builder setTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        type_ = value;
        onChanged();
        return this;
      }

      private int exitCode_ ;
      /**
       * <pre>
       * The exit code of the action, if it is available.
       * </pre>
       *
       * <code>int32 exit_code = 2;</code>
       */
      public int getExitCode() {
        return exitCode_;
      }
      /**
       * <pre>
       * The exit code of the action, if it is available.
       * </pre>
       *
       * <code>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>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>.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>.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>.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>.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>.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>.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>.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>.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>.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>.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>.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>.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>.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>.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>.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>.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>.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>.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>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>string label = 5 [deprecated = true];</code>
       */
      @java.lang.Deprecated 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>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>string label = 5 [deprecated = true];</code>
       */
      @java.lang.Deprecated 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>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>string label = 5 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setLabel(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        label_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>string label = 5 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder clearLabel() {
        
        label_ = getDefaultInstance().getLabel();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>string label = 5 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setLabelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        label_ = value;
        onChanged();
        return this;
      }

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId configuration_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> configurationBuilder_;
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
       */
      @java.lang.Deprecated public boolean hasConfiguration() {
        return configurationBuilder_ != null || configuration_ != null;
      }
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId getConfiguration() {
        if (configurationBuilder_ == null) {
          return configuration_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
        } else {
          return configurationBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
        if (configurationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configuration_ = value;
          onChanged();
        } else {
          configurationBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setConfiguration(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder builderForValue) {
        if (configurationBuilder_ == null) {
          configuration_ = builderForValue.build();
          onChanged();
        } else {
          configurationBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder mergeConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId value) {
        if (configurationBuilder_ == null) {
          if (configuration_ != null) {
            configuration_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.newBuilder(configuration_).mergeFrom(value).buildPartial();
          } else {
            configuration_ = value;
          }
          onChanged();
        } else {
          configurationBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder clearConfiguration() {
        if (configurationBuilder_ == null) {
          configuration_ = null;
          onChanged();
        } else {
          configuration_ = null;
          configurationBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder getConfigurationBuilder() {
        
        onChanged();
        return getConfigurationFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder getConfigurationOrBuilder() {
        if (configurationBuilder_ != null) {
          return configurationBuilder_.getMessageOrBuilder();
        } else {
          return configuration_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.getDefaultInstance() : configuration_;
        }
      }
      /**
       * <pre>
       * Deprecated. This field is now present on ActionCompletedId.
       * </pre>
       *
       * <code>.build_event_stream.BuildEventId.ConfigurationId configuration = 7 [deprecated = true];</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder> 
          getConfigurationFieldBuilder() {
        if (configurationBuilder_ == null) {
          configurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.ConfigurationIdOrBuilder>(
                  getConfiguration(),
                  getParentForChildren(),
                  isClean());
          configuration_ = null;
        }
        return configurationBuilder_;
      }

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File primaryOutput_ = 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> primaryOutputBuilder_;
      /**
       * <pre>
       * Primary output; only provided for successful actions.
       * </pre>
       *
       * <code>.build_event_stream.File primary_output = 6;</code>
       */
      public boolean hasPrimaryOutput() {
        return primaryOutputBuilder_ != null || primaryOutput_ != null;
      }
      /**
       * <pre>
       * Primary output; only provided for successful actions.
       * </pre>
       *
       * <code>.build_event_stream.File primary_output = 6;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getPrimaryOutput() {
        if (primaryOutputBuilder_ == null) {
          return primaryOutput_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance() : primaryOutput_;
        } else {
          return primaryOutputBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Primary output; only provided for successful actions.
       * </pre>
       *
       * <code>.build_event_stream.File primary_output = 6;</code>
       */
      public Builder setPrimaryOutput(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (primaryOutputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          primaryOutput_ = value;
          onChanged();
        } else {
          primaryOutputBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Primary output; only provided for successful actions.
       * </pre>
       *
       * <code>.build_event_stream.File primary_output = 6;</code>
       */
      public Builder setPrimaryOutput(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (primaryOutputBuilder_ == null) {
          primaryOutput_ = builderForValue.build();
          onChanged();
        } else {
          primaryOutputBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Primary output; only provided for successful actions.
       * </pre>
       *
       * <code>.build_event_stream.File primary_output = 6;</code>
       */
      public Builder mergePrimaryOutput(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (primaryOutputBuilder_ == null) {
          if (primaryOutput_ != null) {
            primaryOutput_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.newBuilder(primaryOutput_).mergeFrom(value).buildPartial();
          } else {
            primaryOutput_ = value;
          }
          onChanged();
        } else {
          primaryOutputBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Primary output; only provided for successful actions.
       * </pre>
       *
       * <code>.build_event_stream.File primary_output = 6;</code>
       */
      public Builder clearPrimaryOutput() {
        if (primaryOutputBuilder_ == null) {
          primaryOutput_ = null;
          onChanged();
        } else {
          primaryOutput_ = null;
          primaryOutputBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Primary output; only provided for successful actions.
       * </pre>
       *
       * <code>.build_event_stream.File primary_output = 6;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder getPrimaryOutputBuilder() {
        
        onChanged();
        return getPrimaryOutputFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Primary output; only provided for successful actions.
       * </pre>
       *
       * <code>.build_event_stream.File primary_output = 6;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getPrimaryOutputOrBuilder() {
        if (primaryOutputBuilder_ != null) {
          return primaryOutputBuilder_.getMessageOrBuilder();
        } else {
          return primaryOutput_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance() : primaryOutput_;
        }
      }
      /**
       * <pre>
       * Primary output; only provided for successful actions.
       * </pre>
       *
       * <code>.build_event_stream.File primary_output = 6;</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> 
          getPrimaryOutputFieldBuilder() {
        if (primaryOutputBuilder_ == null) {
          primaryOutputBuilder_ = 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>(
                  getPrimaryOutput(),
                  getParentForChildren(),
                  isClean());
          primaryOutput_ = null;
        }
        return primaryOutputBuilder_;
      }

      private com.google.protobuf.LazyStringList commandLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureCommandLineIsMutable() {
        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
          commandLine_ = new com.google.protobuf.LazyStringArrayList(commandLine_);
          bitField0_ |= 0x00000100;
         }
      }
      /**
       * <pre>
       * The command-line of the action, if the action is a command.
       * </pre>
       *
       * <code>repeated string command_line = 9;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getCommandLineList() {
        return commandLine_.getUnmodifiableView();
      }
      /**
       * <pre>
       * The command-line of the action, if the action is a command.
       * </pre>
       *
       * <code>repeated string command_line = 9;</code>
       */
      public int getCommandLineCount() {
        return commandLine_.size();
      }
      /**
       * <pre>
       * The command-line of the action, if the action is a command.
       * </pre>
       *
       * <code>repeated string command_line = 9;</code>
       */
      public java.lang.String getCommandLine(int index) {
        return commandLine_.get(index);
      }
      /**
       * <pre>
       * The command-line of the action, if the action is a command.
       * </pre>
       *
       * <code>repeated string command_line = 9;</code>
       */
      public com.google.protobuf.ByteString
          getCommandLineBytes(int index) {
        return commandLine_.getByteString(index);
      }
      /**
       * <pre>
       * The command-line of the action, if the action is a command.
       * </pre>
       *
       * <code>repeated string command_line = 9;</code>
       */
      public Builder setCommandLine(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCommandLineIsMutable();
        commandLine_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The command-line of the action, if the action is a command.
       * </pre>
       *
       * <code>repeated string command_line = 9;</code>
       */
      public Builder addCommandLine(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCommandLineIsMutable();
        commandLine_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The command-line of the action, if the action is a command.
       * </pre>
       *
       * <code>repeated string command_line = 9;</code>
       */
      public Builder addAllCommandLine(
          java.lang.Iterable<java.lang.String> values) {
        ensureCommandLineIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, commandLine_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The command-line of the action, if the action is a command.
       * </pre>
       *
       * <code>repeated string command_line = 9;</code>
       */
      public Builder clearCommandLine() {
        commandLine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The command-line of the action, if the action is a command.
       * </pre>
       *
       * <code>repeated string command_line = 9;</code>
       */
      public Builder addCommandLineBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureCommandLineIsMutable();
        commandLine_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope: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>() {
      @java.lang.Override
      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;
    }

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

  }

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

    /**
     * <pre>
     * Name of the output group
     * </pre>
     *
     * <code>string name = 1;</code>
     */
    java.lang.String getName();
    /**
     * <pre>
     * Name of the output group
     * </pre>
     *
     * <code>string name = 1;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <pre>
     * List of file sets that belong to this output group as well.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
     */
    java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId> 
        getFileSetsList();
    /**
     * <pre>
     * List of file sets that belong to this output group as well.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getFileSets(int index);
    /**
     * <pre>
     * List of file sets that belong to this output group as well.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
     */
    int getFileSetsCount();
    /**
     * <pre>
     * List of file sets that belong to this output group as well.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> 
        getFileSetsOrBuilderList();
    /**
     * <pre>
     * List of file sets that belong to this output group as well.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder getFileSetsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Collection of all output files belonging to that output group.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.OutputGroup}
   */
  public  static final class OutputGroup extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.OutputGroup)
      OutputGroupOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OutputGroup.newBuilder() to construct.
    private OutputGroup(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OutputGroup() {
      name_ = "";
      fileSets_ = java.util.Collections.emptyList();
    }

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

              name_ = s;
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                fileSets_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId>();
                mutable_bitField0_ |= 0x00000002;
              }
              fileSets_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          fileSets_ = java.util.Collections.unmodifiableList(fileSets_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_OutputGroup_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_OutputGroup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder.class);
    }

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

    public static final int FILE_SETS_FIELD_NUMBER = 3;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId> fileSets_;
    /**
     * <pre>
     * List of file sets that belong to this output group as well.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
     */
    public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId> getFileSetsList() {
      return fileSets_;
    }
    /**
     * <pre>
     * List of file sets that belong to this output group as well.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> 
        getFileSetsOrBuilderList() {
      return fileSets_;
    }
    /**
     * <pre>
     * List of file sets that belong to this output group as well.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
     */
    public int getFileSetsCount() {
      return fileSets_.size();
    }
    /**
     * <pre>
     * List of file sets that belong to this output group as well.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getFileSets(int index) {
      return fileSets_.get(index);
    }
    /**
     * <pre>
     * List of file sets that belong to this output group as well.
     * </pre>
     *
     * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder getFileSetsOrBuilder(
        int index) {
      return fileSets_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      for (int i = 0; i < fileSets_.size(); i++) {
        output.writeMessage(3, fileSets_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      for (int i = 0; i < fileSets_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, fileSets_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

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

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

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

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Collection of all output files belonging to that output group.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.OutputGroup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.OutputGroup)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_OutputGroup_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_OutputGroup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder.class);
      }

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

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

        if (fileSetsBuilder_ == null) {
          fileSets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          fileSetsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_OutputGroup_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.name_ = name_;
        if (fileSetsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            fileSets_ = java.util.Collections.unmodifiableList(fileSets_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.fileSets_ = fileSets_;
        } else {
          result.fileSets_ = fileSetsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (fileSetsBuilder_ == null) {
          if (!other.fileSets_.isEmpty()) {
            if (fileSets_.isEmpty()) {
              fileSets_ = other.fileSets_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureFileSetsIsMutable();
              fileSets_.addAll(other.fileSets_);
            }
            onChanged();
          }
        } else {
          if (!other.fileSets_.isEmpty()) {
            if (fileSetsBuilder_.isEmpty()) {
              fileSetsBuilder_.dispose();
              fileSetsBuilder_ = null;
              fileSets_ = other.fileSets_;
              bitField0_ = (bitField0_ & ~0x00000002);
              fileSetsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFileSetsFieldBuilder() : null;
            } else {
              fileSetsBuilder_.addAllMessages(other.fileSets_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

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

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> fileSetsBuilder_;

      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId> getFileSetsList() {
        if (fileSetsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(fileSets_);
        } else {
          return fileSetsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public int getFileSetsCount() {
        if (fileSetsBuilder_ == null) {
          return fileSets_.size();
        } else {
          return fileSetsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId getFileSets(int index) {
        if (fileSetsBuilder_ == null) {
          return fileSets_.get(index);
        } else {
          return fileSetsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public Builder setFileSets(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId value) {
        if (fileSetsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFileSetsIsMutable();
          fileSets_.set(index, value);
          onChanged();
        } else {
          fileSetsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public Builder setFileSets(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder builderForValue) {
        if (fileSetsBuilder_ == null) {
          ensureFileSetsIsMutable();
          fileSets_.set(index, builderForValue.build());
          onChanged();
        } else {
          fileSetsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public Builder addFileSets(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId value) {
        if (fileSetsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFileSetsIsMutable();
          fileSets_.add(value);
          onChanged();
        } else {
          fileSetsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public Builder addFileSets(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId value) {
        if (fileSetsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFileSetsIsMutable();
          fileSets_.add(index, value);
          onChanged();
        } else {
          fileSetsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public Builder addFileSets(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder builderForValue) {
        if (fileSetsBuilder_ == null) {
          ensureFileSetsIsMutable();
          fileSets_.add(builderForValue.build());
          onChanged();
        } else {
          fileSetsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public Builder addFileSets(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder builderForValue) {
        if (fileSetsBuilder_ == null) {
          ensureFileSetsIsMutable();
          fileSets_.add(index, builderForValue.build());
          onChanged();
        } else {
          fileSetsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public Builder addAllFileSets(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId> values) {
        if (fileSetsBuilder_ == null) {
          ensureFileSetsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, fileSets_);
          onChanged();
        } else {
          fileSetsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public Builder clearFileSets() {
        if (fileSetsBuilder_ == null) {
          fileSets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          fileSetsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public Builder removeFileSets(int index) {
        if (fileSetsBuilder_ == null) {
          ensureFileSetsIsMutable();
          fileSets_.remove(index);
          onChanged();
        } else {
          fileSetsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder getFileSetsBuilder(
          int index) {
        return getFileSetsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder getFileSetsOrBuilder(
          int index) {
        if (fileSetsBuilder_ == null) {
          return fileSets_.get(index);  } else {
          return fileSetsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> 
           getFileSetsOrBuilderList() {
        if (fileSetsBuilder_ != null) {
          return fileSetsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(fileSets_);
        }
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder addFileSetsBuilder() {
        return getFileSetsFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance());
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder addFileSetsBuilder(
          int index) {
        return getFileSetsFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.getDefaultInstance());
      }
      /**
       * <pre>
       * List of file sets that belong to this output group as well.
       * </pre>
       *
       * <code>repeated .build_event_stream.BuildEventId.NamedSetOfFilesId file_sets = 3;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder> 
           getFileSetsBuilderList() {
        return getFileSetsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder> 
          getFileSetsFieldBuilder() {
        if (fileSetsBuilder_ == null) {
          fileSetsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesIdOrBuilder>(
                  fileSets_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          fileSets_ = null;
        }
        return fileSetsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


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

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

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

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

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

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

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

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

    /**
     * <pre>
     * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
     * "generated file") where the completion is reported.
     * Deprecated: use the target_kind field in TargetConfigured instead.
     * </pre>
     *
     * <code>string target_kind = 5 [deprecated = true];</code>
     */
    @java.lang.Deprecated java.lang.String getTargetKind();
    /**
     * <pre>
     * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
     * "generated file") where the completion is reported.
     * Deprecated: use the target_kind field in TargetConfigured instead.
     * </pre>
     *
     * <code>string target_kind = 5 [deprecated = true];</code>
     */
    @java.lang.Deprecated com.google.protobuf.ByteString
        getTargetKindBytes();

    /**
     * <pre>
     * The size of the test, if the target is a test target. Unset otherwise.
     * Deprecated: use the test_size field in TargetConfigured instead.
     * </pre>
     *
     * <code>.build_event_stream.TestSize test_size = 6 [deprecated = true];</code>
     */
    @java.lang.Deprecated int getTestSizeValue();
    /**
     * <pre>
     * The size of the test, if the target is a test target. Unset otherwise.
     * Deprecated: use the test_size field in TargetConfigured instead.
     * </pre>
     *
     * <code>.build_event_stream.TestSize test_size = 6 [deprecated = true];</code>
     */
    @java.lang.Deprecated com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize getTestSize();

    /**
     * <pre>
     * The output files are arranged by their output group. If an output file
     * is part of multiple output groups, it appears once in each output
     * group.
     * </pre>
     *
     * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
     */
    java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup> 
        getOutputGroupList();
    /**
     * <pre>
     * The output files are arranged by their output group. If an output file
     * is part of multiple output groups, it appears once in each output
     * group.
     * </pre>
     *
     * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup getOutputGroup(int index);
    /**
     * <pre>
     * The output files are arranged by their output group. If an output file
     * is part of multiple output groups, it appears once in each output
     * group.
     * </pre>
     *
     * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
     */
    int getOutputGroupCount();
    /**
     * <pre>
     * The output files are arranged by their output group. If an output file
     * is part of multiple output groups, it appears once in each output
     * group.
     * </pre>
     *
     * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroupOrBuilder> 
        getOutputGroupOrBuilderList();
    /**
     * <pre>
     * The output files are arranged by their output group. If an output file
     * is part of multiple output groups, it appears once in each output
     * group.
     * </pre>
     *
     * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroupOrBuilder getOutputGroupOrBuilder(
        int index);

    /**
     * <pre>
     * Temporarily, also report the important outputs directly. This is only to
     * allow existing clients help transition to the deduplicated representation;
     * new clients should not use it.
     * </pre>
     *
     * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
     */
    @java.lang.Deprecated java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> 
        getImportantOutputList();
    /**
     * <pre>
     * Temporarily, also report the important outputs directly. This is only to
     * allow existing clients help transition to the deduplicated representation;
     * new clients should not use it.
     * </pre>
     *
     * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
     */
    @java.lang.Deprecated com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getImportantOutput(int index);
    /**
     * <pre>
     * Temporarily, also report the important outputs directly. This is only to
     * allow existing clients help transition to the deduplicated representation;
     * new clients should not use it.
     * </pre>
     *
     * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
     */
    @java.lang.Deprecated int getImportantOutputCount();
    /**
     * <pre>
     * Temporarily, also report the important outputs directly. This is only to
     * allow existing clients help transition to the deduplicated representation;
     * new clients should not use it.
     * </pre>
     *
     * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
     */
    @java.lang.Deprecated java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getImportantOutputOrBuilderList();
    /**
     * <pre>
     * Temporarily, also report the important outputs directly. This is only to
     * allow existing clients help transition to the deduplicated representation;
     * new clients should not use it.
     * </pre>
     *
     * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
     */
    @java.lang.Deprecated com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getImportantOutputOrBuilder(
        int index);

    /**
     * <pre>
     * List of tags associated with this configured target.
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    java.util.List<java.lang.String>
        getTagList();
    /**
     * <pre>
     * List of tags associated with this configured target.
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    int getTagCount();
    /**
     * <pre>
     * List of tags associated with this configured target.
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    java.lang.String getTag(int index);
    /**
     * <pre>
     * List of tags associated with this configured target.
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    com.google.protobuf.ByteString
        getTagBytes(int index);

    /**
     * <pre>
     * The timeout specified for test actions under this configured target.
     * </pre>
     *
     * <code>int64 test_timeout_seconds = 7;</code>
     */
    long getTestTimeoutSeconds();
  }
  /**
   * <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 {
  private static final long serialVersionUID = 0L;
    // Use TargetComplete.newBuilder() to construct.
    private TargetComplete(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TargetComplete() {
      success_ = false;
      targetKind_ = "";
      testSize_ = 0;
      outputGroup_ = java.util.Collections.emptyList();
      importantOutput_ = java.util.Collections.emptyList();
      tag_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      testTimeoutSeconds_ = 0L;
    }

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

              success_ = input.readBool();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                outputGroup_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup>();
                mutable_bitField0_ |= 0x00000008;
              }
              outputGroup_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.parser(), extensionRegistry));
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                tag_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000020;
              }
              tag_.add(s);
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                importantOutput_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>();
                mutable_bitField0_ |= 0x00000010;
              }
              importantOutput_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry));
              break;
            }
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();

              targetKind_ = s;
              break;
            }
            case 48: {
              int rawValue = input.readEnum();

              testSize_ = rawValue;
              break;
            }
            case 56: {

              testTimeoutSeconds_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          outputGroup_ = java.util.Collections.unmodifiableList(outputGroup_);
        }
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          tag_ = tag_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          importantOutput_ = java.util.Collections.unmodifiableList(importantOutput_);
        }
        this.unknownFields = unknownFields.build();
        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;
    }

    @java.lang.Override
    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);
    }

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

    public static final int TARGET_KIND_FIELD_NUMBER = 5;
    private volatile java.lang.Object targetKind_;
    /**
     * <pre>
     * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
     * "generated file") where the completion is reported.
     * Deprecated: use the target_kind field in TargetConfigured instead.
     * </pre>
     *
     * <code>string target_kind = 5 [deprecated = true];</code>
     */
    @java.lang.Deprecated public java.lang.String getTargetKind() {
      java.lang.Object ref = targetKind_;
      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();
        targetKind_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
     * "generated file") where the completion is reported.
     * Deprecated: use the target_kind field in TargetConfigured instead.
     * </pre>
     *
     * <code>string target_kind = 5 [deprecated = true];</code>
     */
    @java.lang.Deprecated public com.google.protobuf.ByteString
        getTargetKindBytes() {
      java.lang.Object ref = targetKind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        targetKind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TEST_SIZE_FIELD_NUMBER = 6;
    private int testSize_;
    /**
     * <pre>
     * The size of the test, if the target is a test target. Unset otherwise.
     * Deprecated: use the test_size field in TargetConfigured instead.
     * </pre>
     *
     * <code>.build_event_stream.TestSize test_size = 6 [deprecated = true];</code>
     */
    @java.lang.Deprecated public int getTestSizeValue() {
      return testSize_;
    }
    /**
     * <pre>
     * The size of the test, if the target is a test target. Unset otherwise.
     * Deprecated: use the test_size field in TargetConfigured instead.
     * </pre>
     *
     * <code>.build_event_stream.TestSize test_size = 6 [deprecated = true];</code>
     */
    @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize getTestSize() {
      @SuppressWarnings("deprecation")
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize result = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.valueOf(testSize_);
      return result == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.UNRECOGNIZED : result;
    }

    public static final int OUTPUT_GROUP_FIELD_NUMBER = 2;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup> outputGroup_;
    /**
     * <pre>
     * The output files are arranged by their output group. If an output file
     * is part of multiple output groups, it appears once in each output
     * group.
     * </pre>
     *
     * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
     */
    public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup> getOutputGroupList() {
      return outputGroup_;
    }
    /**
     * <pre>
     * The output files are arranged by their output group. If an output file
     * is part of multiple output groups, it appears once in each output
     * group.
     * </pre>
     *
     * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroupOrBuilder> 
        getOutputGroupOrBuilderList() {
      return outputGroup_;
    }
    /**
     * <pre>
     * The output files are arranged by their output group. If an output file
     * is part of multiple output groups, it appears once in each output
     * group.
     * </pre>
     *
     * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
     */
    public int getOutputGroupCount() {
      return outputGroup_.size();
    }
    /**
     * <pre>
     * The output files are arranged by their output group. If an output file
     * is part of multiple output groups, it appears once in each output
     * group.
     * </pre>
     *
     * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup getOutputGroup(int index) {
      return outputGroup_.get(index);
    }
    /**
     * <pre>
     * The output files are arranged by their output group. If an output file
     * is part of multiple output groups, it appears once in each output
     * group.
     * </pre>
     *
     * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroupOrBuilder getOutputGroupOrBuilder(
        int index) {
      return outputGroup_.get(index);
    }

    public static final int IMPORTANT_OUTPUT_FIELD_NUMBER = 4;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> importantOutput_;
    /**
     * <pre>
     * Temporarily, also report the important outputs directly. This is only to
     * allow existing clients help transition to the deduplicated representation;
     * new clients should not use it.
     * </pre>
     *
     * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
     */
    @java.lang.Deprecated public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getImportantOutputList() {
      return importantOutput_;
    }
    /**
     * <pre>
     * Temporarily, also report the important outputs directly. This is only to
     * allow existing clients help transition to the deduplicated representation;
     * new clients should not use it.
     * </pre>
     *
     * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
     */
    @java.lang.Deprecated public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getImportantOutputOrBuilderList() {
      return importantOutput_;
    }
    /**
     * <pre>
     * Temporarily, also report the important outputs directly. This is only to
     * allow existing clients help transition to the deduplicated representation;
     * new clients should not use it.
     * </pre>
     *
     * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
     */
    @java.lang.Deprecated public int getImportantOutputCount() {
      return importantOutput_.size();
    }
    /**
     * <pre>
     * Temporarily, also report the important outputs directly. This is only to
     * allow existing clients help transition to the deduplicated representation;
     * new clients should not use it.
     * </pre>
     *
     * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
     */
    @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getImportantOutput(int index) {
      return importantOutput_.get(index);
    }
    /**
     * <pre>
     * Temporarily, also report the important outputs directly. This is only to
     * allow existing clients help transition to the deduplicated representation;
     * new clients should not use it.
     * </pre>
     *
     * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
     */
    @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getImportantOutputOrBuilder(
        int index) {
      return importantOutput_.get(index);
    }

    public static final int TAG_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList tag_;
    /**
     * <pre>
     * List of tags associated with this configured target.
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getTagList() {
      return tag_;
    }
    /**
     * <pre>
     * List of tags associated with this configured target.
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    public int getTagCount() {
      return tag_.size();
    }
    /**
     * <pre>
     * List of tags associated with this configured target.
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    public java.lang.String getTag(int index) {
      return tag_.get(index);
    }
    /**
     * <pre>
     * List of tags associated with this configured target.
     * </pre>
     *
     * <code>repeated string tag = 3;</code>
     */
    public com.google.protobuf.ByteString
        getTagBytes(int index) {
      return tag_.getByteString(index);
    }

    public static final int TEST_TIMEOUT_SECONDS_FIELD_NUMBER = 7;
    private long testTimeoutSeconds_;
    /**
     * <pre>
     * The timeout specified for test actions under this configured target.
     * </pre>
     *
     * <code>int64 test_timeout_seconds = 7;</code>
     */
    public long getTestTimeoutSeconds() {
      return testTimeoutSeconds_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (success_ != false) {
        output.writeBool(1, success_);
      }
      for (int i = 0; i < outputGroup_.size(); i++) {
        output.writeMessage(2, outputGroup_.get(i));
      }
      for (int i = 0; i < tag_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, tag_.getRaw(i));
      }
      for (int i = 0; i < importantOutput_.size(); i++) {
        output.writeMessage(4, importantOutput_.get(i));
      }
      if (!getTargetKindBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, targetKind_);
      }
      if (testSize_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.UNKNOWN.getNumber()) {
        output.writeEnum(6, testSize_);
      }
      if (testTimeoutSeconds_ != 0L) {
        output.writeInt64(7, testTimeoutSeconds_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (success_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, success_);
      }
      for (int i = 0; i < outputGroup_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, outputGroup_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tag_.size(); i++) {
          dataSize += computeStringSizeNoTag(tag_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTagList().size();
      }
      for (int i = 0; i < importantOutput_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, importantOutput_.get(i));
      }
      if (!getTargetKindBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, targetKind_);
      }
      if (testSize_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, testSize_);
      }
      if (testTimeoutSeconds_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, testTimeoutSeconds_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof 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());
      result = result && getTargetKind()
          .equals(other.getTargetKind());
      result = result && testSize_ == other.testSize_;
      result = result && getOutputGroupList()
          .equals(other.getOutputGroupList());
      result = result && getImportantOutputList()
          .equals(other.getImportantOutputList());
      result = result && getTagList()
          .equals(other.getTagList());
      result = result && (getTestTimeoutSeconds()
          == other.getTestTimeoutSeconds());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getSuccess());
      hash = (37 * hash) + TARGET_KIND_FIELD_NUMBER;
      hash = (53 * hash) + getTargetKind().hashCode();
      hash = (37 * hash) + TEST_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + testSize_;
      if (getOutputGroupCount() > 0) {
        hash = (37 * hash) + OUTPUT_GROUP_FIELD_NUMBER;
        hash = (53 * hash) + getOutputGroupList().hashCode();
      }
      if (getImportantOutputCount() > 0) {
        hash = (37 * hash) + IMPORTANT_OUTPUT_FIELD_NUMBER;
        hash = (53 * hash) + getImportantOutputList().hashCode();
      }
      if (getTagCount() > 0) {
        hash = (37 * hash) + TAG_FIELD_NUMBER;
        hash = (53 * hash) + getTagList().hashCode();
      }
      hash = (37 * hash) + TEST_TIMEOUT_SECONDS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTestTimeoutSeconds());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete parseFrom(
        java.nio.ByteBuffer 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(
        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);
    }

    @java.lang.Override
    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);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <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;
      }

      @java.lang.Override
      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) {
          getOutputGroupFieldBuilder();
          getImportantOutputFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        success_ = false;

        targetKind_ = "";

        testSize_ = 0;

        if (outputGroupBuilder_ == null) {
          outputGroup_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          outputGroupBuilder_.clear();
        }
        if (importantOutputBuilder_ == null) {
          importantOutput_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          importantOutputBuilder_.clear();
        }
        tag_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        testTimeoutSeconds_ = 0L;

        return this;
      }

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

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.success_ = success_;
        result.targetKind_ = targetKind_;
        result.testSize_ = testSize_;
        if (outputGroupBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            outputGroup_ = java.util.Collections.unmodifiableList(outputGroup_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.outputGroup_ = outputGroup_;
        } else {
          result.outputGroup_ = outputGroupBuilder_.build();
        }
        if (importantOutputBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            importantOutput_ = java.util.Collections.unmodifiableList(importantOutput_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.importantOutput_ = importantOutput_;
        } else {
          result.importantOutput_ = importantOutputBuilder_.build();
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          tag_ = tag_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.tag_ = tag_;
        result.testTimeoutSeconds_ = testTimeoutSeconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof 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());
        }
        if (!other.getTargetKind().isEmpty()) {
          targetKind_ = other.targetKind_;
          onChanged();
        }
        if (other.testSize_ != 0) {
          setTestSizeValue(other.getTestSizeValue());
        }
        if (outputGroupBuilder_ == null) {
          if (!other.outputGroup_.isEmpty()) {
            if (outputGroup_.isEmpty()) {
              outputGroup_ = other.outputGroup_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureOutputGroupIsMutable();
              outputGroup_.addAll(other.outputGroup_);
            }
            onChanged();
          }
        } else {
          if (!other.outputGroup_.isEmpty()) {
            if (outputGroupBuilder_.isEmpty()) {
              outputGroupBuilder_.dispose();
              outputGroupBuilder_ = null;
              outputGroup_ = other.outputGroup_;
              bitField0_ = (bitField0_ & ~0x00000008);
              outputGroupBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getOutputGroupFieldBuilder() : null;
            } else {
              outputGroupBuilder_.addAllMessages(other.outputGroup_);
            }
          }
        }
        if (importantOutputBuilder_ == null) {
          if (!other.importantOutput_.isEmpty()) {
            if (importantOutput_.isEmpty()) {
              importantOutput_ = other.importantOutput_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureImportantOutputIsMutable();
              importantOutput_.addAll(other.importantOutput_);
            }
            onChanged();
          }
        } else {
          if (!other.importantOutput_.isEmpty()) {
            if (importantOutputBuilder_.isEmpty()) {
              importantOutputBuilder_.dispose();
              importantOutputBuilder_ = null;
              importantOutput_ = other.importantOutput_;
              bitField0_ = (bitField0_ & ~0x00000010);
              importantOutputBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getImportantOutputFieldBuilder() : null;
            } else {
              importantOutputBuilder_.addAllMessages(other.importantOutput_);
            }
          }
        }
        if (!other.tag_.isEmpty()) {
          if (tag_.isEmpty()) {
            tag_ = other.tag_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureTagIsMutable();
            tag_.addAll(other.tag_);
          }
          onChanged();
        }
        if (other.getTestTimeoutSeconds() != 0L) {
          setTestTimeoutSeconds(other.getTestTimeoutSeconds());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        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 int bitField0_;

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

      private java.lang.Object targetKind_ = "";
      /**
       * <pre>
       * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
       * "generated file") where the completion is reported.
       * Deprecated: use the target_kind field in TargetConfigured instead.
       * </pre>
       *
       * <code>string target_kind = 5 [deprecated = true];</code>
       */
      @java.lang.Deprecated public java.lang.String getTargetKind() {
        java.lang.Object ref = targetKind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          targetKind_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
       * "generated file") where the completion is reported.
       * Deprecated: use the target_kind field in TargetConfigured instead.
       * </pre>
       *
       * <code>string target_kind = 5 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.protobuf.ByteString
          getTargetKindBytes() {
        java.lang.Object ref = targetKind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          targetKind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
       * "generated file") where the completion is reported.
       * Deprecated: use the target_kind field in TargetConfigured instead.
       * </pre>
       *
       * <code>string target_kind = 5 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setTargetKind(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        targetKind_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
       * "generated file") where the completion is reported.
       * Deprecated: use the target_kind field in TargetConfigured instead.
       * </pre>
       *
       * <code>string target_kind = 5 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder clearTargetKind() {
        
        targetKind_ = getDefaultInstance().getTargetKind();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The kind of target (e.g.,  e.g. "cc_library rule", "source file",
       * "generated file") where the completion is reported.
       * Deprecated: use the target_kind field in TargetConfigured instead.
       * </pre>
       *
       * <code>string target_kind = 5 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setTargetKindBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        targetKind_ = value;
        onChanged();
        return this;
      }

      private int testSize_ = 0;
      /**
       * <pre>
       * The size of the test, if the target is a test target. Unset otherwise.
       * Deprecated: use the test_size field in TargetConfigured instead.
       * </pre>
       *
       * <code>.build_event_stream.TestSize test_size = 6 [deprecated = true];</code>
       */
      @java.lang.Deprecated public int getTestSizeValue() {
        return testSize_;
      }
      /**
       * <pre>
       * The size of the test, if the target is a test target. Unset otherwise.
       * Deprecated: use the test_size field in TargetConfigured instead.
       * </pre>
       *
       * <code>.build_event_stream.TestSize test_size = 6 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setTestSizeValue(int value) {
        testSize_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The size of the test, if the target is a test target. Unset otherwise.
       * Deprecated: use the test_size field in TargetConfigured instead.
       * </pre>
       *
       * <code>.build_event_stream.TestSize test_size = 6 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize getTestSize() {
        @SuppressWarnings("deprecation")
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize result = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.valueOf(testSize_);
        return result == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * The size of the test, if the target is a test target. Unset otherwise.
       * Deprecated: use the test_size field in TargetConfigured instead.
       * </pre>
       *
       * <code>.build_event_stream.TestSize test_size = 6 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setTestSize(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSize value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        testSize_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The size of the test, if the target is a test target. Unset otherwise.
       * Deprecated: use the test_size field in TargetConfigured instead.
       * </pre>
       *
       * <code>.build_event_stream.TestSize test_size = 6 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder clearTestSize() {
        
        testSize_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup> outputGroup_ =
        java.util.Collections.emptyList();
      private void ensureOutputGroupIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          outputGroup_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup>(outputGroup_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroupOrBuilder> outputGroupBuilder_;

      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup> getOutputGroupList() {
        if (outputGroupBuilder_ == null) {
          return java.util.Collections.unmodifiableList(outputGroup_);
        } else {
          return outputGroupBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public int getOutputGroupCount() {
        if (outputGroupBuilder_ == null) {
          return outputGroup_.size();
        } else {
          return outputGroupBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup getOutputGroup(int index) {
        if (outputGroupBuilder_ == null) {
          return outputGroup_.get(index);
        } else {
          return outputGroupBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public Builder setOutputGroup(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup value) {
        if (outputGroupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOutputGroupIsMutable();
          outputGroup_.set(index, value);
          onChanged();
        } else {
          outputGroupBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public Builder setOutputGroup(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder builderForValue) {
        if (outputGroupBuilder_ == null) {
          ensureOutputGroupIsMutable();
          outputGroup_.set(index, builderForValue.build());
          onChanged();
        } else {
          outputGroupBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public Builder addOutputGroup(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup value) {
        if (outputGroupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOutputGroupIsMutable();
          outputGroup_.add(value);
          onChanged();
        } else {
          outputGroupBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public Builder addOutputGroup(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup value) {
        if (outputGroupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOutputGroupIsMutable();
          outputGroup_.add(index, value);
          onChanged();
        } else {
          outputGroupBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public Builder addOutputGroup(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder builderForValue) {
        if (outputGroupBuilder_ == null) {
          ensureOutputGroupIsMutable();
          outputGroup_.add(builderForValue.build());
          onChanged();
        } else {
          outputGroupBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public Builder addOutputGroup(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder builderForValue) {
        if (outputGroupBuilder_ == null) {
          ensureOutputGroupIsMutable();
          outputGroup_.add(index, builderForValue.build());
          onChanged();
        } else {
          outputGroupBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public Builder addAllOutputGroup(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup> values) {
        if (outputGroupBuilder_ == null) {
          ensureOutputGroupIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, outputGroup_);
          onChanged();
        } else {
          outputGroupBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public Builder clearOutputGroup() {
        if (outputGroupBuilder_ == null) {
          outputGroup_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          outputGroupBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public Builder removeOutputGroup(int index) {
        if (outputGroupBuilder_ == null) {
          ensureOutputGroupIsMutable();
          outputGroup_.remove(index);
          onChanged();
        } else {
          outputGroupBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder getOutputGroupBuilder(
          int index) {
        return getOutputGroupFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroupOrBuilder getOutputGroupOrBuilder(
          int index) {
        if (outputGroupBuilder_ == null) {
          return outputGroup_.get(index);  } else {
          return outputGroupBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroupOrBuilder> 
           getOutputGroupOrBuilderList() {
        if (outputGroupBuilder_ != null) {
          return outputGroupBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(outputGroup_);
        }
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder addOutputGroupBuilder() {
        return getOutputGroupFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.getDefaultInstance());
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder addOutputGroupBuilder(
          int index) {
        return getOutputGroupFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.getDefaultInstance());
      }
      /**
       * <pre>
       * The output files are arranged by their output group. If an output file
       * is part of multiple output groups, it appears once in each output
       * group.
       * </pre>
       *
       * <code>repeated .build_event_stream.OutputGroup output_group = 2;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder> 
           getOutputGroupBuilderList() {
        return getOutputGroupFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroupOrBuilder> 
          getOutputGroupFieldBuilder() {
        if (outputGroupBuilder_ == null) {
          outputGroupBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroupOrBuilder>(
                  outputGroup_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          outputGroup_ = null;
        }
        return outputGroupBuilder_;
      }

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

      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> importantOutputBuilder_;

      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getImportantOutputList() {
        if (importantOutputBuilder_ == null) {
          return java.util.Collections.unmodifiableList(importantOutput_);
        } else {
          return importantOutputBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public int getImportantOutputCount() {
        if (importantOutputBuilder_ == null) {
          return importantOutput_.size();
        } else {
          return importantOutputBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getImportantOutput(int index) {
        if (importantOutputBuilder_ == null) {
          return importantOutput_.get(index);
        } else {
          return importantOutputBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setImportantOutput(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (importantOutputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImportantOutputIsMutable();
          importantOutput_.set(index, value);
          onChanged();
        } else {
          importantOutputBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setImportantOutput(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (importantOutputBuilder_ == null) {
          ensureImportantOutputIsMutable();
          importantOutput_.set(index, builderForValue.build());
          onChanged();
        } else {
          importantOutputBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder addImportantOutput(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (importantOutputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImportantOutputIsMutable();
          importantOutput_.add(value);
          onChanged();
        } else {
          importantOutputBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder addImportantOutput(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (importantOutputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImportantOutputIsMutable();
          importantOutput_.add(index, value);
          onChanged();
        } else {
          importantOutputBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder addImportantOutput(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (importantOutputBuilder_ == null) {
          ensureImportantOutputIsMutable();
          importantOutput_.add(builderForValue.build());
          onChanged();
        } else {
          importantOutputBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder addImportantOutput(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (importantOutputBuilder_ == null) {
          ensureImportantOutputIsMutable();
          importantOutput_.add(index, builderForValue.build());
          onChanged();
        } else {
          importantOutputBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder addAllImportantOutput(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> values) {
        if (importantOutputBuilder_ == null) {
          ensureImportantOutputIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, importantOutput_);
          onChanged();
        } else {
          importantOutputBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder clearImportantOutput() {
        if (importantOutputBuilder_ == null) {
          importantOutput_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          importantOutputBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder removeImportantOutput(int index) {
        if (importantOutputBuilder_ == null) {
          ensureImportantOutputIsMutable();
          importantOutput_.remove(index);
          onChanged();
        } else {
          importantOutputBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder getImportantOutputBuilder(
          int index) {
        return getImportantOutputFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getImportantOutputOrBuilder(
          int index) {
        if (importantOutputBuilder_ == null) {
          return importantOutput_.get(index);  } else {
          return importantOutputBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
           getImportantOutputOrBuilderList() {
        if (importantOutputBuilder_ != null) {
          return importantOutputBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(importantOutput_);
        }
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addImportantOutputBuilder() {
        return getImportantOutputFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addImportantOutputBuilder(
          int index) {
        return getImportantOutputFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <pre>
       * Temporarily, also report the important outputs directly. This is only to
       * allow existing clients help transition to the deduplicated representation;
       * new clients should not use it.
       * </pre>
       *
       * <code>repeated .build_event_stream.File important_output = 4 [deprecated = true];</code>
       */
      @java.lang.Deprecated public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder> 
           getImportantOutputBuilderList() {
        return getImportantOutputFieldBuilder().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> 
          getImportantOutputFieldBuilder() {
        if (importantOutputBuilder_ == null) {
          importantOutputBuilder_ = 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>(
                  importantOutput_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          importantOutput_ = null;
        }
        return importantOutputBuilder_;
      }

      private com.google.protobuf.LazyStringList tag_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTagIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          tag_ = new com.google.protobuf.LazyStringArrayList(tag_);
          bitField0_ |= 0x00000020;
         }
      }
      /**
       * <pre>
       * List of tags associated with this configured target.
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getTagList() {
        return tag_.getUnmodifiableView();
      }
      /**
       * <pre>
       * List of tags associated with this configured target.
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public int getTagCount() {
        return tag_.size();
      }
      /**
       * <pre>
       * List of tags associated with this configured target.
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public java.lang.String getTag(int index) {
        return tag_.get(index);
      }
      /**
       * <pre>
       * List of tags associated with this configured target.
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public com.google.protobuf.ByteString
          getTagBytes(int index) {
        return tag_.getByteString(index);
      }
      /**
       * <pre>
       * List of tags associated with this configured target.
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public Builder setTag(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagIsMutable();
        tag_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * List of tags associated with this configured target.
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public Builder addTag(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagIsMutable();
        tag_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * List of tags associated with this configured target.
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public Builder addAllTag(
          java.lang.Iterable<java.lang.String> values) {
        ensureTagIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, tag_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * List of tags associated with this configured target.
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public Builder clearTag() {
        tag_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * List of tags associated with this configured target.
       * </pre>
       *
       * <code>repeated string tag = 3;</code>
       */
      public Builder addTagBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureTagIsMutable();
        tag_.add(value);
        onChanged();
        return this;
      }

      private long testTimeoutSeconds_ ;
      /**
       * <pre>
       * The timeout specified for test actions under this configured target.
       * </pre>
       *
       * <code>int64 test_timeout_seconds = 7;</code>
       */
      public long getTestTimeoutSeconds() {
        return testTimeoutSeconds_;
      }
      /**
       * <pre>
       * The timeout specified for test actions under this configured target.
       * </pre>
       *
       * <code>int64 test_timeout_seconds = 7;</code>
       */
      public Builder setTestTimeoutSeconds(long value) {
        
        testTimeoutSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The timeout specified for test actions under this configured target.
       * </pre>
       *
       * <code>int64 test_timeout_seconds = 7;</code>
       */
      public Builder clearTestTimeoutSeconds() {
        
        testTimeoutSeconds_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope: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>() {
      @java.lang.Override
      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;
    }

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

  }

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

    /**
     * <pre>
     * The status of this test.
     * </pre>
     *
     * <code>.build_event_stream.TestStatus status = 5;</code>
     */
    int getStatusValue();
    /**
     * <pre>
     * The status of this test.
     * </pre>
     *
     * <code>.build_event_stream.TestStatus status = 5;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus getStatus();

    /**
     * <pre>
     * Additional details about the status of the test. This is intended for
     * user display and must not be parsed.
     * </pre>
     *
     * <code>string status_details = 9;</code>
     */
    java.lang.String getStatusDetails();
    /**
     * <pre>
     * Additional details about the status of the test. This is intended for
     * user display and must not be parsed.
     * </pre>
     *
     * <code>string status_details = 9;</code>
     */
    com.google.protobuf.ByteString
        getStatusDetailsBytes();

    /**
     * <pre>
     * True, if the reported attempt is taken from the tool's local cache.
     * </pre>
     *
     * <code>bool cached_locally = 4;</code>
     */
    boolean getCachedLocally();

    /**
     * <pre>
     * Time in milliseconds since the epoch at which the test attempt was started.
     * Note: for cached test results, this is time can be before the start of the
     * build.
     * </pre>
     *
     * <code>int64 test_attempt_start_millis_epoch = 6;</code>
     */
    long getTestAttemptStartMillisEpoch();

    /**
     * <pre>
     * Time the test took to run. For locally cached results, this is the time
     * the cached invocation took when it was invoked.
     * </pre>
     *
     * <code>int64 test_attempt_duration_millis = 3;</code>
     */
    long getTestAttemptDurationMillis();

    /**
     * <pre>
     * Files (logs, test.xml, undeclared outputs, etc) generated by that test
     * action.
     * </pre>
     *
     * <code>repeated .build_event_stream.File test_action_output = 2;</code>
     */
    java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> 
        getTestActionOutputList();
    /**
     * <pre>
     * Files (logs, test.xml, undeclared outputs, etc) generated by that test
     * action.
     * </pre>
     *
     * <code>repeated .build_event_stream.File test_action_output = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getTestActionOutput(int index);
    /**
     * <pre>
     * Files (logs, test.xml, undeclared outputs, etc) generated by that test
     * action.
     * </pre>
     *
     * <code>repeated .build_event_stream.File test_action_output = 2;</code>
     */
    int getTestActionOutputCount();
    /**
     * <pre>
     * Files (logs, test.xml, undeclared outputs, etc) generated by that test
     * action.
     * </pre>
     *
     * <code>repeated .build_event_stream.File test_action_output = 2;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getTestActionOutputOrBuilderList();
    /**
     * <pre>
     * Files (logs, test.xml, undeclared outputs, etc) generated by that test
     * action.
     * </pre>
     *
     * <code>repeated .build_event_stream.File test_action_output = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getTestActionOutputOrBuilder(
        int index);

    /**
     * <pre>
     * Warnings generated by that test action.
     * </pre>
     *
     * <code>repeated string warning = 7;</code>
     */
    java.util.List<java.lang.String>
        getWarningList();
    /**
     * <pre>
     * Warnings generated by that test action.
     * </pre>
     *
     * <code>repeated string warning = 7;</code>
     */
    int getWarningCount();
    /**
     * <pre>
     * Warnings generated by that test action.
     * </pre>
     *
     * <code>repeated string warning = 7;</code>
     */
    java.lang.String getWarning(int index);
    /**
     * <pre>
     * Warnings generated by that test action.
     * </pre>
     *
     * <code>repeated string warning = 7;</code>
     */
    com.google.protobuf.ByteString
        getWarningBytes(int index);

    /**
     * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
     */
    boolean hasExecutionInfo();
    /**
     * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo getExecutionInfo();
    /**
     * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfoOrBuilder getExecutionInfoOrBuilder();
  }
  /**
   * <pre>
   * Payload on events reporting about individual test action.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.TestResult}
   */
  public  static final class TestResult extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.TestResult)
      TestResultOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TestResult.newBuilder() to construct.
    private TestResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TestResult() {
      status_ = 0;
      statusDetails_ = "";
      cachedLocally_ = false;
      testAttemptStartMillisEpoch_ = 0L;
      testAttemptDurationMillis_ = 0L;
      testActionOutput_ = java.util.Collections.emptyList();
      warning_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TestResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 18: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                testActionOutput_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>();
                mutable_bitField0_ |= 0x00000020;
              }
              testActionOutput_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry));
              break;
            }
            case 24: {

              testAttemptDurationMillis_ = input.readInt64();
              break;
            }
            case 32: {

              cachedLocally_ = input.readBool();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();

              status_ = rawValue;
              break;
            }
            case 48: {

              testAttemptStartMillisEpoch_ = input.readInt64();
              break;
            }
            case 58: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                warning_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000040;
              }
              warning_.add(s);
              break;
            }
            case 66: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.Builder subBuilder = null;
              if (executionInfo_ != null) {
                subBuilder = executionInfo_.toBuilder();
              }
              executionInfo_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(executionInfo_);
                executionInfo_ = subBuilder.buildPartial();
              }

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

              statusDetails_ = s;
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          testActionOutput_ = java.util.Collections.unmodifiableList(testActionOutput_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          warning_ = warning_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.Builder.class);
    }

    public interface ExecutionInfoOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.TestResult.ExecutionInfo)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Deprecated, use TargetComplete.test_timeout_seconds instead.
       * </pre>
       *
       * <code>int32 timeout_seconds = 1 [deprecated = true];</code>
       */
      @java.lang.Deprecated int getTimeoutSeconds();

      /**
       * <pre>
       * Name of the strategy to execute this test action (e.g., "local",
       * "remote")
       * </pre>
       *
       * <code>string strategy = 2;</code>
       */
      java.lang.String getStrategy();
      /**
       * <pre>
       * Name of the strategy to execute this test action (e.g., "local",
       * "remote")
       * </pre>
       *
       * <code>string strategy = 2;</code>
       */
      com.google.protobuf.ByteString
          getStrategyBytes();

      /**
       * <pre>
       * True, if the reported attempt was a cache hit in a remote cache.
       * </pre>
       *
       * <code>bool cached_remotely = 6;</code>
       */
      boolean getCachedRemotely();

      /**
       * <pre>
       * The exit code of the test action.
       * </pre>
       *
       * <code>int32 exit_code = 7;</code>
       */
      int getExitCode();

      /**
       * <pre>
       * The hostname of the machine where the test action was executed (in case
       * of remote execution), if known.
       * </pre>
       *
       * <code>string hostname = 3;</code>
       */
      java.lang.String getHostname();
      /**
       * <pre>
       * The hostname of the machine where the test action was executed (in case
       * of remote execution), if known.
       * </pre>
       *
       * <code>string hostname = 3;</code>
       */
      com.google.protobuf.ByteString
          getHostnameBytes();

      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
       */
      boolean hasTimingBreakdown();
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown getTimingBreakdown();
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder getTimingBreakdownOrBuilder();

      /**
       * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
       */
      java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage> 
          getResourceUsageList();
      /**
       * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage getResourceUsage(int index);
      /**
       * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
       */
      int getResourceUsageCount();
      /**
       * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
       */
      java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsageOrBuilder> 
          getResourceUsageOrBuilderList();
      /**
       * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
       */
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsageOrBuilder getResourceUsageOrBuilder(
          int index);
    }
    /**
     * <pre>
     * Message providing optional meta data on the execution of the test action,
     * if available.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.TestResult.ExecutionInfo}
     */
    public  static final class ExecutionInfo extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.TestResult.ExecutionInfo)
        ExecutionInfoOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ExecutionInfo.newBuilder() to construct.
      private ExecutionInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ExecutionInfo() {
        timeoutSeconds_ = 0;
        strategy_ = "";
        cachedRemotely_ = false;
        exitCode_ = 0;
        hostname_ = "";
        resourceUsage_ = java.util.Collections.emptyList();
      }

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

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

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

                hostname_ = s;
                break;
              }
              case 34: {
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder subBuilder = null;
                if (timingBreakdown_ != null) {
                  subBuilder = timingBreakdown_.toBuilder();
                }
                timingBreakdown_ = input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(timingBreakdown_);
                  timingBreakdown_ = subBuilder.buildPartial();
                }

                break;
              }
              case 42: {
                if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                  resourceUsage_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage>();
                  mutable_bitField0_ |= 0x00000040;
                }
                resourceUsage_.add(
                    input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.parser(), extensionRegistry));
                break;
              }
              case 48: {

                cachedRemotely_ = input.readBool();
                break;
              }
              case 56: {

                exitCode_ = input.readInt32();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
            resourceUsage_ = java.util.Collections.unmodifiableList(resourceUsage_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.Builder.class);
      }

      public interface TimingBreakdownOrBuilder extends
          // @@protoc_insertion_point(interface_extends:build_event_stream.TestResult.ExecutionInfo.TimingBreakdown)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
         */
        java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown> 
            getChildList();
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
         */
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown getChild(int index);
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
         */
        int getChildCount();
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
         */
        java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder> 
            getChildOrBuilderList();
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
         */
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder getChildOrBuilder(
            int index);

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

        /**
         * <code>int64 time_millis = 3;</code>
         */
        long getTimeMillis();
      }
      /**
       * <pre>
       * Represents a hierarchical timing breakdown of an activity.
       * The top level time should be the total time of the activity.
       * Invariant: time_millis &gt;= sum of time_millis of all direct children.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.TestResult.ExecutionInfo.TimingBreakdown}
       */
      public  static final class TimingBreakdown extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:build_event_stream.TestResult.ExecutionInfo.TimingBreakdown)
          TimingBreakdownOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use TimingBreakdown.newBuilder() to construct.
        private TimingBreakdown(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private TimingBreakdown() {
          child_ = java.util.Collections.emptyList();
          name_ = "";
          timeMillis_ = 0L;
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private TimingBreakdown(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                    child_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  child_.add(
                      input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.parser(), extensionRegistry));
                  break;
                }
                case 18: {
                  java.lang.String s = input.readStringRequireUtf8();

                  name_ = s;
                  break;
                }
                case 24: {

                  timeMillis_ = input.readInt64();
                  break;
                }
                default: {
                  if (!parseUnknownFieldProto3(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
              child_ = java.util.Collections.unmodifiableList(child_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_TimingBreakdown_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_TimingBreakdown_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder.class);
        }

        private int bitField0_;
        public static final int CHILD_FIELD_NUMBER = 1;
        private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown> child_;
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
         */
        public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown> getChildList() {
          return child_;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
         */
        public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder> 
            getChildOrBuilderList() {
          return child_;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
         */
        public int getChildCount() {
          return child_.size();
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown getChild(int index) {
          return child_.get(index);
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder getChildOrBuilder(
            int index) {
          return child_.get(index);
        }

        public static final int NAME_FIELD_NUMBER = 2;
        private volatile java.lang.Object name_;
        /**
         * <code>string name = 2;</code>
         */
        public java.lang.String getName() {
          java.lang.Object ref = name_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            name_ = s;
            return s;
          }
        }
        /**
         * <code>string name = 2;</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 TIME_MILLIS_FIELD_NUMBER = 3;
        private long timeMillis_;
        /**
         * <code>int64 time_millis = 3;</code>
         */
        public long getTimeMillis() {
          return timeMillis_;
        }

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

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          for (int i = 0; i < child_.size(); i++) {
            output.writeMessage(1, child_.get(i));
          }
          if (!getNameBytes().isEmpty()) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
          }
          if (timeMillis_ != 0L) {
            output.writeInt64(3, timeMillis_);
          }
          unknownFields.writeTo(output);
        }

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

          size = 0;
          for (int i = 0; i < child_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(1, child_.get(i));
          }
          if (!getNameBytes().isEmpty()) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
          }
          if (timeMillis_ != 0L) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt64Size(3, timeMillis_);
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown)) {
            return super.equals(obj);
          }
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown) obj;

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

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getChildCount() > 0) {
            hash = (37 * hash) + CHILD_FIELD_NUMBER;
            hash = (53 * hash) + getChildList().hashCode();
          }
          hash = (37 * hash) + NAME_FIELD_NUMBER;
          hash = (53 * hash) + getName().hashCode();
          hash = (37 * hash) + TIME_MILLIS_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getTimeMillis());
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

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

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * Represents a hierarchical timing breakdown of an activity.
         * The top level time should be the total time of the activity.
         * Invariant: time_millis &gt;= sum of time_millis of all direct children.
         * </pre>
         *
         * Protobuf type {@code build_event_stream.TestResult.ExecutionInfo.TimingBreakdown}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:build_event_stream.TestResult.ExecutionInfo.TimingBreakdown)
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_TimingBreakdown_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_TimingBreakdown_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder.class);
          }

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

          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
              getChildFieldBuilder();
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            if (childBuilder_ == null) {
              child_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              childBuilder_.clear();
            }
            name_ = "";

            timeMillis_ = 0L;

            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_TimingBreakdown_descriptor;
          }

          @java.lang.Override
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown getDefaultInstanceForType() {
            return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.getDefaultInstance();
          }

          @java.lang.Override
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown build() {
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown buildPartial() {
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (childBuilder_ == null) {
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                child_ = java.util.Collections.unmodifiableList(child_);
                bitField0_ = (bitField0_ & ~0x00000001);
              }
              result.child_ = child_;
            } else {
              result.child_ = childBuilder_.build();
            }
            result.name_ = name_;
            result.timeMillis_ = timeMillis_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

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

          public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown other) {
            if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.getDefaultInstance()) return this;
            if (childBuilder_ == null) {
              if (!other.child_.isEmpty()) {
                if (child_.isEmpty()) {
                  child_ = other.child_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                } else {
                  ensureChildIsMutable();
                  child_.addAll(other.child_);
                }
                onChanged();
              }
            } else {
              if (!other.child_.isEmpty()) {
                if (childBuilder_.isEmpty()) {
                  childBuilder_.dispose();
                  childBuilder_ = null;
                  child_ = other.child_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                  childBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getChildFieldBuilder() : null;
                } else {
                  childBuilder_.addAllMessages(other.child_);
                }
              }
            }
            if (!other.getName().isEmpty()) {
              name_ = other.name_;
              onChanged();
            }
            if (other.getTimeMillis() != 0L) {
              setTimeMillis(other.getTimeMillis());
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }

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

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

          private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown> child_ =
            java.util.Collections.emptyList();
          private void ensureChildIsMutable() {
            if (!((bitField0_ & 0x00000001) == 0x00000001)) {
              child_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown>(child_);
              bitField0_ |= 0x00000001;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder> childBuilder_;

          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown> getChildList() {
            if (childBuilder_ == null) {
              return java.util.Collections.unmodifiableList(child_);
            } else {
              return childBuilder_.getMessageList();
            }
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public int getChildCount() {
            if (childBuilder_ == null) {
              return child_.size();
            } else {
              return childBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown getChild(int index) {
            if (childBuilder_ == null) {
              return child_.get(index);
            } else {
              return childBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public Builder setChild(
              int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown value) {
            if (childBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureChildIsMutable();
              child_.set(index, value);
              onChanged();
            } else {
              childBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public Builder setChild(
              int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder builderForValue) {
            if (childBuilder_ == null) {
              ensureChildIsMutable();
              child_.set(index, builderForValue.build());
              onChanged();
            } else {
              childBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public Builder addChild(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown value) {
            if (childBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureChildIsMutable();
              child_.add(value);
              onChanged();
            } else {
              childBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public Builder addChild(
              int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown value) {
            if (childBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureChildIsMutable();
              child_.add(index, value);
              onChanged();
            } else {
              childBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public Builder addChild(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder builderForValue) {
            if (childBuilder_ == null) {
              ensureChildIsMutable();
              child_.add(builderForValue.build());
              onChanged();
            } else {
              childBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public Builder addChild(
              int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder builderForValue) {
            if (childBuilder_ == null) {
              ensureChildIsMutable();
              child_.add(index, builderForValue.build());
              onChanged();
            } else {
              childBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public Builder addAllChild(
              java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown> values) {
            if (childBuilder_ == null) {
              ensureChildIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, child_);
              onChanged();
            } else {
              childBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public Builder clearChild() {
            if (childBuilder_ == null) {
              child_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
              onChanged();
            } else {
              childBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public Builder removeChild(int index) {
            if (childBuilder_ == null) {
              ensureChildIsMutable();
              child_.remove(index);
              onChanged();
            } else {
              childBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder getChildBuilder(
              int index) {
            return getChildFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder getChildOrBuilder(
              int index) {
            if (childBuilder_ == null) {
              return child_.get(index);  } else {
              return childBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder> 
               getChildOrBuilderList() {
            if (childBuilder_ != null) {
              return childBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(child_);
            }
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder addChildBuilder() {
            return getChildFieldBuilder().addBuilder(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.getDefaultInstance());
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder addChildBuilder(
              int index) {
            return getChildFieldBuilder().addBuilder(
                index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.getDefaultInstance());
          }
          /**
           * <code>repeated .build_event_stream.TestResult.ExecutionInfo.TimingBreakdown child = 1;</code>
           */
          public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder> 
               getChildBuilderList() {
            return getChildFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder> 
              getChildFieldBuilder() {
            if (childBuilder_ == null) {
              childBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder>(
                      child_,
                      ((bitField0_ & 0x00000001) == 0x00000001),
                      getParentForChildren(),
                      isClean());
              child_ = null;
            }
            return childBuilder_;
          }

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

          private long timeMillis_ ;
          /**
           * <code>int64 time_millis = 3;</code>
           */
          public long getTimeMillis() {
            return timeMillis_;
          }
          /**
           * <code>int64 time_millis = 3;</code>
           */
          public Builder setTimeMillis(long value) {
            
            timeMillis_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>int64 time_millis = 3;</code>
           */
          public Builder clearTimeMillis() {
            
            timeMillis_ = 0L;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFieldsProto3(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:build_event_stream.TestResult.ExecutionInfo.TimingBreakdown)
        }

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

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

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

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

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface ResourceUsageOrBuilder extends
          // @@protoc_insertion_point(interface_extends:build_event_stream.TestResult.ExecutionInfo.ResourceUsage)
          com.google.protobuf.MessageOrBuilder {

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

        /**
         * <code>int64 value = 2;</code>
         */
        long getValue();
      }
      /**
       * Protobuf type {@code build_event_stream.TestResult.ExecutionInfo.ResourceUsage}
       */
      public  static final class ResourceUsage extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:build_event_stream.TestResult.ExecutionInfo.ResourceUsage)
          ResourceUsageOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use ResourceUsage.newBuilder() to construct.
        private ResourceUsage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private ResourceUsage() {
          name_ = "";
          value_ = 0L;
        }

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

                  name_ = s;
                  break;
                }
                case 16: {

                  value_ = input.readInt64();
                  break;
                }
                default: {
                  if (!parseUnknownFieldProto3(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_ResourceUsage_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_ResourceUsage_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder.class);
        }

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

        public static final int VALUE_FIELD_NUMBER = 2;
        private long value_;
        /**
         * <code>int64 value = 2;</code>
         */
        public long getValue() {
          return value_;
        }

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

          memoizedIsInitialized = 1;
          return true;
        }

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

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

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

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage)) {
            return super.equals(obj);
          }
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage) obj;

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

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (37 * hash) + NAME_FIELD_NUMBER;
          hash = (53 * hash) + getName().hashCode();
          hash = (37 * hash) + VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getValue());
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

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

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code build_event_stream.TestResult.ExecutionInfo.ResourceUsage}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:build_event_stream.TestResult.ExecutionInfo.ResourceUsage)
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsageOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_ResourceUsage_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_ResourceUsage_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder.class);
          }

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

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

            value_ = 0L;

            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_ResourceUsage_descriptor;
          }

          @java.lang.Override
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage getDefaultInstanceForType() {
            return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.getDefaultInstance();
          }

          @java.lang.Override
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage build() {
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage buildPartial() {
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage(this);
            result.name_ = name_;
            result.value_ = value_;
            onBuilt();
            return result;
          }

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

          public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage other) {
            if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.getDefaultInstance()) return this;
            if (!other.getName().isEmpty()) {
              name_ = other.name_;
              onChanged();
            }
            if (other.getValue() != 0L) {
              setValue(other.getValue());
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }

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

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

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

          private long value_ ;
          /**
           * <code>int64 value = 2;</code>
           */
          public long getValue() {
            return value_;
          }
          /**
           * <code>int64 value = 2;</code>
           */
          public Builder setValue(long value) {
            
            value_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>int64 value = 2;</code>
           */
          public Builder clearValue() {
            
            value_ = 0L;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFieldsProto3(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:build_event_stream.TestResult.ExecutionInfo.ResourceUsage)
        }

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

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

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

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

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

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      private int bitField0_;
      public static final int TIMEOUT_SECONDS_FIELD_NUMBER = 1;
      private int timeoutSeconds_;
      /**
       * <pre>
       * Deprecated, use TargetComplete.test_timeout_seconds instead.
       * </pre>
       *
       * <code>int32 timeout_seconds = 1 [deprecated = true];</code>
       */
      @java.lang.Deprecated public int getTimeoutSeconds() {
        return timeoutSeconds_;
      }

      public static final int STRATEGY_FIELD_NUMBER = 2;
      private volatile java.lang.Object strategy_;
      /**
       * <pre>
       * Name of the strategy to execute this test action (e.g., "local",
       * "remote")
       * </pre>
       *
       * <code>string strategy = 2;</code>
       */
      public java.lang.String getStrategy() {
        java.lang.Object ref = strategy_;
        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();
          strategy_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Name of the strategy to execute this test action (e.g., "local",
       * "remote")
       * </pre>
       *
       * <code>string strategy = 2;</code>
       */
      public com.google.protobuf.ByteString
          getStrategyBytes() {
        java.lang.Object ref = strategy_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          strategy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int CACHED_REMOTELY_FIELD_NUMBER = 6;
      private boolean cachedRemotely_;
      /**
       * <pre>
       * True, if the reported attempt was a cache hit in a remote cache.
       * </pre>
       *
       * <code>bool cached_remotely = 6;</code>
       */
      public boolean getCachedRemotely() {
        return cachedRemotely_;
      }

      public static final int EXIT_CODE_FIELD_NUMBER = 7;
      private int exitCode_;
      /**
       * <pre>
       * The exit code of the test action.
       * </pre>
       *
       * <code>int32 exit_code = 7;</code>
       */
      public int getExitCode() {
        return exitCode_;
      }

      public static final int HOSTNAME_FIELD_NUMBER = 3;
      private volatile java.lang.Object hostname_;
      /**
       * <pre>
       * The hostname of the machine where the test action was executed (in case
       * of remote execution), if known.
       * </pre>
       *
       * <code>string hostname = 3;</code>
       */
      public java.lang.String getHostname() {
        java.lang.Object ref = hostname_;
        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();
          hostname_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * The hostname of the machine where the test action was executed (in case
       * of remote execution), if known.
       * </pre>
       *
       * <code>string hostname = 3;</code>
       */
      public com.google.protobuf.ByteString
          getHostnameBytes() {
        java.lang.Object ref = hostname_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hostname_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int TIMING_BREAKDOWN_FIELD_NUMBER = 4;
      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown timingBreakdown_;
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
       */
      public boolean hasTimingBreakdown() {
        return timingBreakdown_ != null;
      }
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown getTimingBreakdown() {
        return timingBreakdown_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.getDefaultInstance() : timingBreakdown_;
      }
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder getTimingBreakdownOrBuilder() {
        return getTimingBreakdown();
      }

      public static final int RESOURCE_USAGE_FIELD_NUMBER = 5;
      private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage> resourceUsage_;
      /**
       * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage> getResourceUsageList() {
        return resourceUsage_;
      }
      /**
       * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsageOrBuilder> 
          getResourceUsageOrBuilderList() {
        return resourceUsage_;
      }
      /**
       * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
       */
      public int getResourceUsageCount() {
        return resourceUsage_.size();
      }
      /**
       * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage getResourceUsage(int index) {
        return resourceUsage_.get(index);
      }
      /**
       * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsageOrBuilder getResourceUsageOrBuilder(
          int index) {
        return resourceUsage_.get(index);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (timeoutSeconds_ != 0) {
          output.writeInt32(1, timeoutSeconds_);
        }
        if (!getStrategyBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, strategy_);
        }
        if (!getHostnameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, hostname_);
        }
        if (timingBreakdown_ != null) {
          output.writeMessage(4, getTimingBreakdown());
        }
        for (int i = 0; i < resourceUsage_.size(); i++) {
          output.writeMessage(5, resourceUsage_.get(i));
        }
        if (cachedRemotely_ != false) {
          output.writeBool(6, cachedRemotely_);
        }
        if (exitCode_ != 0) {
          output.writeInt32(7, exitCode_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (timeoutSeconds_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, timeoutSeconds_);
        }
        if (!getStrategyBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, strategy_);
        }
        if (!getHostnameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, hostname_);
        }
        if (timingBreakdown_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getTimingBreakdown());
        }
        for (int i = 0; i < resourceUsage_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, resourceUsage_.get(i));
        }
        if (cachedRemotely_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, cachedRemotely_);
        }
        if (exitCode_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(7, exitCode_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo) obj;

        boolean result = true;
        result = result && (getTimeoutSeconds()
            == other.getTimeoutSeconds());
        result = result && getStrategy()
            .equals(other.getStrategy());
        result = result && (getCachedRemotely()
            == other.getCachedRemotely());
        result = result && (getExitCode()
            == other.getExitCode());
        result = result && getHostname()
            .equals(other.getHostname());
        result = result && (hasTimingBreakdown() == other.hasTimingBreakdown());
        if (hasTimingBreakdown()) {
          result = result && getTimingBreakdown()
              .equals(other.getTimingBreakdown());
        }
        result = result && getResourceUsageList()
            .equals(other.getResourceUsageList());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + TIMEOUT_SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getTimeoutSeconds();
        hash = (37 * hash) + STRATEGY_FIELD_NUMBER;
        hash = (53 * hash) + getStrategy().hashCode();
        hash = (37 * hash) + CACHED_REMOTELY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getCachedRemotely());
        hash = (37 * hash) + EXIT_CODE_FIELD_NUMBER;
        hash = (53 * hash) + getExitCode();
        hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
        hash = (53 * hash) + getHostname().hashCode();
        if (hasTimingBreakdown()) {
          hash = (37 * hash) + TIMING_BREAKDOWN_FIELD_NUMBER;
          hash = (53 * hash) + getTimingBreakdown().hashCode();
        }
        if (getResourceUsageCount() > 0) {
          hash = (37 * hash) + RESOURCE_USAGE_FIELD_NUMBER;
          hash = (53 * hash) + getResourceUsageList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Message providing optional meta data on the execution of the test action,
       * if available.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.TestResult.ExecutionInfo}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.TestResult.ExecutionInfo)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfoOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.Builder.class);
        }

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

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

          strategy_ = "";

          cachedRemotely_ = false;

          exitCode_ = 0;

          hostname_ = "";

          if (timingBreakdownBuilder_ == null) {
            timingBreakdown_ = null;
          } else {
            timingBreakdown_ = null;
            timingBreakdownBuilder_ = null;
          }
          if (resourceUsageBuilder_ == null) {
            resourceUsage_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            resourceUsageBuilder_.clear();
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_ExecutionInfo_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.getDefaultInstance();
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          result.timeoutSeconds_ = timeoutSeconds_;
          result.strategy_ = strategy_;
          result.cachedRemotely_ = cachedRemotely_;
          result.exitCode_ = exitCode_;
          result.hostname_ = hostname_;
          if (timingBreakdownBuilder_ == null) {
            result.timingBreakdown_ = timingBreakdown_;
          } else {
            result.timingBreakdown_ = timingBreakdownBuilder_.build();
          }
          if (resourceUsageBuilder_ == null) {
            if (((bitField0_ & 0x00000040) == 0x00000040)) {
              resourceUsage_ = java.util.Collections.unmodifiableList(resourceUsage_);
              bitField0_ = (bitField0_ & ~0x00000040);
            }
            result.resourceUsage_ = resourceUsage_;
          } else {
            result.resourceUsage_ = resourceUsageBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.getDefaultInstance()) return this;
          if (other.getTimeoutSeconds() != 0) {
            setTimeoutSeconds(other.getTimeoutSeconds());
          }
          if (!other.getStrategy().isEmpty()) {
            strategy_ = other.strategy_;
            onChanged();
          }
          if (other.getCachedRemotely() != false) {
            setCachedRemotely(other.getCachedRemotely());
          }
          if (other.getExitCode() != 0) {
            setExitCode(other.getExitCode());
          }
          if (!other.getHostname().isEmpty()) {
            hostname_ = other.hostname_;
            onChanged();
          }
          if (other.hasTimingBreakdown()) {
            mergeTimingBreakdown(other.getTimingBreakdown());
          }
          if (resourceUsageBuilder_ == null) {
            if (!other.resourceUsage_.isEmpty()) {
              if (resourceUsage_.isEmpty()) {
                resourceUsage_ = other.resourceUsage_;
                bitField0_ = (bitField0_ & ~0x00000040);
              } else {
                ensureResourceUsageIsMutable();
                resourceUsage_.addAll(other.resourceUsage_);
              }
              onChanged();
            }
          } else {
            if (!other.resourceUsage_.isEmpty()) {
              if (resourceUsageBuilder_.isEmpty()) {
                resourceUsageBuilder_.dispose();
                resourceUsageBuilder_ = null;
                resourceUsage_ = other.resourceUsage_;
                bitField0_ = (bitField0_ & ~0x00000040);
                resourceUsageBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getResourceUsageFieldBuilder() : null;
              } else {
                resourceUsageBuilder_.addAllMessages(other.resourceUsage_);
              }
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

        private int timeoutSeconds_ ;
        /**
         * <pre>
         * Deprecated, use TargetComplete.test_timeout_seconds instead.
         * </pre>
         *
         * <code>int32 timeout_seconds = 1 [deprecated = true];</code>
         */
        @java.lang.Deprecated public int getTimeoutSeconds() {
          return timeoutSeconds_;
        }
        /**
         * <pre>
         * Deprecated, use TargetComplete.test_timeout_seconds instead.
         * </pre>
         *
         * <code>int32 timeout_seconds = 1 [deprecated = true];</code>
         */
        @java.lang.Deprecated public Builder setTimeoutSeconds(int value) {
          
          timeoutSeconds_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Deprecated, use TargetComplete.test_timeout_seconds instead.
         * </pre>
         *
         * <code>int32 timeout_seconds = 1 [deprecated = true];</code>
         */
        @java.lang.Deprecated public Builder clearTimeoutSeconds() {
          
          timeoutSeconds_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object strategy_ = "";
        /**
         * <pre>
         * Name of the strategy to execute this test action (e.g., "local",
         * "remote")
         * </pre>
         *
         * <code>string strategy = 2;</code>
         */
        public java.lang.String getStrategy() {
          java.lang.Object ref = strategy_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            strategy_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Name of the strategy to execute this test action (e.g., "local",
         * "remote")
         * </pre>
         *
         * <code>string strategy = 2;</code>
         */
        public com.google.protobuf.ByteString
            getStrategyBytes() {
          java.lang.Object ref = strategy_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            strategy_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * Name of the strategy to execute this test action (e.g., "local",
         * "remote")
         * </pre>
         *
         * <code>string strategy = 2;</code>
         */
        public Builder setStrategy(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          strategy_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Name of the strategy to execute this test action (e.g., "local",
         * "remote")
         * </pre>
         *
         * <code>string strategy = 2;</code>
         */
        public Builder clearStrategy() {
          
          strategy_ = getDefaultInstance().getStrategy();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Name of the strategy to execute this test action (e.g., "local",
         * "remote")
         * </pre>
         *
         * <code>string strategy = 2;</code>
         */
        public Builder setStrategyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          strategy_ = value;
          onChanged();
          return this;
        }

        private boolean cachedRemotely_ ;
        /**
         * <pre>
         * True, if the reported attempt was a cache hit in a remote cache.
         * </pre>
         *
         * <code>bool cached_remotely = 6;</code>
         */
        public boolean getCachedRemotely() {
          return cachedRemotely_;
        }
        /**
         * <pre>
         * True, if the reported attempt was a cache hit in a remote cache.
         * </pre>
         *
         * <code>bool cached_remotely = 6;</code>
         */
        public Builder setCachedRemotely(boolean value) {
          
          cachedRemotely_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * True, if the reported attempt was a cache hit in a remote cache.
         * </pre>
         *
         * <code>bool cached_remotely = 6;</code>
         */
        public Builder clearCachedRemotely() {
          
          cachedRemotely_ = false;
          onChanged();
          return this;
        }

        private int exitCode_ ;
        /**
         * <pre>
         * The exit code of the test action.
         * </pre>
         *
         * <code>int32 exit_code = 7;</code>
         */
        public int getExitCode() {
          return exitCode_;
        }
        /**
         * <pre>
         * The exit code of the test action.
         * </pre>
         *
         * <code>int32 exit_code = 7;</code>
         */
        public Builder setExitCode(int value) {
          
          exitCode_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * The exit code of the test action.
         * </pre>
         *
         * <code>int32 exit_code = 7;</code>
         */
        public Builder clearExitCode() {
          
          exitCode_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object hostname_ = "";
        /**
         * <pre>
         * The hostname of the machine where the test action was executed (in case
         * of remote execution), if known.
         * </pre>
         *
         * <code>string hostname = 3;</code>
         */
        public java.lang.String getHostname() {
          java.lang.Object ref = hostname_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            hostname_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * The hostname of the machine where the test action was executed (in case
         * of remote execution), if known.
         * </pre>
         *
         * <code>string hostname = 3;</code>
         */
        public com.google.protobuf.ByteString
            getHostnameBytes() {
          java.lang.Object ref = hostname_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            hostname_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * The hostname of the machine where the test action was executed (in case
         * of remote execution), if known.
         * </pre>
         *
         * <code>string hostname = 3;</code>
         */
        public Builder setHostname(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          hostname_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * The hostname of the machine where the test action was executed (in case
         * of remote execution), if known.
         * </pre>
         *
         * <code>string hostname = 3;</code>
         */
        public Builder clearHostname() {
          
          hostname_ = getDefaultInstance().getHostname();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * The hostname of the machine where the test action was executed (in case
         * of remote execution), if known.
         * </pre>
         *
         * <code>string hostname = 3;</code>
         */
        public Builder setHostnameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          hostname_ = value;
          onChanged();
          return this;
        }

        private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown timingBreakdown_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder> timingBreakdownBuilder_;
        /**
         * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
         */
        public boolean hasTimingBreakdown() {
          return timingBreakdownBuilder_ != null || timingBreakdown_ != null;
        }
        /**
         * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown getTimingBreakdown() {
          if (timingBreakdownBuilder_ == null) {
            return timingBreakdown_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.getDefaultInstance() : timingBreakdown_;
          } else {
            return timingBreakdownBuilder_.getMessage();
          }
        }
        /**
         * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
         */
        public Builder setTimingBreakdown(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown value) {
          if (timingBreakdownBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            timingBreakdown_ = value;
            onChanged();
          } else {
            timingBreakdownBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
         */
        public Builder setTimingBreakdown(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder builderForValue) {
          if (timingBreakdownBuilder_ == null) {
            timingBreakdown_ = builderForValue.build();
            onChanged();
          } else {
            timingBreakdownBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
         */
        public Builder mergeTimingBreakdown(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown value) {
          if (timingBreakdownBuilder_ == null) {
            if (timingBreakdown_ != null) {
              timingBreakdown_ =
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.newBuilder(timingBreakdown_).mergeFrom(value).buildPartial();
            } else {
              timingBreakdown_ = value;
            }
            onChanged();
          } else {
            timingBreakdownBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
         */
        public Builder clearTimingBreakdown() {
          if (timingBreakdownBuilder_ == null) {
            timingBreakdown_ = null;
            onChanged();
          } else {
            timingBreakdown_ = null;
            timingBreakdownBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder getTimingBreakdownBuilder() {
          
          onChanged();
          return getTimingBreakdownFieldBuilder().getBuilder();
        }
        /**
         * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder getTimingBreakdownOrBuilder() {
          if (timingBreakdownBuilder_ != null) {
            return timingBreakdownBuilder_.getMessageOrBuilder();
          } else {
            return timingBreakdown_ == null ?
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.getDefaultInstance() : timingBreakdown_;
          }
        }
        /**
         * <code>.build_event_stream.TestResult.ExecutionInfo.TimingBreakdown timing_breakdown = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder> 
            getTimingBreakdownFieldBuilder() {
          if (timingBreakdownBuilder_ == null) {
            timingBreakdownBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdown.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.TimingBreakdownOrBuilder>(
                    getTimingBreakdown(),
                    getParentForChildren(),
                    isClean());
            timingBreakdown_ = null;
          }
          return timingBreakdownBuilder_;
        }

        private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage> resourceUsage_ =
          java.util.Collections.emptyList();
        private void ensureResourceUsageIsMutable() {
          if (!((bitField0_ & 0x00000040) == 0x00000040)) {
            resourceUsage_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage>(resourceUsage_);
            bitField0_ |= 0x00000040;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsageOrBuilder> resourceUsageBuilder_;

        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage> getResourceUsageList() {
          if (resourceUsageBuilder_ == null) {
            return java.util.Collections.unmodifiableList(resourceUsage_);
          } else {
            return resourceUsageBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public int getResourceUsageCount() {
          if (resourceUsageBuilder_ == null) {
            return resourceUsage_.size();
          } else {
            return resourceUsageBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage getResourceUsage(int index) {
          if (resourceUsageBuilder_ == null) {
            return resourceUsage_.get(index);
          } else {
            return resourceUsageBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public Builder setResourceUsage(
            int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage value) {
          if (resourceUsageBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureResourceUsageIsMutable();
            resourceUsage_.set(index, value);
            onChanged();
          } else {
            resourceUsageBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public Builder setResourceUsage(
            int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder builderForValue) {
          if (resourceUsageBuilder_ == null) {
            ensureResourceUsageIsMutable();
            resourceUsage_.set(index, builderForValue.build());
            onChanged();
          } else {
            resourceUsageBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public Builder addResourceUsage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage value) {
          if (resourceUsageBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureResourceUsageIsMutable();
            resourceUsage_.add(value);
            onChanged();
          } else {
            resourceUsageBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public Builder addResourceUsage(
            int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage value) {
          if (resourceUsageBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureResourceUsageIsMutable();
            resourceUsage_.add(index, value);
            onChanged();
          } else {
            resourceUsageBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public Builder addResourceUsage(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder builderForValue) {
          if (resourceUsageBuilder_ == null) {
            ensureResourceUsageIsMutable();
            resourceUsage_.add(builderForValue.build());
            onChanged();
          } else {
            resourceUsageBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public Builder addResourceUsage(
            int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder builderForValue) {
          if (resourceUsageBuilder_ == null) {
            ensureResourceUsageIsMutable();
            resourceUsage_.add(index, builderForValue.build());
            onChanged();
          } else {
            resourceUsageBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public Builder addAllResourceUsage(
            java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage> values) {
          if (resourceUsageBuilder_ == null) {
            ensureResourceUsageIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, resourceUsage_);
            onChanged();
          } else {
            resourceUsageBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public Builder clearResourceUsage() {
          if (resourceUsageBuilder_ == null) {
            resourceUsage_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000040);
            onChanged();
          } else {
            resourceUsageBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public Builder removeResourceUsage(int index) {
          if (resourceUsageBuilder_ == null) {
            ensureResourceUsageIsMutable();
            resourceUsage_.remove(index);
            onChanged();
          } else {
            resourceUsageBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder getResourceUsageBuilder(
            int index) {
          return getResourceUsageFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsageOrBuilder getResourceUsageOrBuilder(
            int index) {
          if (resourceUsageBuilder_ == null) {
            return resourceUsage_.get(index);  } else {
            return resourceUsageBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsageOrBuilder> 
             getResourceUsageOrBuilderList() {
          if (resourceUsageBuilder_ != null) {
            return resourceUsageBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(resourceUsage_);
          }
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder addResourceUsageBuilder() {
          return getResourceUsageFieldBuilder().addBuilder(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.getDefaultInstance());
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder addResourceUsageBuilder(
            int index) {
          return getResourceUsageFieldBuilder().addBuilder(
              index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.getDefaultInstance());
        }
        /**
         * <code>repeated .build_event_stream.TestResult.ExecutionInfo.ResourceUsage resource_usage = 5;</code>
         */
        public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder> 
             getResourceUsageBuilderList() {
          return getResourceUsageFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsageOrBuilder> 
            getResourceUsageFieldBuilder() {
          if (resourceUsageBuilder_ == null) {
            resourceUsageBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsage.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.ResourceUsageOrBuilder>(
                    resourceUsage_,
                    ((bitField0_ & 0x00000040) == 0x00000040),
                    getParentForChildren(),
                    isClean());
            resourceUsage_ = null;
          }
          return resourceUsageBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:build_event_stream.TestResult.ExecutionInfo)
      }

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int STATUS_FIELD_NUMBER = 5;
    private int status_;
    /**
     * <pre>
     * The status of this test.
     * </pre>
     *
     * <code>.build_event_stream.TestStatus status = 5;</code>
     */
    public int getStatusValue() {
      return status_;
    }
    /**
     * <pre>
     * The status of this test.
     * </pre>
     *
     * <code>.build_event_stream.TestStatus status = 5;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus getStatus() {
      @SuppressWarnings("deprecation")
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus result = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.valueOf(status_);
      return result == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.UNRECOGNIZED : result;
    }

    public static final int STATUS_DETAILS_FIELD_NUMBER = 9;
    private volatile java.lang.Object statusDetails_;
    /**
     * <pre>
     * Additional details about the status of the test. This is intended for
     * user display and must not be parsed.
     * </pre>
     *
     * <code>string status_details = 9;</code>
     */
    public java.lang.String getStatusDetails() {
      java.lang.Object ref = statusDetails_;
      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();
        statusDetails_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Additional details about the status of the test. This is intended for
     * user display and must not be parsed.
     * </pre>
     *
     * <code>string status_details = 9;</code>
     */
    public com.google.protobuf.ByteString
        getStatusDetailsBytes() {
      java.lang.Object ref = statusDetails_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        statusDetails_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CACHED_LOCALLY_FIELD_NUMBER = 4;
    private boolean cachedLocally_;
    /**
     * <pre>
     * True, if the reported attempt is taken from the tool's local cache.
     * </pre>
     *
     * <code>bool cached_locally = 4;</code>
     */
    public boolean getCachedLocally() {
      return cachedLocally_;
    }

    public static final int TEST_ATTEMPT_START_MILLIS_EPOCH_FIELD_NUMBER = 6;
    private long testAttemptStartMillisEpoch_;
    /**
     * <pre>
     * Time in milliseconds since the epoch at which the test attempt was started.
     * Note: for cached test results, this is time can be before the start of the
     * build.
     * </pre>
     *
     * <code>int64 test_attempt_start_millis_epoch = 6;</code>
     */
    public long getTestAttemptStartMillisEpoch() {
      return testAttemptStartMillisEpoch_;
    }

    public static final int TEST_ATTEMPT_DURATION_MILLIS_FIELD_NUMBER = 3;
    private long testAttemptDurationMillis_;
    /**
     * <pre>
     * Time the test took to run. For locally cached results, this is the time
     * the cached invocation took when it was invoked.
     * </pre>
     *
     * <code>int64 test_attempt_duration_millis = 3;</code>
     */
    public long getTestAttemptDurationMillis() {
      return testAttemptDurationMillis_;
    }

    public static final int TEST_ACTION_OUTPUT_FIELD_NUMBER = 2;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> testActionOutput_;
    /**
     * <pre>
     * Files (logs, test.xml, undeclared outputs, etc) generated by that test
     * action.
     * </pre>
     *
     * <code>repeated .build_event_stream.File test_action_output = 2;</code>
     */
    public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getTestActionOutputList() {
      return testActionOutput_;
    }
    /**
     * <pre>
     * Files (logs, test.xml, undeclared outputs, etc) generated by that test
     * action.
     * </pre>
     *
     * <code>repeated .build_event_stream.File test_action_output = 2;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getTestActionOutputOrBuilderList() {
      return testActionOutput_;
    }
    /**
     * <pre>
     * Files (logs, test.xml, undeclared outputs, etc) generated by that test
     * action.
     * </pre>
     *
     * <code>repeated .build_event_stream.File test_action_output = 2;</code>
     */
    public int getTestActionOutputCount() {
      return testActionOutput_.size();
    }
    /**
     * <pre>
     * Files (logs, test.xml, undeclared outputs, etc) generated by that test
     * action.
     * </pre>
     *
     * <code>repeated .build_event_stream.File test_action_output = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getTestActionOutput(int index) {
      return testActionOutput_.get(index);
    }
    /**
     * <pre>
     * Files (logs, test.xml, undeclared outputs, etc) generated by that test
     * action.
     * </pre>
     *
     * <code>repeated .build_event_stream.File test_action_output = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getTestActionOutputOrBuilder(
        int index) {
      return testActionOutput_.get(index);
    }

    public static final int WARNING_FIELD_NUMBER = 7;
    private com.google.protobuf.LazyStringList warning_;
    /**
     * <pre>
     * Warnings generated by that test action.
     * </pre>
     *
     * <code>repeated string warning = 7;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getWarningList() {
      return warning_;
    }
    /**
     * <pre>
     * Warnings generated by that test action.
     * </pre>
     *
     * <code>repeated string warning = 7;</code>
     */
    public int getWarningCount() {
      return warning_.size();
    }
    /**
     * <pre>
     * Warnings generated by that test action.
     * </pre>
     *
     * <code>repeated string warning = 7;</code>
     */
    public java.lang.String getWarning(int index) {
      return warning_.get(index);
    }
    /**
     * <pre>
     * Warnings generated by that test action.
     * </pre>
     *
     * <code>repeated string warning = 7;</code>
     */
    public com.google.protobuf.ByteString
        getWarningBytes(int index) {
      return warning_.getByteString(index);
    }

    public static final int EXECUTION_INFO_FIELD_NUMBER = 8;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo executionInfo_;
    /**
     * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
     */
    public boolean hasExecutionInfo() {
      return executionInfo_ != null;
    }
    /**
     * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo getExecutionInfo() {
      return executionInfo_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.getDefaultInstance() : executionInfo_;
    }
    /**
     * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfoOrBuilder getExecutionInfoOrBuilder() {
      return getExecutionInfo();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < testActionOutput_.size(); i++) {
        output.writeMessage(2, testActionOutput_.get(i));
      }
      if (testAttemptDurationMillis_ != 0L) {
        output.writeInt64(3, testAttemptDurationMillis_);
      }
      if (cachedLocally_ != false) {
        output.writeBool(4, cachedLocally_);
      }
      if (status_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.NO_STATUS.getNumber()) {
        output.writeEnum(5, status_);
      }
      if (testAttemptStartMillisEpoch_ != 0L) {
        output.writeInt64(6, testAttemptStartMillisEpoch_);
      }
      for (int i = 0; i < warning_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, warning_.getRaw(i));
      }
      if (executionInfo_ != null) {
        output.writeMessage(8, getExecutionInfo());
      }
      if (!getStatusDetailsBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, statusDetails_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < testActionOutput_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, testActionOutput_.get(i));
      }
      if (testAttemptDurationMillis_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, testAttemptDurationMillis_);
      }
      if (cachedLocally_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, cachedLocally_);
      }
      if (status_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.NO_STATUS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, status_);
      }
      if (testAttemptStartMillisEpoch_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(6, testAttemptStartMillisEpoch_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < warning_.size(); i++) {
          dataSize += computeStringSizeNoTag(warning_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getWarningList().size();
      }
      if (executionInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getExecutionInfo());
      }
      if (!getStatusDetailsBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, statusDetails_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && status_ == other.status_;
      result = result && getStatusDetails()
          .equals(other.getStatusDetails());
      result = result && (getCachedLocally()
          == other.getCachedLocally());
      result = result && (getTestAttemptStartMillisEpoch()
          == other.getTestAttemptStartMillisEpoch());
      result = result && (getTestAttemptDurationMillis()
          == other.getTestAttemptDurationMillis());
      result = result && getTestActionOutputList()
          .equals(other.getTestActionOutputList());
      result = result && getWarningList()
          .equals(other.getWarningList());
      result = result && (hasExecutionInfo() == other.hasExecutionInfo());
      if (hasExecutionInfo()) {
        result = result && getExecutionInfo()
            .equals(other.getExecutionInfo());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + status_;
      hash = (37 * hash) + STATUS_DETAILS_FIELD_NUMBER;
      hash = (53 * hash) + getStatusDetails().hashCode();
      hash = (37 * hash) + CACHED_LOCALLY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getCachedLocally());
      hash = (37 * hash) + TEST_ATTEMPT_START_MILLIS_EPOCH_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTestAttemptStartMillisEpoch());
      hash = (37 * hash) + TEST_ATTEMPT_DURATION_MILLIS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTestAttemptDurationMillis());
      if (getTestActionOutputCount() > 0) {
        hash = (37 * hash) + TEST_ACTION_OUTPUT_FIELD_NUMBER;
        hash = (53 * hash) + getTestActionOutputList().hashCode();
      }
      if (getWarningCount() > 0) {
        hash = (37 * hash) + WARNING_FIELD_NUMBER;
        hash = (53 * hash) + getWarningList().hashCode();
      }
      if (hasExecutionInfo()) {
        hash = (37 * hash) + EXECUTION_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getExecutionInfo().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Payload on events reporting about individual test action.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.TestResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.TestResult)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.Builder.class);
      }

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

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

        statusDetails_ = "";

        cachedLocally_ = false;

        testAttemptStartMillisEpoch_ = 0L;

        testAttemptDurationMillis_ = 0L;

        if (testActionOutputBuilder_ == null) {
          testActionOutput_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          testActionOutputBuilder_.clear();
        }
        warning_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        if (executionInfoBuilder_ == null) {
          executionInfo_ = null;
        } else {
          executionInfo_ = null;
          executionInfoBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_TestResult_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.status_ = status_;
        result.statusDetails_ = statusDetails_;
        result.cachedLocally_ = cachedLocally_;
        result.testAttemptStartMillisEpoch_ = testAttemptStartMillisEpoch_;
        result.testAttemptDurationMillis_ = testAttemptDurationMillis_;
        if (testActionOutputBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            testActionOutput_ = java.util.Collections.unmodifiableList(testActionOutput_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.testActionOutput_ = testActionOutput_;
        } else {
          result.testActionOutput_ = testActionOutputBuilder_.build();
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          warning_ = warning_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.warning_ = warning_;
        if (executionInfoBuilder_ == null) {
          result.executionInfo_ = executionInfo_;
        } else {
          result.executionInfo_ = executionInfoBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.getDefaultInstance()) return this;
        if (other.status_ != 0) {
          setStatusValue(other.getStatusValue());
        }
        if (!other.getStatusDetails().isEmpty()) {
          statusDetails_ = other.statusDetails_;
          onChanged();
        }
        if (other.getCachedLocally() != false) {
          setCachedLocally(other.getCachedLocally());
        }
        if (other.getTestAttemptStartMillisEpoch() != 0L) {
          setTestAttemptStartMillisEpoch(other.getTestAttemptStartMillisEpoch());
        }
        if (other.getTestAttemptDurationMillis() != 0L) {
          setTestAttemptDurationMillis(other.getTestAttemptDurationMillis());
        }
        if (testActionOutputBuilder_ == null) {
          if (!other.testActionOutput_.isEmpty()) {
            if (testActionOutput_.isEmpty()) {
              testActionOutput_ = other.testActionOutput_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureTestActionOutputIsMutable();
              testActionOutput_.addAll(other.testActionOutput_);
            }
            onChanged();
          }
        } else {
          if (!other.testActionOutput_.isEmpty()) {
            if (testActionOutputBuilder_.isEmpty()) {
              testActionOutputBuilder_.dispose();
              testActionOutputBuilder_ = null;
              testActionOutput_ = other.testActionOutput_;
              bitField0_ = (bitField0_ & ~0x00000020);
              testActionOutputBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getTestActionOutputFieldBuilder() : null;
            } else {
              testActionOutputBuilder_.addAllMessages(other.testActionOutput_);
            }
          }
        }
        if (!other.warning_.isEmpty()) {
          if (warning_.isEmpty()) {
            warning_ = other.warning_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureWarningIsMutable();
            warning_.addAll(other.warning_);
          }
          onChanged();
        }
        if (other.hasExecutionInfo()) {
          mergeExecutionInfo(other.getExecutionInfo());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int status_ = 0;
      /**
       * <pre>
       * The status of this test.
       * </pre>
       *
       * <code>.build_event_stream.TestStatus status = 5;</code>
       */
      public int getStatusValue() {
        return status_;
      }
      /**
       * <pre>
       * The status of this test.
       * </pre>
       *
       * <code>.build_event_stream.TestStatus status = 5;</code>
       */
      public Builder setStatusValue(int value) {
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The status of this test.
       * </pre>
       *
       * <code>.build_event_stream.TestStatus status = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus getStatus() {
        @SuppressWarnings("deprecation")
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus result = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.valueOf(status_);
        return result == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * The status of this test.
       * </pre>
       *
       * <code>.build_event_stream.TestStatus status = 5;</code>
       */
      public Builder setStatus(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The status of this test.
       * </pre>
       *
       * <code>.build_event_stream.TestStatus status = 5;</code>
       */
      public Builder clearStatus() {
        
        status_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object statusDetails_ = "";
      /**
       * <pre>
       * Additional details about the status of the test. This is intended for
       * user display and must not be parsed.
       * </pre>
       *
       * <code>string status_details = 9;</code>
       */
      public java.lang.String getStatusDetails() {
        java.lang.Object ref = statusDetails_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          statusDetails_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Additional details about the status of the test. This is intended for
       * user display and must not be parsed.
       * </pre>
       *
       * <code>string status_details = 9;</code>
       */
      public com.google.protobuf.ByteString
          getStatusDetailsBytes() {
        java.lang.Object ref = statusDetails_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          statusDetails_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Additional details about the status of the test. This is intended for
       * user display and must not be parsed.
       * </pre>
       *
       * <code>string status_details = 9;</code>
       */
      public Builder setStatusDetails(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        statusDetails_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Additional details about the status of the test. This is intended for
       * user display and must not be parsed.
       * </pre>
       *
       * <code>string status_details = 9;</code>
       */
      public Builder clearStatusDetails() {
        
        statusDetails_ = getDefaultInstance().getStatusDetails();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Additional details about the status of the test. This is intended for
       * user display and must not be parsed.
       * </pre>
       *
       * <code>string status_details = 9;</code>
       */
      public Builder setStatusDetailsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        statusDetails_ = value;
        onChanged();
        return this;
      }

      private boolean cachedLocally_ ;
      /**
       * <pre>
       * True, if the reported attempt is taken from the tool's local cache.
       * </pre>
       *
       * <code>bool cached_locally = 4;</code>
       */
      public boolean getCachedLocally() {
        return cachedLocally_;
      }
      /**
       * <pre>
       * True, if the reported attempt is taken from the tool's local cache.
       * </pre>
       *
       * <code>bool cached_locally = 4;</code>
       */
      public Builder setCachedLocally(boolean value) {
        
        cachedLocally_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * True, if the reported attempt is taken from the tool's local cache.
       * </pre>
       *
       * <code>bool cached_locally = 4;</code>
       */
      public Builder clearCachedLocally() {
        
        cachedLocally_ = false;
        onChanged();
        return this;
      }

      private long testAttemptStartMillisEpoch_ ;
      /**
       * <pre>
       * Time in milliseconds since the epoch at which the test attempt was started.
       * Note: for cached test results, this is time can be before the start of the
       * build.
       * </pre>
       *
       * <code>int64 test_attempt_start_millis_epoch = 6;</code>
       */
      public long getTestAttemptStartMillisEpoch() {
        return testAttemptStartMillisEpoch_;
      }
      /**
       * <pre>
       * Time in milliseconds since the epoch at which the test attempt was started.
       * Note: for cached test results, this is time can be before the start of the
       * build.
       * </pre>
       *
       * <code>int64 test_attempt_start_millis_epoch = 6;</code>
       */
      public Builder setTestAttemptStartMillisEpoch(long value) {
        
        testAttemptStartMillisEpoch_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Time in milliseconds since the epoch at which the test attempt was started.
       * Note: for cached test results, this is time can be before the start of the
       * build.
       * </pre>
       *
       * <code>int64 test_attempt_start_millis_epoch = 6;</code>
       */
      public Builder clearTestAttemptStartMillisEpoch() {
        
        testAttemptStartMillisEpoch_ = 0L;
        onChanged();
        return this;
      }

      private long testAttemptDurationMillis_ ;
      /**
       * <pre>
       * Time the test took to run. For locally cached results, this is the time
       * the cached invocation took when it was invoked.
       * </pre>
       *
       * <code>int64 test_attempt_duration_millis = 3;</code>
       */
      public long getTestAttemptDurationMillis() {
        return testAttemptDurationMillis_;
      }
      /**
       * <pre>
       * Time the test took to run. For locally cached results, this is the time
       * the cached invocation took when it was invoked.
       * </pre>
       *
       * <code>int64 test_attempt_duration_millis = 3;</code>
       */
      public Builder setTestAttemptDurationMillis(long value) {
        
        testAttemptDurationMillis_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Time the test took to run. For locally cached results, this is the time
       * the cached invocation took when it was invoked.
       * </pre>
       *
       * <code>int64 test_attempt_duration_millis = 3;</code>
       */
      public Builder clearTestAttemptDurationMillis() {
        
        testAttemptDurationMillis_ = 0L;
        onChanged();
        return this;
      }

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

      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> testActionOutputBuilder_;

      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getTestActionOutputList() {
        if (testActionOutputBuilder_ == null) {
          return java.util.Collections.unmodifiableList(testActionOutput_);
        } else {
          return testActionOutputBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public int getTestActionOutputCount() {
        if (testActionOutputBuilder_ == null) {
          return testActionOutput_.size();
        } else {
          return testActionOutputBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getTestActionOutput(int index) {
        if (testActionOutputBuilder_ == null) {
          return testActionOutput_.get(index);
        } else {
          return testActionOutputBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public Builder setTestActionOutput(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (testActionOutputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTestActionOutputIsMutable();
          testActionOutput_.set(index, value);
          onChanged();
        } else {
          testActionOutputBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public Builder setTestActionOutput(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (testActionOutputBuilder_ == null) {
          ensureTestActionOutputIsMutable();
          testActionOutput_.set(index, builderForValue.build());
          onChanged();
        } else {
          testActionOutputBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public Builder addTestActionOutput(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (testActionOutputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTestActionOutputIsMutable();
          testActionOutput_.add(value);
          onChanged();
        } else {
          testActionOutputBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public Builder addTestActionOutput(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (testActionOutputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTestActionOutputIsMutable();
          testActionOutput_.add(index, value);
          onChanged();
        } else {
          testActionOutputBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public Builder addTestActionOutput(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (testActionOutputBuilder_ == null) {
          ensureTestActionOutputIsMutable();
          testActionOutput_.add(builderForValue.build());
          onChanged();
        } else {
          testActionOutputBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public Builder addTestActionOutput(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (testActionOutputBuilder_ == null) {
          ensureTestActionOutputIsMutable();
          testActionOutput_.add(index, builderForValue.build());
          onChanged();
        } else {
          testActionOutputBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public Builder addAllTestActionOutput(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> values) {
        if (testActionOutputBuilder_ == null) {
          ensureTestActionOutputIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, testActionOutput_);
          onChanged();
        } else {
          testActionOutputBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public Builder clearTestActionOutput() {
        if (testActionOutputBuilder_ == null) {
          testActionOutput_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          testActionOutputBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public Builder removeTestActionOutput(int index) {
        if (testActionOutputBuilder_ == null) {
          ensureTestActionOutputIsMutable();
          testActionOutput_.remove(index);
          onChanged();
        } else {
          testActionOutputBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder getTestActionOutputBuilder(
          int index) {
        return getTestActionOutputFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getTestActionOutputOrBuilder(
          int index) {
        if (testActionOutputBuilder_ == null) {
          return testActionOutput_.get(index);  } else {
          return testActionOutputBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
           getTestActionOutputOrBuilderList() {
        if (testActionOutputBuilder_ != null) {
          return testActionOutputBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(testActionOutput_);
        }
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addTestActionOutputBuilder() {
        return getTestActionOutputFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addTestActionOutputBuilder(
          int index) {
        return getTestActionOutputFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <pre>
       * Files (logs, test.xml, undeclared outputs, etc) generated by that test
       * action.
       * </pre>
       *
       * <code>repeated .build_event_stream.File test_action_output = 2;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder> 
           getTestActionOutputBuilderList() {
        return getTestActionOutputFieldBuilder().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> 
          getTestActionOutputFieldBuilder() {
        if (testActionOutputBuilder_ == null) {
          testActionOutputBuilder_ = 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>(
                  testActionOutput_,
                  ((bitField0_ & 0x00000020) == 0x00000020),
                  getParentForChildren(),
                  isClean());
          testActionOutput_ = null;
        }
        return testActionOutputBuilder_;
      }

      private com.google.protobuf.LazyStringList warning_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureWarningIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          warning_ = new com.google.protobuf.LazyStringArrayList(warning_);
          bitField0_ |= 0x00000040;
         }
      }
      /**
       * <pre>
       * Warnings generated by that test action.
       * </pre>
       *
       * <code>repeated string warning = 7;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getWarningList() {
        return warning_.getUnmodifiableView();
      }
      /**
       * <pre>
       * Warnings generated by that test action.
       * </pre>
       *
       * <code>repeated string warning = 7;</code>
       */
      public int getWarningCount() {
        return warning_.size();
      }
      /**
       * <pre>
       * Warnings generated by that test action.
       * </pre>
       *
       * <code>repeated string warning = 7;</code>
       */
      public java.lang.String getWarning(int index) {
        return warning_.get(index);
      }
      /**
       * <pre>
       * Warnings generated by that test action.
       * </pre>
       *
       * <code>repeated string warning = 7;</code>
       */
      public com.google.protobuf.ByteString
          getWarningBytes(int index) {
        return warning_.getByteString(index);
      }
      /**
       * <pre>
       * Warnings generated by that test action.
       * </pre>
       *
       * <code>repeated string warning = 7;</code>
       */
      public Builder setWarning(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureWarningIsMutable();
        warning_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Warnings generated by that test action.
       * </pre>
       *
       * <code>repeated string warning = 7;</code>
       */
      public Builder addWarning(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureWarningIsMutable();
        warning_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Warnings generated by that test action.
       * </pre>
       *
       * <code>repeated string warning = 7;</code>
       */
      public Builder addAllWarning(
          java.lang.Iterable<java.lang.String> values) {
        ensureWarningIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, warning_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Warnings generated by that test action.
       * </pre>
       *
       * <code>repeated string warning = 7;</code>
       */
      public Builder clearWarning() {
        warning_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Warnings generated by that test action.
       * </pre>
       *
       * <code>repeated string warning = 7;</code>
       */
      public Builder addWarningBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureWarningIsMutable();
        warning_.add(value);
        onChanged();
        return this;
      }

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo executionInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfoOrBuilder> executionInfoBuilder_;
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
       */
      public boolean hasExecutionInfo() {
        return executionInfoBuilder_ != null || executionInfo_ != null;
      }
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo getExecutionInfo() {
        if (executionInfoBuilder_ == null) {
          return executionInfo_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.getDefaultInstance() : executionInfo_;
        } else {
          return executionInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
       */
      public Builder setExecutionInfo(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo value) {
        if (executionInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          executionInfo_ = value;
          onChanged();
        } else {
          executionInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
       */
      public Builder setExecutionInfo(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.Builder builderForValue) {
        if (executionInfoBuilder_ == null) {
          executionInfo_ = builderForValue.build();
          onChanged();
        } else {
          executionInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
       */
      public Builder mergeExecutionInfo(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo value) {
        if (executionInfoBuilder_ == null) {
          if (executionInfo_ != null) {
            executionInfo_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.newBuilder(executionInfo_).mergeFrom(value).buildPartial();
          } else {
            executionInfo_ = value;
          }
          onChanged();
        } else {
          executionInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
       */
      public Builder clearExecutionInfo() {
        if (executionInfoBuilder_ == null) {
          executionInfo_ = null;
          onChanged();
        } else {
          executionInfo_ = null;
          executionInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.Builder getExecutionInfoBuilder() {
        
        onChanged();
        return getExecutionInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfoOrBuilder getExecutionInfoOrBuilder() {
        if (executionInfoBuilder_ != null) {
          return executionInfoBuilder_.getMessageOrBuilder();
        } else {
          return executionInfo_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.getDefaultInstance() : executionInfo_;
        }
      }
      /**
       * <code>.build_event_stream.TestResult.ExecutionInfo execution_info = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfoOrBuilder> 
          getExecutionInfoFieldBuilder() {
        if (executionInfoBuilder_ == null) {
          executionInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfo.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.ExecutionInfoOrBuilder>(
                  getExecutionInfo(),
                  getParentForChildren(),
                  isClean());
          executionInfo_ = null;
        }
        return executionInfoBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


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

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

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

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

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

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

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     * Wrapper around BlazeTestStatus to support importing that enum to proto3.
     * Overall status of test, accumulated over all runs, shards, and attempts.
     * </pre>
     *
     * <code>.build_event_stream.TestStatus overall_status = 5;</code>
     */
    int getOverallStatusValue();
    /**
     * <pre>
     * Wrapper around BlazeTestStatus to support importing that enum to proto3.
     * Overall status of test, accumulated over all runs, shards, and attempts.
     * </pre>
     *
     * <code>.build_event_stream.TestStatus overall_status = 5;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus getOverallStatus();

    /**
     * <pre>
     * Total number of runs
     * </pre>
     *
     * <code>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>
     * Total number of cached test actions
     * </pre>
     *
     * <code>int32 total_num_cached = 6;</code>
     */
    int getTotalNumCached();
  }
  /**
   * <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 {
  private static final long serialVersionUID = 0L;
    // Use TestSummary.newBuilder() to construct.
    private TestSummary(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TestSummary() {
      overallStatus_ = 0;
      totalRunCount_ = 0;
      passed_ = java.util.Collections.emptyList();
      failed_ = java.util.Collections.emptyList();
      totalNumCached_ = 0;
    }

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

              totalRunCount_ = input.readInt32();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                passed_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>();
                mutable_bitField0_ |= 0x00000004;
              }
              passed_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry));
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                failed_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>();
                mutable_bitField0_ |= 0x00000008;
              }
              failed_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry));
              break;
            }
            case 40: {
              int rawValue = input.readEnum();

              overallStatus_ = rawValue;
              break;
            }
            case 48: {

              totalNumCached_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          passed_ = java.util.Collections.unmodifiableList(passed_);
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          failed_ = java.util.Collections.unmodifiableList(failed_);
        }
        this.unknownFields = unknownFields.build();
        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;
    }

    @java.lang.Override
    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 OVERALL_STATUS_FIELD_NUMBER = 5;
    private int overallStatus_;
    /**
     * <pre>
     * Wrapper around BlazeTestStatus to support importing that enum to proto3.
     * Overall status of test, accumulated over all runs, shards, and attempts.
     * </pre>
     *
     * <code>.build_event_stream.TestStatus overall_status = 5;</code>
     */
    public int getOverallStatusValue() {
      return overallStatus_;
    }
    /**
     * <pre>
     * Wrapper around BlazeTestStatus to support importing that enum to proto3.
     * Overall status of test, accumulated over all runs, shards, and attempts.
     * </pre>
     *
     * <code>.build_event_stream.TestStatus overall_status = 5;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus getOverallStatus() {
      @SuppressWarnings("deprecation")
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus result = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.valueOf(overallStatus_);
      return result == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.UNRECOGNIZED : result;
    }

    public static final int TOTAL_RUN_COUNT_FIELD_NUMBER = 1;
    private int totalRunCount_;
    /**
     * <pre>
     * Total number of runs
     * </pre>
     *
     * <code>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);
    }

    public static final int TOTAL_NUM_CACHED_FIELD_NUMBER = 6;
    private int totalNumCached_;
    /**
     * <pre>
     * Total number of cached test actions
     * </pre>
     *
     * <code>int32 total_num_cached = 6;</code>
     */
    public int getTotalNumCached() {
      return totalNumCached_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (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));
      }
      if (overallStatus_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.NO_STATUS.getNumber()) {
        output.writeEnum(5, overallStatus_);
      }
      if (totalNumCached_ != 0) {
        output.writeInt32(6, totalNumCached_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    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));
      }
      if (overallStatus_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.NO_STATUS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, overallStatus_);
      }
      if (totalNumCached_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, totalNumCached_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof 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 && overallStatus_ == other.overallStatus_;
      result = result && (getTotalRunCount()
          == other.getTotalRunCount());
      result = result && getPassedList()
          .equals(other.getPassedList());
      result = result && getFailedList()
          .equals(other.getFailedList());
      result = result && (getTotalNumCached()
          == other.getTotalNumCached());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + OVERALL_STATUS_FIELD_NUMBER;
      hash = (53 * hash) + overallStatus_;
      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 = (37 * hash) + TOTAL_NUM_CACHED_FIELD_NUMBER;
      hash = (53 * hash) + getTotalNumCached();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary parseFrom(
        java.nio.ByteBuffer 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(
        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);
    }

    @java.lang.Override
    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);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <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;
      }

      @java.lang.Override
      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();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        overallStatus_ = 0;

        totalRunCount_ = 0;

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

        return this;
      }

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

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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.overallStatus_ = overallStatus_;
        result.totalRunCount_ = totalRunCount_;
        if (passedBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            passed_ = java.util.Collections.unmodifiableList(passed_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.passed_ = passed_;
        } else {
          result.passed_ = passedBuilder_.build();
        }
        if (failedBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            failed_ = java.util.Collections.unmodifiableList(failed_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.failed_ = failed_;
        } else {
          result.failed_ = failedBuilder_.build();
        }
        result.totalNumCached_ = totalNumCached_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof 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.overallStatus_ != 0) {
          setOverallStatusValue(other.getOverallStatusValue());
        }
        if (other.getTotalRunCount() != 0) {
          setTotalRunCount(other.getTotalRunCount());
        }
        if (passedBuilder_ == null) {
          if (!other.passed_.isEmpty()) {
            if (passed_.isEmpty()) {
              passed_ = other.passed_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensurePassedIsMutable();
              passed_.addAll(other.passed_);
            }
            onChanged();
          }
        } else {
          if (!other.passed_.isEmpty()) {
            if (passedBuilder_.isEmpty()) {
              passedBuilder_.dispose();
              passedBuilder_ = null;
              passed_ = other.passed_;
              bitField0_ = (bitField0_ & ~0x00000004);
              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_ & ~0x00000008);
            } else {
              ensureFailedIsMutable();
              failed_.addAll(other.failed_);
            }
            onChanged();
          }
        } else {
          if (!other.failed_.isEmpty()) {
            if (failedBuilder_.isEmpty()) {
              failedBuilder_.dispose();
              failedBuilder_ = null;
              failed_ = other.failed_;
              bitField0_ = (bitField0_ & ~0x00000008);
              failedBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFailedFieldBuilder() : null;
            } else {
              failedBuilder_.addAllMessages(other.failed_);
            }
          }
        }
        if (other.getTotalNumCached() != 0) {
          setTotalNumCached(other.getTotalNumCached());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        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 overallStatus_ = 0;
      /**
       * <pre>
       * Wrapper around BlazeTestStatus to support importing that enum to proto3.
       * Overall status of test, accumulated over all runs, shards, and attempts.
       * </pre>
       *
       * <code>.build_event_stream.TestStatus overall_status = 5;</code>
       */
      public int getOverallStatusValue() {
        return overallStatus_;
      }
      /**
       * <pre>
       * Wrapper around BlazeTestStatus to support importing that enum to proto3.
       * Overall status of test, accumulated over all runs, shards, and attempts.
       * </pre>
       *
       * <code>.build_event_stream.TestStatus overall_status = 5;</code>
       */
      public Builder setOverallStatusValue(int value) {
        overallStatus_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Wrapper around BlazeTestStatus to support importing that enum to proto3.
       * Overall status of test, accumulated over all runs, shards, and attempts.
       * </pre>
       *
       * <code>.build_event_stream.TestStatus overall_status = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus getOverallStatus() {
        @SuppressWarnings("deprecation")
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus result = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.valueOf(overallStatus_);
        return result == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * Wrapper around BlazeTestStatus to support importing that enum to proto3.
       * Overall status of test, accumulated over all runs, shards, and attempts.
       * </pre>
       *
       * <code>.build_event_stream.TestStatus overall_status = 5;</code>
       */
      public Builder setOverallStatus(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        overallStatus_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Wrapper around BlazeTestStatus to support importing that enum to proto3.
       * Overall status of test, accumulated over all runs, shards, and attempts.
       * </pre>
       *
       * <code>.build_event_stream.TestStatus overall_status = 5;</code>
       */
      public Builder clearOverallStatus() {
        
        overallStatus_ = 0;
        onChanged();
        return this;
      }

      private int totalRunCount_ ;
      /**
       * <pre>
       * Total number of runs
       * </pre>
       *
       * <code>int32 total_run_count = 1;</code>
       */
      public int getTotalRunCount() {
        return totalRunCount_;
      }
      /**
       * <pre>
       * Total number of runs
       * </pre>
       *
       * <code>int32 total_run_count = 1;</code>
       */
      public Builder setTotalRunCount(int value) {
        
        totalRunCount_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Total number of runs
       * </pre>
       *
       * <code>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_ & 0x00000004) == 0x00000004)) {
          passed_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>(passed_);
          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> 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_ & ~0x00000004);
          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_ & 0x00000004) == 0x00000004),
                  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_ & 0x00000008) == 0x00000008)) {
          failed_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>(failed_);
          bitField0_ |= 0x00000008;
         }
      }

      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_ & ~0x00000008);
          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_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          failed_ = null;
        }
        return failedBuilder_;
      }

      private int totalNumCached_ ;
      /**
       * <pre>
       * Total number of cached test actions
       * </pre>
       *
       * <code>int32 total_num_cached = 6;</code>
       */
      public int getTotalNumCached() {
        return totalNumCached_;
      }
      /**
       * <pre>
       * Total number of cached test actions
       * </pre>
       *
       * <code>int32 total_num_cached = 6;</code>
       */
      public Builder setTotalNumCached(int value) {
        
        totalNumCached_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Total number of cached test actions
       * </pre>
       *
       * <code>int32 total_num_cached = 6;</code>
       */
      public Builder clearTotalNumCached() {
        
        totalNumCached_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope: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>() {
      @java.lang.Override
      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;
    }

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

  }

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

    /**
     * <pre>
     * If the build succeeded or failed.
     * </pre>
     *
     * <code>bool overall_success = 1 [deprecated = true];</code>
     */
    @java.lang.Deprecated boolean getOverallSuccess();

    /**
     * <pre>
     * The overall status of the build. A build was successful iff
     * ExitCode.code equals 0.
     * </pre>
     *
     * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
     */
    boolean hasExitCode();
    /**
     * <pre>
     * The overall status of the build. A build was successful iff
     * ExitCode.code equals 0.
     * </pre>
     *
     * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode getExitCode();
    /**
     * <pre>
     * The overall status of the build. A build was successful iff
     * ExitCode.code equals 0.
     * </pre>
     *
     * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCodeOrBuilder getExitCodeOrBuilder();

    /**
     * <pre>
     * Time in milliseconds since the epoch.
     * TODO(buchgr): Use google.protobuf.Timestamp once bazel's protoc supports
     * it.
     * </pre>
     *
     * <code>int64 finish_time_millis = 2;</code>
     */
    long getFinishTimeMillis();
  }
  /**
   * <pre>
   * Event indicating the end of a build.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.BuildFinished}
   */
  public  static final class BuildFinished extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.BuildFinished)
      BuildFinishedOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BuildFinished.newBuilder() to construct.
    private BuildFinished(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BuildFinished() {
      overallSuccess_ = false;
      finishTimeMillis_ = 0L;
    }

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

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

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

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildFinished_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.Builder.class);
    }

    public interface ExitCodeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildFinished.ExitCode)
        com.google.protobuf.MessageOrBuilder {

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

      /**
       * <pre>
       * The exit code.
       * </pre>
       *
       * <code>int32 code = 2;</code>
       */
      int getCode();
    }
    /**
     * <pre>
     * Exit code of a build. The possible values correspond to the predefined
     * codes in bazel's lib.ExitCode class, as well as any custom exit code a
     * module might define. The predefined exit codes are subject to change (but
     * rarely do) and are not part of the public API.
     * A build was successful iff ExitCode.code equals 0.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildFinished.ExitCode}
     */
    public  static final class ExitCode extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildFinished.ExitCode)
        ExitCodeOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ExitCode.newBuilder() to construct.
      private ExitCode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ExitCode() {
        name_ = "";
        code_ = 0;
      }

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

                name_ = s;
                break;
              }
              case 16: {

                code_ = input.readInt32();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildFinished_ExitCode_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildFinished_ExitCode_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.Builder.class);
      }

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

      public static final int CODE_FIELD_NUMBER = 2;
      private int code_;
      /**
       * <pre>
       * The exit code.
       * </pre>
       *
       * <code>int32 code = 2;</code>
       */
      public int getCode() {
        return code_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

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

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode) obj;

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Exit code of a build. The possible values correspond to the predefined
       * codes in bazel's lib.ExitCode class, as well as any custom exit code a
       * module might define. The predefined exit codes are subject to change (but
       * rarely do) and are not part of the public API.
       * A build was successful iff ExitCode.code equals 0.
       * </pre>
       *
       * Protobuf type {@code build_event_stream.BuildFinished.ExitCode}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildFinished.ExitCode)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCodeOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildFinished_ExitCode_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildFinished_ExitCode_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.Builder.class);
        }

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

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

          code_ = 0;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildFinished_ExitCode_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.getDefaultInstance();
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode(this);
          result.name_ = name_;
          result.code_ = code_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.getDefaultInstance()) return this;
          if (!other.getName().isEmpty()) {
            name_ = other.name_;
            onChanged();
          }
          if (other.getCode() != 0) {
            setCode(other.getCode());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

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

        private int code_ ;
        /**
         * <pre>
         * The exit code.
         * </pre>
         *
         * <code>int32 code = 2;</code>
         */
        public int getCode() {
          return code_;
        }
        /**
         * <pre>
         * The exit code.
         * </pre>
         *
         * <code>int32 code = 2;</code>
         */
        public Builder setCode(int value) {
          
          code_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * The exit code.
         * </pre>
         *
         * <code>int32 code = 2;</code>
         */
        public Builder clearCode() {
          
          code_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildFinished.ExitCode)
      }

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int OVERALL_SUCCESS_FIELD_NUMBER = 1;
    private boolean overallSuccess_;
    /**
     * <pre>
     * If the build succeeded or failed.
     * </pre>
     *
     * <code>bool overall_success = 1 [deprecated = true];</code>
     */
    @java.lang.Deprecated public boolean getOverallSuccess() {
      return overallSuccess_;
    }

    public static final int EXIT_CODE_FIELD_NUMBER = 3;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode exitCode_;
    /**
     * <pre>
     * The overall status of the build. A build was successful iff
     * ExitCode.code equals 0.
     * </pre>
     *
     * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
     */
    public boolean hasExitCode() {
      return exitCode_ != null;
    }
    /**
     * <pre>
     * The overall status of the build. A build was successful iff
     * ExitCode.code equals 0.
     * </pre>
     *
     * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode getExitCode() {
      return exitCode_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.getDefaultInstance() : exitCode_;
    }
    /**
     * <pre>
     * The overall status of the build. A build was successful iff
     * ExitCode.code equals 0.
     * </pre>
     *
     * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCodeOrBuilder getExitCodeOrBuilder() {
      return getExitCode();
    }

    public static final int FINISH_TIME_MILLIS_FIELD_NUMBER = 2;
    private long finishTimeMillis_;
    /**
     * <pre>
     * Time in milliseconds since the epoch.
     * TODO(buchgr): Use google.protobuf.Timestamp once bazel's protoc supports
     * it.
     * </pre>
     *
     * <code>int64 finish_time_millis = 2;</code>
     */
    public long getFinishTimeMillis() {
      return finishTimeMillis_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (overallSuccess_ != false) {
        output.writeBool(1, overallSuccess_);
      }
      if (finishTimeMillis_ != 0L) {
        output.writeInt64(2, finishTimeMillis_);
      }
      if (exitCode_ != null) {
        output.writeMessage(3, getExitCode());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (overallSuccess_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, overallSuccess_);
      }
      if (finishTimeMillis_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, finishTimeMillis_);
      }
      if (exitCode_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getExitCode());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (getOverallSuccess()
          == other.getOverallSuccess());
      result = result && (hasExitCode() == other.hasExitCode());
      if (hasExitCode()) {
        result = result && getExitCode()
            .equals(other.getExitCode());
      }
      result = result && (getFinishTimeMillis()
          == other.getFinishTimeMillis());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + OVERALL_SUCCESS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getOverallSuccess());
      if (hasExitCode()) {
        hash = (37 * hash) + EXIT_CODE_FIELD_NUMBER;
        hash = (53 * hash) + getExitCode().hashCode();
      }
      hash = (37 * hash) + FINISH_TIME_MILLIS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getFinishTimeMillis());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Event indicating the end of a build.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildFinished}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.BuildFinished)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinishedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildFinished_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildFinished_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.Builder.class);
      }

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

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

        if (exitCodeBuilder_ == null) {
          exitCode_ = null;
        } else {
          exitCode_ = null;
          exitCodeBuilder_ = null;
        }
        finishTimeMillis_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildFinished_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished(this);
        result.overallSuccess_ = overallSuccess_;
        if (exitCodeBuilder_ == null) {
          result.exitCode_ = exitCode_;
        } else {
          result.exitCode_ = exitCodeBuilder_.build();
        }
        result.finishTimeMillis_ = finishTimeMillis_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.getDefaultInstance()) return this;
        if (other.getOverallSuccess() != false) {
          setOverallSuccess(other.getOverallSuccess());
        }
        if (other.hasExitCode()) {
          mergeExitCode(other.getExitCode());
        }
        if (other.getFinishTimeMillis() != 0L) {
          setFinishTimeMillis(other.getFinishTimeMillis());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private boolean overallSuccess_ ;
      /**
       * <pre>
       * If the build succeeded or failed.
       * </pre>
       *
       * <code>bool overall_success = 1 [deprecated = true];</code>
       */
      @java.lang.Deprecated public boolean getOverallSuccess() {
        return overallSuccess_;
      }
      /**
       * <pre>
       * If the build succeeded or failed.
       * </pre>
       *
       * <code>bool overall_success = 1 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder setOverallSuccess(boolean value) {
        
        overallSuccess_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If the build succeeded or failed.
       * </pre>
       *
       * <code>bool overall_success = 1 [deprecated = true];</code>
       */
      @java.lang.Deprecated public Builder clearOverallSuccess() {
        
        overallSuccess_ = false;
        onChanged();
        return this;
      }

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode exitCode_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCodeOrBuilder> exitCodeBuilder_;
      /**
       * <pre>
       * The overall status of the build. A build was successful iff
       * ExitCode.code equals 0.
       * </pre>
       *
       * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
       */
      public boolean hasExitCode() {
        return exitCodeBuilder_ != null || exitCode_ != null;
      }
      /**
       * <pre>
       * The overall status of the build. A build was successful iff
       * ExitCode.code equals 0.
       * </pre>
       *
       * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode getExitCode() {
        if (exitCodeBuilder_ == null) {
          return exitCode_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.getDefaultInstance() : exitCode_;
        } else {
          return exitCodeBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * The overall status of the build. A build was successful iff
       * ExitCode.code equals 0.
       * </pre>
       *
       * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
       */
      public Builder setExitCode(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode value) {
        if (exitCodeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          exitCode_ = value;
          onChanged();
        } else {
          exitCodeBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * The overall status of the build. A build was successful iff
       * ExitCode.code equals 0.
       * </pre>
       *
       * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
       */
      public Builder setExitCode(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.Builder builderForValue) {
        if (exitCodeBuilder_ == null) {
          exitCode_ = builderForValue.build();
          onChanged();
        } else {
          exitCodeBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * The overall status of the build. A build was successful iff
       * ExitCode.code equals 0.
       * </pre>
       *
       * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
       */
      public Builder mergeExitCode(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode value) {
        if (exitCodeBuilder_ == null) {
          if (exitCode_ != null) {
            exitCode_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.newBuilder(exitCode_).mergeFrom(value).buildPartial();
          } else {
            exitCode_ = value;
          }
          onChanged();
        } else {
          exitCodeBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * The overall status of the build. A build was successful iff
       * ExitCode.code equals 0.
       * </pre>
       *
       * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
       */
      public Builder clearExitCode() {
        if (exitCodeBuilder_ == null) {
          exitCode_ = null;
          onChanged();
        } else {
          exitCode_ = null;
          exitCodeBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * The overall status of the build. A build was successful iff
       * ExitCode.code equals 0.
       * </pre>
       *
       * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.Builder getExitCodeBuilder() {
        
        onChanged();
        return getExitCodeFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * The overall status of the build. A build was successful iff
       * ExitCode.code equals 0.
       * </pre>
       *
       * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCodeOrBuilder getExitCodeOrBuilder() {
        if (exitCodeBuilder_ != null) {
          return exitCodeBuilder_.getMessageOrBuilder();
        } else {
          return exitCode_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.getDefaultInstance() : exitCode_;
        }
      }
      /**
       * <pre>
       * The overall status of the build. A build was successful iff
       * ExitCode.code equals 0.
       * </pre>
       *
       * <code>.build_event_stream.BuildFinished.ExitCode exit_code = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCodeOrBuilder> 
          getExitCodeFieldBuilder() {
        if (exitCodeBuilder_ == null) {
          exitCodeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCode.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.ExitCodeOrBuilder>(
                  getExitCode(),
                  getParentForChildren(),
                  isClean());
          exitCode_ = null;
        }
        return exitCodeBuilder_;
      }

      private long finishTimeMillis_ ;
      /**
       * <pre>
       * Time in milliseconds since the epoch.
       * TODO(buchgr): Use google.protobuf.Timestamp once bazel's protoc supports
       * it.
       * </pre>
       *
       * <code>int64 finish_time_millis = 2;</code>
       */
      public long getFinishTimeMillis() {
        return finishTimeMillis_;
      }
      /**
       * <pre>
       * Time in milliseconds since the epoch.
       * TODO(buchgr): Use google.protobuf.Timestamp once bazel's protoc supports
       * it.
       * </pre>
       *
       * <code>int64 finish_time_millis = 2;</code>
       */
      public Builder setFinishTimeMillis(long value) {
        
        finishTimeMillis_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Time in milliseconds since the epoch.
       * TODO(buchgr): Use google.protobuf.Timestamp once bazel's protoc supports
       * it.
       * </pre>
       *
       * <code>int64 finish_time_millis = 2;</code>
       */
      public Builder clearFinishTimeMillis() {
        
        finishTimeMillis_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

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


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

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

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

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

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

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

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
     */
    boolean hasActionSummary();
    /**
     * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary getActionSummary();
    /**
     * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummaryOrBuilder getActionSummaryOrBuilder();

    /**
     * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
     */
    boolean hasMemoryMetrics();
    /**
     * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics getMemoryMetrics();
    /**
     * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetricsOrBuilder getMemoryMetricsOrBuilder();

    /**
     * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
     */
    boolean hasTargetMetrics();
    /**
     * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics getTargetMetrics();
    /**
     * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetricsOrBuilder getTargetMetricsOrBuilder();

    /**
     * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
     */
    boolean hasPackageMetrics();
    /**
     * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics getPackageMetrics();
    /**
     * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetricsOrBuilder getPackageMetricsOrBuilder();
  }
  /**
   * Protobuf type {@code build_event_stream.BuildMetrics}
   */
  public  static final class BuildMetrics extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.BuildMetrics)
      BuildMetricsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BuildMetrics.newBuilder() to construct.
    private BuildMetrics(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BuildMetrics() {
    }

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

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

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

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

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.Builder.class);
    }

    public interface ActionSummaryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildMetrics.ActionSummary)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * The total number of actions created and registered during the build.
       * This includes unused actions that were constructed but
       * not executed during this build.
       * </pre>
       *
       * <code>int64 actions_created = 1;</code>
       */
      long getActionsCreated();

      /**
       * <pre>
       * The total number of actions executed during the build.
       * This includes any remote cache hits, but excludes
       * local action cache hits.
       * </pre>
       *
       * <code>int64 actions_executed = 2;</code>
       */
      long getActionsExecuted();
    }
    /**
     * Protobuf type {@code build_event_stream.BuildMetrics.ActionSummary}
     */
    public  static final class ActionSummary extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildMetrics.ActionSummary)
        ActionSummaryOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ActionSummary.newBuilder() to construct.
      private ActionSummary(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ActionSummary() {
        actionsCreated_ = 0L;
        actionsExecuted_ = 0L;
      }

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

                actionsCreated_ = input.readInt64();
                break;
              }
              case 16: {

                actionsExecuted_ = input.readInt64();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_ActionSummary_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_ActionSummary_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.Builder.class);
      }

      public static final int ACTIONS_CREATED_FIELD_NUMBER = 1;
      private long actionsCreated_;
      /**
       * <pre>
       * The total number of actions created and registered during the build.
       * This includes unused actions that were constructed but
       * not executed during this build.
       * </pre>
       *
       * <code>int64 actions_created = 1;</code>
       */
      public long getActionsCreated() {
        return actionsCreated_;
      }

      public static final int ACTIONS_EXECUTED_FIELD_NUMBER = 2;
      private long actionsExecuted_;
      /**
       * <pre>
       * The total number of actions executed during the build.
       * This includes any remote cache hits, but excludes
       * local action cache hits.
       * </pre>
       *
       * <code>int64 actions_executed = 2;</code>
       */
      public long getActionsExecuted() {
        return actionsExecuted_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (actionsCreated_ != 0L) {
          output.writeInt64(1, actionsCreated_);
        }
        if (actionsExecuted_ != 0L) {
          output.writeInt64(2, actionsExecuted_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (actionsCreated_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, actionsCreated_);
        }
        if (actionsExecuted_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, actionsExecuted_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary) obj;

        boolean result = true;
        result = result && (getActionsCreated()
            == other.getActionsCreated());
        result = result && (getActionsExecuted()
            == other.getActionsExecuted());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + ACTIONS_CREATED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getActionsCreated());
        hash = (37 * hash) + ACTIONS_EXECUTED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getActionsExecuted());
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code build_event_stream.BuildMetrics.ActionSummary}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildMetrics.ActionSummary)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummaryOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_ActionSummary_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_ActionSummary_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.Builder.class);
        }

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

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

          actionsExecuted_ = 0L;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_ActionSummary_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.getDefaultInstance();
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary(this);
          result.actionsCreated_ = actionsCreated_;
          result.actionsExecuted_ = actionsExecuted_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.getDefaultInstance()) return this;
          if (other.getActionsCreated() != 0L) {
            setActionsCreated(other.getActionsCreated());
          }
          if (other.getActionsExecuted() != 0L) {
            setActionsExecuted(other.getActionsExecuted());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

        private long actionsCreated_ ;
        /**
         * <pre>
         * The total number of actions created and registered during the build.
         * This includes unused actions that were constructed but
         * not executed during this build.
         * </pre>
         *
         * <code>int64 actions_created = 1;</code>
         */
        public long getActionsCreated() {
          return actionsCreated_;
        }
        /**
         * <pre>
         * The total number of actions created and registered during the build.
         * This includes unused actions that were constructed but
         * not executed during this build.
         * </pre>
         *
         * <code>int64 actions_created = 1;</code>
         */
        public Builder setActionsCreated(long value) {
          
          actionsCreated_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * The total number of actions created and registered during the build.
         * This includes unused actions that were constructed but
         * not executed during this build.
         * </pre>
         *
         * <code>int64 actions_created = 1;</code>
         */
        public Builder clearActionsCreated() {
          
          actionsCreated_ = 0L;
          onChanged();
          return this;
        }

        private long actionsExecuted_ ;
        /**
         * <pre>
         * The total number of actions executed during the build.
         * This includes any remote cache hits, but excludes
         * local action cache hits.
         * </pre>
         *
         * <code>int64 actions_executed = 2;</code>
         */
        public long getActionsExecuted() {
          return actionsExecuted_;
        }
        /**
         * <pre>
         * The total number of actions executed during the build.
         * This includes any remote cache hits, but excludes
         * local action cache hits.
         * </pre>
         *
         * <code>int64 actions_executed = 2;</code>
         */
        public Builder setActionsExecuted(long value) {
          
          actionsExecuted_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * The total number of actions executed during the build.
         * This includes any remote cache hits, but excludes
         * local action cache hits.
         * </pre>
         *
         * <code>int64 actions_executed = 2;</code>
         */
        public Builder clearActionsExecuted() {
          
          actionsExecuted_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildMetrics.ActionSummary)
      }

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface MemoryMetricsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildMetrics.MemoryMetrics)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Size of the JVM heap post build in bytes. This is only collected if
       * --bep_publish_used_heap_size_post_build is set,
       * since it forces a full GC.
       * </pre>
       *
       * <code>int64 used_heap_size_post_build = 1;</code>
       */
      long getUsedHeapSizePostBuild();
    }
    /**
     * Protobuf type {@code build_event_stream.BuildMetrics.MemoryMetrics}
     */
    public  static final class MemoryMetrics extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildMetrics.MemoryMetrics)
        MemoryMetricsOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use MemoryMetrics.newBuilder() to construct.
      private MemoryMetrics(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private MemoryMetrics() {
        usedHeapSizePostBuild_ = 0L;
      }

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

                usedHeapSizePostBuild_ = input.readInt64();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_MemoryMetrics_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_MemoryMetrics_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.Builder.class);
      }

      public static final int USED_HEAP_SIZE_POST_BUILD_FIELD_NUMBER = 1;
      private long usedHeapSizePostBuild_;
      /**
       * <pre>
       * Size of the JVM heap post build in bytes. This is only collected if
       * --bep_publish_used_heap_size_post_build is set,
       * since it forces a full GC.
       * </pre>
       *
       * <code>int64 used_heap_size_post_build = 1;</code>
       */
      public long getUsedHeapSizePostBuild() {
        return usedHeapSizePostBuild_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (usedHeapSizePostBuild_ != 0L) {
          output.writeInt64(1, usedHeapSizePostBuild_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (usedHeapSizePostBuild_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, usedHeapSizePostBuild_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics) obj;

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

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

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code build_event_stream.BuildMetrics.MemoryMetrics}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildMetrics.MemoryMetrics)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetricsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_MemoryMetrics_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_MemoryMetrics_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.Builder.class);
        }

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

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

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_MemoryMetrics_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.getDefaultInstance();
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics(this);
          result.usedHeapSizePostBuild_ = usedHeapSizePostBuild_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.getDefaultInstance()) return this;
          if (other.getUsedHeapSizePostBuild() != 0L) {
            setUsedHeapSizePostBuild(other.getUsedHeapSizePostBuild());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

        private long usedHeapSizePostBuild_ ;
        /**
         * <pre>
         * Size of the JVM heap post build in bytes. This is only collected if
         * --bep_publish_used_heap_size_post_build is set,
         * since it forces a full GC.
         * </pre>
         *
         * <code>int64 used_heap_size_post_build = 1;</code>
         */
        public long getUsedHeapSizePostBuild() {
          return usedHeapSizePostBuild_;
        }
        /**
         * <pre>
         * Size of the JVM heap post build in bytes. This is only collected if
         * --bep_publish_used_heap_size_post_build is set,
         * since it forces a full GC.
         * </pre>
         *
         * <code>int64 used_heap_size_post_build = 1;</code>
         */
        public Builder setUsedHeapSizePostBuild(long value) {
          
          usedHeapSizePostBuild_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Size of the JVM heap post build in bytes. This is only collected if
         * --bep_publish_used_heap_size_post_build is set,
         * since it forces a full GC.
         * </pre>
         *
         * <code>int64 used_heap_size_post_build = 1;</code>
         */
        public Builder clearUsedHeapSizePostBuild() {
          
          usedHeapSizePostBuild_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildMetrics.MemoryMetrics)
      }

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

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

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

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

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

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface TargetMetricsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildMetrics.TargetMetrics)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Number of targets loaded during this build.
       * </pre>
       *
       * <code>int64 targets_loaded = 1;</code>
       */
      long getTargetsLoaded();

      /**
       * <pre>
       * Number of targets configured during this build. This can
       * be greater than targets_loaded if the same target is configured
       * multiple times.
       * </pre>
       *
       * <code>int64 targets_configured = 2;</code>
       */
      long getTargetsConfigured();
    }
    /**
     * Protobuf type {@code build_event_stream.BuildMetrics.TargetMetrics}
     */
    public  static final class TargetMetrics extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildMetrics.TargetMetrics)
        TargetMetricsOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use TargetMetrics.newBuilder() to construct.
      private TargetMetrics(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private TargetMetrics() {
        targetsLoaded_ = 0L;
        targetsConfigured_ = 0L;
      }

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

                targetsLoaded_ = input.readInt64();
                break;
              }
              case 16: {

                targetsConfigured_ = input.readInt64();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_TargetMetrics_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_TargetMetrics_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.Builder.class);
      }

      public static final int TARGETS_LOADED_FIELD_NUMBER = 1;
      private long targetsLoaded_;
      /**
       * <pre>
       * Number of targets loaded during this build.
       * </pre>
       *
       * <code>int64 targets_loaded = 1;</code>
       */
      public long getTargetsLoaded() {
        return targetsLoaded_;
      }

      public static final int TARGETS_CONFIGURED_FIELD_NUMBER = 2;
      private long targetsConfigured_;
      /**
       * <pre>
       * Number of targets configured during this build. This can
       * be greater than targets_loaded if the same target is configured
       * multiple times.
       * </pre>
       *
       * <code>int64 targets_configured = 2;</code>
       */
      public long getTargetsConfigured() {
        return targetsConfigured_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (targetsLoaded_ != 0L) {
          output.writeInt64(1, targetsLoaded_);
        }
        if (targetsConfigured_ != 0L) {
          output.writeInt64(2, targetsConfigured_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (targetsLoaded_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, targetsLoaded_);
        }
        if (targetsConfigured_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, targetsConfigured_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics) obj;

        boolean result = true;
        result = result && (getTargetsLoaded()
            == other.getTargetsLoaded());
        result = result && (getTargetsConfigured()
            == other.getTargetsConfigured());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + TARGETS_LOADED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTargetsLoaded());
        hash = (37 * hash) + TARGETS_CONFIGURED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTargetsConfigured());
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code build_event_stream.BuildMetrics.TargetMetrics}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildMetrics.TargetMetrics)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetricsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_TargetMetrics_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_TargetMetrics_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.Builder.class);
        }

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

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

          targetsConfigured_ = 0L;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_TargetMetrics_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.getDefaultInstance();
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics(this);
          result.targetsLoaded_ = targetsLoaded_;
          result.targetsConfigured_ = targetsConfigured_;
          onBuilt();
          return result;
        }

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

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.getDefaultInstance()) return this;
          if (other.getTargetsLoaded() != 0L) {
            setTargetsLoaded(other.getTargetsLoaded());
          }
          if (other.getTargetsConfigured() != 0L) {
            setTargetsConfigured(other.getTargetsConfigured());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

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

        private long targetsLoaded_ ;
        /**
         * <pre>
         * Number of targets loaded during this build.
         * </pre>
         *
         * <code>int64 targets_loaded = 1;</code>
         */
        public long getTargetsLoaded() {
          return targetsLoaded_;
        }
        /**
         * <pre>
         * Number of targets loaded during this build.
         * </pre>
         *
         * <code>int64 targets_loaded = 1;</code>
         */
        public Builder setTargetsLoaded(long value) {
          
          targetsLoaded_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Number of targets loaded during this build.
         * </pre>
         *
         * <code>int64 targets_loaded = 1;</code>
         */
        public Builder clearTargetsLoaded() {
          
          targetsLoaded_ = 0L;
          onChanged();
          return this;
        }

        private long targetsConfigured_ ;
        /**
         * <pre>
         * Number of targets configured during this build. This can
         * be greater than targets_loaded if the same target is configured
         * multiple times.
         * </pre>
         *
         * <code>int64 targets_configured = 2;</code>
         */
        public long getTargetsConfigured() {
          return targetsConfigured_;
        }
        /**
         * <pre>
         * Number of targets configured during this build. This can
         * be greater than targets_loaded if the same target is configured
         * multiple times.
         * </pre>
         *
         * <code>int64 targets_configured = 2;</code>
         */
        public Builder setTargetsConfigured(long value) {
          
          targetsConfigured_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Number of targets configured during this build. This can
         * be greater than targets_loaded if the same target is configured
         * multiple times.
         * </pre>
         *
         * <code>int64 targets_configured = 2;</code>
         */
        public Builder clearTargetsConfigured() {
          
          targetsConfigured_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildMetrics.TargetMetrics)
      }

      // @@protoc_insertion_point(class_scope:build_event_stream.BuildMetrics.TargetMetrics)
      private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics();
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<TargetMetrics>
          PARSER = new com.google.protobuf.AbstractParser<TargetMetrics>() {
        @java.lang.Override
        public TargetMetrics parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new TargetMetrics(input, extensionRegistry);
        }
      };

      public static com.google.protobuf.Parser<TargetMetrics> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<TargetMetrics> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface PackageMetricsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:build_event_stream.BuildMetrics.PackageMetrics)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * Number of BUILD files (aka packages) loaded during this build.
       * </pre>
       *
       * <code>int64 packages_loaded = 1;</code>
       */
      long getPackagesLoaded();
    }
    /**
     * Protobuf type {@code build_event_stream.BuildMetrics.PackageMetrics}
     */
    public  static final class PackageMetrics extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:build_event_stream.BuildMetrics.PackageMetrics)
        PackageMetricsOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PackageMetrics.newBuilder() to construct.
      private PackageMetrics(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PackageMetrics() {
        packagesLoaded_ = 0L;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PackageMetrics(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {

                packagesLoaded_ = input.readInt64();
                break;
              }
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_PackageMetrics_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_PackageMetrics_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.Builder.class);
      }

      public static final int PACKAGES_LOADED_FIELD_NUMBER = 1;
      private long packagesLoaded_;
      /**
       * <pre>
       * Number of BUILD files (aka packages) loaded during this build.
       * </pre>
       *
       * <code>int64 packages_loaded = 1;</code>
       */
      public long getPackagesLoaded() {
        return packagesLoaded_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (packagesLoaded_ != 0L) {
          output.writeInt64(1, packagesLoaded_);
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (packagesLoaded_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, packagesLoaded_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics)) {
          return super.equals(obj);
        }
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics) obj;

        boolean result = true;
        result = result && (getPackagesLoaded()
            == other.getPackagesLoaded());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + PACKAGES_LOADED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getPackagesLoaded());
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics parseFrom(
          java.nio.ByteBuffer 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.BuildMetrics.PackageMetrics parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics 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.BuildMetrics.PackageMetrics parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics 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.BuildMetrics.PackageMetrics 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.BuildMetrics.PackageMetrics 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.BuildMetrics.PackageMetrics 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.BuildMetrics.PackageMetrics 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.BuildMetrics.PackageMetrics 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.BuildMetrics.PackageMetrics parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code build_event_stream.BuildMetrics.PackageMetrics}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:build_event_stream.BuildMetrics.PackageMetrics)
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetricsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_PackageMetrics_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_PackageMetrics_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.Builder.class);
        }

        // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          packagesLoaded_ = 0L;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_PackageMetrics_descriptor;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics getDefaultInstanceForType() {
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.getDefaultInstance();
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics build() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics buildPartial() {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics(this);
          result.packagesLoaded_ = packagesLoaded_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return (Builder) super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics) {
            return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics other) {
          if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.getDefaultInstance()) return this;
          if (other.getPackagesLoaded() != 0L) {
            setPackagesLoaded(other.getPackagesLoaded());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private long packagesLoaded_ ;
        /**
         * <pre>
         * Number of BUILD files (aka packages) loaded during this build.
         * </pre>
         *
         * <code>int64 packages_loaded = 1;</code>
         */
        public long getPackagesLoaded() {
          return packagesLoaded_;
        }
        /**
         * <pre>
         * Number of BUILD files (aka packages) loaded during this build.
         * </pre>
         *
         * <code>int64 packages_loaded = 1;</code>
         */
        public Builder setPackagesLoaded(long value) {
          
          packagesLoaded_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Number of BUILD files (aka packages) loaded during this build.
         * </pre>
         *
         * <code>int64 packages_loaded = 1;</code>
         */
        public Builder clearPackagesLoaded() {
          
          packagesLoaded_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:build_event_stream.BuildMetrics.PackageMetrics)
      }

      // @@protoc_insertion_point(class_scope:build_event_stream.BuildMetrics.PackageMetrics)
      private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics();
      }

      public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<PackageMetrics>
          PARSER = new com.google.protobuf.AbstractParser<PackageMetrics>() {
        @java.lang.Override
        public PackageMetrics parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PackageMetrics(input, extensionRegistry);
        }
      };

      public static com.google.protobuf.Parser<PackageMetrics> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<PackageMetrics> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int ACTION_SUMMARY_FIELD_NUMBER = 1;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary actionSummary_;
    /**
     * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
     */
    public boolean hasActionSummary() {
      return actionSummary_ != null;
    }
    /**
     * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary getActionSummary() {
      return actionSummary_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.getDefaultInstance() : actionSummary_;
    }
    /**
     * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummaryOrBuilder getActionSummaryOrBuilder() {
      return getActionSummary();
    }

    public static final int MEMORY_METRICS_FIELD_NUMBER = 2;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics memoryMetrics_;
    /**
     * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
     */
    public boolean hasMemoryMetrics() {
      return memoryMetrics_ != null;
    }
    /**
     * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics getMemoryMetrics() {
      return memoryMetrics_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.getDefaultInstance() : memoryMetrics_;
    }
    /**
     * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetricsOrBuilder getMemoryMetricsOrBuilder() {
      return getMemoryMetrics();
    }

    public static final int TARGET_METRICS_FIELD_NUMBER = 3;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics targetMetrics_;
    /**
     * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
     */
    public boolean hasTargetMetrics() {
      return targetMetrics_ != null;
    }
    /**
     * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics getTargetMetrics() {
      return targetMetrics_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.getDefaultInstance() : targetMetrics_;
    }
    /**
     * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetricsOrBuilder getTargetMetricsOrBuilder() {
      return getTargetMetrics();
    }

    public static final int PACKAGE_METRICS_FIELD_NUMBER = 4;
    private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics packageMetrics_;
    /**
     * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
     */
    public boolean hasPackageMetrics() {
      return packageMetrics_ != null;
    }
    /**
     * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics getPackageMetrics() {
      return packageMetrics_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.getDefaultInstance() : packageMetrics_;
    }
    /**
     * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetricsOrBuilder getPackageMetricsOrBuilder() {
      return getPackageMetrics();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (actionSummary_ != null) {
        output.writeMessage(1, getActionSummary());
      }
      if (memoryMetrics_ != null) {
        output.writeMessage(2, getMemoryMetrics());
      }
      if (targetMetrics_ != null) {
        output.writeMessage(3, getTargetMetrics());
      }
      if (packageMetrics_ != null) {
        output.writeMessage(4, getPackageMetrics());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (actionSummary_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getActionSummary());
      }
      if (memoryMetrics_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getMemoryMetrics());
      }
      if (targetMetrics_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getTargetMetrics());
      }
      if (packageMetrics_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getPackageMetrics());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) obj;

      boolean result = true;
      result = result && (hasActionSummary() == other.hasActionSummary());
      if (hasActionSummary()) {
        result = result && getActionSummary()
            .equals(other.getActionSummary());
      }
      result = result && (hasMemoryMetrics() == other.hasMemoryMetrics());
      if (hasMemoryMetrics()) {
        result = result && getMemoryMetrics()
            .equals(other.getMemoryMetrics());
      }
      result = result && (hasTargetMetrics() == other.hasTargetMetrics());
      if (hasTargetMetrics()) {
        result = result && getTargetMetrics()
            .equals(other.getTargetMetrics());
      }
      result = result && (hasPackageMetrics() == other.hasPackageMetrics());
      if (hasPackageMetrics()) {
        result = result && getPackageMetrics()
            .equals(other.getPackageMetrics());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasActionSummary()) {
        hash = (37 * hash) + ACTION_SUMMARY_FIELD_NUMBER;
        hash = (53 * hash) + getActionSummary().hashCode();
      }
      if (hasMemoryMetrics()) {
        hash = (37 * hash) + MEMORY_METRICS_FIELD_NUMBER;
        hash = (53 * hash) + getMemoryMetrics().hashCode();
      }
      if (hasTargetMetrics()) {
        hash = (37 * hash) + TARGET_METRICS_FIELD_NUMBER;
        hash = (53 * hash) + getTargetMetrics().hashCode();
      }
      if (hasPackageMetrics()) {
        hash = (37 * hash) + PACKAGE_METRICS_FIELD_NUMBER;
        hash = (53 * hash) + getPackageMetrics().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics parseFrom(
        java.nio.ByteBuffer 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.BuildMetrics parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics 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.BuildMetrics parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics 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.BuildMetrics 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.BuildMetrics 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.BuildMetrics 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.BuildMetrics 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.BuildMetrics 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.BuildMetrics parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code build_event_stream.BuildMetrics}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.BuildMetrics)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetricsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (actionSummaryBuilder_ == null) {
          actionSummary_ = null;
        } else {
          actionSummary_ = null;
          actionSummaryBuilder_ = null;
        }
        if (memoryMetricsBuilder_ == null) {
          memoryMetrics_ = null;
        } else {
          memoryMetrics_ = null;
          memoryMetricsBuilder_ = null;
        }
        if (targetMetricsBuilder_ == null) {
          targetMetrics_ = null;
        } else {
          targetMetrics_ = null;
          targetMetricsBuilder_ = null;
        }
        if (packageMetricsBuilder_ == null) {
          packageMetrics_ = null;
        } else {
          packageMetrics_ = null;
          packageMetricsBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildMetrics_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics(this);
        if (actionSummaryBuilder_ == null) {
          result.actionSummary_ = actionSummary_;
        } else {
          result.actionSummary_ = actionSummaryBuilder_.build();
        }
        if (memoryMetricsBuilder_ == null) {
          result.memoryMetrics_ = memoryMetrics_;
        } else {
          result.memoryMetrics_ = memoryMetricsBuilder_.build();
        }
        if (targetMetricsBuilder_ == null) {
          result.targetMetrics_ = targetMetrics_;
        } else {
          result.targetMetrics_ = targetMetricsBuilder_.build();
        }
        if (packageMetricsBuilder_ == null) {
          result.packageMetrics_ = packageMetrics_;
        } else {
          result.packageMetrics_ = packageMetricsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.getDefaultInstance()) return this;
        if (other.hasActionSummary()) {
          mergeActionSummary(other.getActionSummary());
        }
        if (other.hasMemoryMetrics()) {
          mergeMemoryMetrics(other.getMemoryMetrics());
        }
        if (other.hasTargetMetrics()) {
          mergeTargetMetrics(other.getTargetMetrics());
        }
        if (other.hasPackageMetrics()) {
          mergePackageMetrics(other.getPackageMetrics());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary actionSummary_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummaryOrBuilder> actionSummaryBuilder_;
      /**
       * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
       */
      public boolean hasActionSummary() {
        return actionSummaryBuilder_ != null || actionSummary_ != null;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary getActionSummary() {
        if (actionSummaryBuilder_ == null) {
          return actionSummary_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.getDefaultInstance() : actionSummary_;
        } else {
          return actionSummaryBuilder_.getMessage();
        }
      }
      /**
       * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
       */
      public Builder setActionSummary(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary value) {
        if (actionSummaryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actionSummary_ = value;
          onChanged();
        } else {
          actionSummaryBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
       */
      public Builder setActionSummary(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.Builder builderForValue) {
        if (actionSummaryBuilder_ == null) {
          actionSummary_ = builderForValue.build();
          onChanged();
        } else {
          actionSummaryBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
       */
      public Builder mergeActionSummary(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary value) {
        if (actionSummaryBuilder_ == null) {
          if (actionSummary_ != null) {
            actionSummary_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.newBuilder(actionSummary_).mergeFrom(value).buildPartial();
          } else {
            actionSummary_ = value;
          }
          onChanged();
        } else {
          actionSummaryBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
       */
      public Builder clearActionSummary() {
        if (actionSummaryBuilder_ == null) {
          actionSummary_ = null;
          onChanged();
        } else {
          actionSummary_ = null;
          actionSummaryBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.Builder getActionSummaryBuilder() {
        
        onChanged();
        return getActionSummaryFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummaryOrBuilder getActionSummaryOrBuilder() {
        if (actionSummaryBuilder_ != null) {
          return actionSummaryBuilder_.getMessageOrBuilder();
        } else {
          return actionSummary_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.getDefaultInstance() : actionSummary_;
        }
      }
      /**
       * <code>.build_event_stream.BuildMetrics.ActionSummary action_summary = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummaryOrBuilder> 
          getActionSummaryFieldBuilder() {
        if (actionSummaryBuilder_ == null) {
          actionSummaryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummary.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.ActionSummaryOrBuilder>(
                  getActionSummary(),
                  getParentForChildren(),
                  isClean());
          actionSummary_ = null;
        }
        return actionSummaryBuilder_;
      }

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics memoryMetrics_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetricsOrBuilder> memoryMetricsBuilder_;
      /**
       * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
       */
      public boolean hasMemoryMetrics() {
        return memoryMetricsBuilder_ != null || memoryMetrics_ != null;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics getMemoryMetrics() {
        if (memoryMetricsBuilder_ == null) {
          return memoryMetrics_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.getDefaultInstance() : memoryMetrics_;
        } else {
          return memoryMetricsBuilder_.getMessage();
        }
      }
      /**
       * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
       */
      public Builder setMemoryMetrics(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics value) {
        if (memoryMetricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          memoryMetrics_ = value;
          onChanged();
        } else {
          memoryMetricsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
       */
      public Builder setMemoryMetrics(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.Builder builderForValue) {
        if (memoryMetricsBuilder_ == null) {
          memoryMetrics_ = builderForValue.build();
          onChanged();
        } else {
          memoryMetricsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
       */
      public Builder mergeMemoryMetrics(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics value) {
        if (memoryMetricsBuilder_ == null) {
          if (memoryMetrics_ != null) {
            memoryMetrics_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.newBuilder(memoryMetrics_).mergeFrom(value).buildPartial();
          } else {
            memoryMetrics_ = value;
          }
          onChanged();
        } else {
          memoryMetricsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
       */
      public Builder clearMemoryMetrics() {
        if (memoryMetricsBuilder_ == null) {
          memoryMetrics_ = null;
          onChanged();
        } else {
          memoryMetrics_ = null;
          memoryMetricsBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.Builder getMemoryMetricsBuilder() {
        
        onChanged();
        return getMemoryMetricsFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetricsOrBuilder getMemoryMetricsOrBuilder() {
        if (memoryMetricsBuilder_ != null) {
          return memoryMetricsBuilder_.getMessageOrBuilder();
        } else {
          return memoryMetrics_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.getDefaultInstance() : memoryMetrics_;
        }
      }
      /**
       * <code>.build_event_stream.BuildMetrics.MemoryMetrics memory_metrics = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetricsOrBuilder> 
          getMemoryMetricsFieldBuilder() {
        if (memoryMetricsBuilder_ == null) {
          memoryMetricsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.MemoryMetricsOrBuilder>(
                  getMemoryMetrics(),
                  getParentForChildren(),
                  isClean());
          memoryMetrics_ = null;
        }
        return memoryMetricsBuilder_;
      }

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics targetMetrics_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetricsOrBuilder> targetMetricsBuilder_;
      /**
       * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
       */
      public boolean hasTargetMetrics() {
        return targetMetricsBuilder_ != null || targetMetrics_ != null;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics getTargetMetrics() {
        if (targetMetricsBuilder_ == null) {
          return targetMetrics_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.getDefaultInstance() : targetMetrics_;
        } else {
          return targetMetricsBuilder_.getMessage();
        }
      }
      /**
       * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
       */
      public Builder setTargetMetrics(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics value) {
        if (targetMetricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          targetMetrics_ = value;
          onChanged();
        } else {
          targetMetricsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
       */
      public Builder setTargetMetrics(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.Builder builderForValue) {
        if (targetMetricsBuilder_ == null) {
          targetMetrics_ = builderForValue.build();
          onChanged();
        } else {
          targetMetricsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
       */
      public Builder mergeTargetMetrics(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics value) {
        if (targetMetricsBuilder_ == null) {
          if (targetMetrics_ != null) {
            targetMetrics_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.newBuilder(targetMetrics_).mergeFrom(value).buildPartial();
          } else {
            targetMetrics_ = value;
          }
          onChanged();
        } else {
          targetMetricsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
       */
      public Builder clearTargetMetrics() {
        if (targetMetricsBuilder_ == null) {
          targetMetrics_ = null;
          onChanged();
        } else {
          targetMetrics_ = null;
          targetMetricsBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.Builder getTargetMetricsBuilder() {
        
        onChanged();
        return getTargetMetricsFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetricsOrBuilder getTargetMetricsOrBuilder() {
        if (targetMetricsBuilder_ != null) {
          return targetMetricsBuilder_.getMessageOrBuilder();
        } else {
          return targetMetrics_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.getDefaultInstance() : targetMetrics_;
        }
      }
      /**
       * <code>.build_event_stream.BuildMetrics.TargetMetrics target_metrics = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetricsOrBuilder> 
          getTargetMetricsFieldBuilder() {
        if (targetMetricsBuilder_ == null) {
          targetMetricsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.TargetMetricsOrBuilder>(
                  getTargetMetrics(),
                  getParentForChildren(),
                  isClean());
          targetMetrics_ = null;
        }
        return targetMetricsBuilder_;
      }

      private com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics packageMetrics_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetricsOrBuilder> packageMetricsBuilder_;
      /**
       * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
       */
      public boolean hasPackageMetrics() {
        return packageMetricsBuilder_ != null || packageMetrics_ != null;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics getPackageMetrics() {
        if (packageMetricsBuilder_ == null) {
          return packageMetrics_ == null ? com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.getDefaultInstance() : packageMetrics_;
        } else {
          return packageMetricsBuilder_.getMessage();
        }
      }
      /**
       * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
       */
      public Builder setPackageMetrics(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics value) {
        if (packageMetricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          packageMetrics_ = value;
          onChanged();
        } else {
          packageMetricsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
       */
      public Builder setPackageMetrics(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.Builder builderForValue) {
        if (packageMetricsBuilder_ == null) {
          packageMetrics_ = builderForValue.build();
          onChanged();
        } else {
          packageMetricsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
       */
      public Builder mergePackageMetrics(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics value) {
        if (packageMetricsBuilder_ == null) {
          if (packageMetrics_ != null) {
            packageMetrics_ =
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.newBuilder(packageMetrics_).mergeFrom(value).buildPartial();
          } else {
            packageMetrics_ = value;
          }
          onChanged();
        } else {
          packageMetricsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
       */
      public Builder clearPackageMetrics() {
        if (packageMetricsBuilder_ == null) {
          packageMetrics_ = null;
          onChanged();
        } else {
          packageMetrics_ = null;
          packageMetricsBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.Builder getPackageMetricsBuilder() {
        
        onChanged();
        return getPackageMetricsFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetricsOrBuilder getPackageMetricsOrBuilder() {
        if (packageMetricsBuilder_ != null) {
          return packageMetricsBuilder_.getMessageOrBuilder();
        } else {
          return packageMetrics_ == null ?
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.getDefaultInstance() : packageMetrics_;
        }
      }
      /**
       * <code>.build_event_stream.BuildMetrics.PackageMetrics package_metrics = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetricsOrBuilder> 
          getPackageMetricsFieldBuilder() {
        if (packageMetricsBuilder_ == null) {
          packageMetricsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.PackageMetricsOrBuilder>(
                  getPackageMetrics(),
                  getParentForChildren(),
                  isClean());
          packageMetrics_ = null;
        }
        return packageMetricsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.BuildMetrics)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.BuildMetrics)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<BuildMetrics>
        PARSER = new com.google.protobuf.AbstractParser<BuildMetrics>() {
      @java.lang.Override
      public BuildMetrics parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new BuildMetrics(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<BuildMetrics> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<BuildMetrics> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BuildToolLogsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.BuildToolLogs)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .build_event_stream.File log = 1;</code>
     */
    java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> 
        getLogList();
    /**
     * <code>repeated .build_event_stream.File log = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getLog(int index);
    /**
     * <code>repeated .build_event_stream.File log = 1;</code>
     */
    int getLogCount();
    /**
     * <code>repeated .build_event_stream.File log = 1;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getLogOrBuilderList();
    /**
     * <code>repeated .build_event_stream.File log = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getLogOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Event providing additional statistics/logs after completion of the build.
   * </pre>
   *
   * Protobuf type {@code build_event_stream.BuildToolLogs}
   */
  public  static final class BuildToolLogs extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:build_event_stream.BuildToolLogs)
      BuildToolLogsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BuildToolLogs.newBuilder() to construct.
    private BuildToolLogs(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BuildToolLogs() {
      log_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BuildToolLogs(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                log_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>();
                mutable_bitField0_ |= 0x00000001;
              }
              log_.add(
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          log_ = java.util.Collections.unmodifiableList(log_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildToolLogs_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildToolLogs_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.Builder.class);
    }

    public static final int LOG_FIELD_NUMBER = 1;
    private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> log_;
    /**
     * <code>repeated .build_event_stream.File log = 1;</code>
     */
    public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getLogList() {
      return log_;
    }
    /**
     * <code>repeated .build_event_stream.File log = 1;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
        getLogOrBuilderList() {
      return log_;
    }
    /**
     * <code>repeated .build_event_stream.File log = 1;</code>
     */
    public int getLogCount() {
      return log_.size();
    }
    /**
     * <code>repeated .build_event_stream.File log = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getLog(int index) {
      return log_.get(index);
    }
    /**
     * <code>repeated .build_event_stream.File log = 1;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getLogOrBuilder(
        int index) {
      return log_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < log_.size(); i++) {
        output.writeMessage(1, log_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < log_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, log_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs other = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) obj;

      boolean result = true;
      result = result && getLogList()
          .equals(other.getLogList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getLogCount() > 0) {
        hash = (37 * hash) + LOG_FIELD_NUMBER;
        hash = (53 * hash) + getLogList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs parseFrom(
        java.nio.ByteBuffer 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.BuildToolLogs parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs 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.BuildToolLogs parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs 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.BuildToolLogs 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.BuildToolLogs 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.BuildToolLogs 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.BuildToolLogs 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.BuildToolLogs 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.BuildToolLogs parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Event providing additional statistics/logs after completion of the build.
     * </pre>
     *
     * Protobuf type {@code build_event_stream.BuildToolLogs}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:build_event_stream.BuildToolLogs)
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildToolLogs_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildToolLogs_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.class, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getLogFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (logBuilder_ == null) {
          log_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          logBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildToolLogs_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs build() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs buildPartial() {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs result = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs(this);
        int from_bitField0_ = bitField0_;
        if (logBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            log_ = java.util.Collections.unmodifiableList(log_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.log_ = log_;
        } else {
          result.log_ = logBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) {
          return mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs other) {
        if (other == com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.getDefaultInstance()) return this;
        if (logBuilder_ == null) {
          if (!other.log_.isEmpty()) {
            if (log_.isEmpty()) {
              log_ = other.log_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureLogIsMutable();
              log_.addAll(other.log_);
            }
            onChanged();
          }
        } else {
          if (!other.log_.isEmpty()) {
            if (logBuilder_.isEmpty()) {
              logBuilder_.dispose();
              logBuilder_ = null;
              log_ = other.log_;
              bitField0_ = (bitField0_ & ~0x00000001);
              logBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getLogFieldBuilder() : null;
            } else {
              logBuilder_.addAllMessages(other.log_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> log_ =
        java.util.Collections.emptyList();
      private void ensureLogIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          log_ = new java.util.ArrayList<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File>(log_);
          bitField0_ |= 0x00000001;
         }
      }

      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> logBuilder_;

      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> getLogList() {
        if (logBuilder_ == null) {
          return java.util.Collections.unmodifiableList(log_);
        } else {
          return logBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public int getLogCount() {
        if (logBuilder_ == null) {
          return log_.size();
        } else {
          return logBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File getLog(int index) {
        if (logBuilder_ == null) {
          return log_.get(index);
        } else {
          return logBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public Builder setLog(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (logBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogIsMutable();
          log_.set(index, value);
          onChanged();
        } else {
          logBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public Builder setLog(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (logBuilder_ == null) {
          ensureLogIsMutable();
          log_.set(index, builderForValue.build());
          onChanged();
        } else {
          logBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public Builder addLog(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (logBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogIsMutable();
          log_.add(value);
          onChanged();
        } else {
          logBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public Builder addLog(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File value) {
        if (logBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLogIsMutable();
          log_.add(index, value);
          onChanged();
        } else {
          logBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public Builder addLog(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (logBuilder_ == null) {
          ensureLogIsMutable();
          log_.add(builderForValue.build());
          onChanged();
        } else {
          logBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public Builder addLog(
          int index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder builderForValue) {
        if (logBuilder_ == null) {
          ensureLogIsMutable();
          log_.add(index, builderForValue.build());
          onChanged();
        } else {
          logBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public Builder addAllLog(
          java.lang.Iterable<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File> values) {
        if (logBuilder_ == null) {
          ensureLogIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, log_);
          onChanged();
        } else {
          logBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public Builder clearLog() {
        if (logBuilder_ == null) {
          log_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          logBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public Builder removeLog(int index) {
        if (logBuilder_ == null) {
          ensureLogIsMutable();
          log_.remove(index);
          onChanged();
        } else {
          logBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder getLogBuilder(
          int index) {
        return getLogFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder getLogOrBuilder(
          int index) {
        if (logBuilder_ == null) {
          return log_.get(index);  } else {
          return logBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FileOrBuilder> 
           getLogOrBuilderList() {
        if (logBuilder_ != null) {
          return logBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(log_);
        }
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addLogBuilder() {
        return getLogFieldBuilder().addBuilder(
            com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder addLogBuilder(
          int index) {
        return getLogFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.getDefaultInstance());
      }
      /**
       * <code>repeated .build_event_stream.File log = 1;</code>
       */
      public java.util.List<com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.File.Builder> 
           getLogBuilderList() {
        return getLogFieldBuilder().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> 
          getLogFieldBuilder() {
        if (logBuilder_ == null) {
          logBuilder_ = 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>(
                  log_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          log_ = null;
        }
        return logBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:build_event_stream.BuildToolLogs)
    }

    // @@protoc_insertion_point(class_scope:build_event_stream.BuildToolLogs)
    private static final com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs();
    }

    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<BuildToolLogs>
        PARSER = new com.google.protobuf.AbstractParser<BuildToolLogs>() {
      @java.lang.Override
      public BuildToolLogs parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new BuildToolLogs(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<BuildToolLogs> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<BuildToolLogs> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BuildEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:build_event_stream.BuildEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.build_event_stream.BuildEventId id = 1;</code>
     */
    boolean hasId();
    /**
     * <code>.build_event_stream.BuildEventId id = 1;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId getId();
    /**
     * <code>.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>bool last_message = 20;</code>
     */
    boolean getLastMessage();

    /**
     * <code>.build_event_stream.Progress progress = 3;</code>
     */
    boolean hasProgress();
    /**
     * <code>.build_event_stream.Progress progress = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress getProgress();
    /**
     * <code>.build_event_stream.Progress progress = 3;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ProgressOrBuilder getProgressOrBuilder();

    /**
     * <code>.build_event_stream.Aborted aborted = 4;</code>
     */
    boolean hasAborted();
    /**
     * <code>.build_event_stream.Aborted aborted = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted getAborted();
    /**
     * <code>.build_event_stream.Aborted aborted = 4;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.AbortedOrBuilder getAbortedOrBuilder();

    /**
     * <code>.build_event_stream.BuildStarted started = 5;</code>
     */
    boolean hasStarted();
    /**
     * <code>.build_event_stream.BuildStarted started = 5;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted getStarted();
    /**
     * <code>.build_event_stream.BuildStarted started = 5;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStartedOrBuilder getStartedOrBuilder();

    /**
     * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
     */
    boolean hasUnstructuredCommandLine();
    /**
     * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine getUnstructuredCommandLine();
    /**
     * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLineOrBuilder getUnstructuredCommandLineOrBuilder();

    /**
     * <code>.command_line.CommandLine structured_command_line = 22;</code>
     */
    boolean hasStructuredCommandLine();
    /**
     * <code>.command_line.CommandLine structured_command_line = 22;</code>
     */
    com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine getStructuredCommandLine();
    /**
     * <code>.command_line.CommandLine structured_command_line = 22;</code>
     */
    com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLineOrBuilder getStructuredCommandLineOrBuilder();

    /**
     * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
     */
    boolean hasOptionsParsed();
    /**
     * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed getOptionsParsed();
    /**
     * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsedOrBuilder getOptionsParsedOrBuilder();

    /**
     * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
     */
    boolean hasWorkspaceStatus();
    /**
     * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus getWorkspaceStatus();
    /**
     * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatusOrBuilder getWorkspaceStatusOrBuilder();

    /**
     * <code>.build_event_stream.Fetch fetch = 21;</code>
     */
    boolean hasFetch();
    /**
     * <code>.build_event_stream.Fetch fetch = 21;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch getFetch();
    /**
     * <code>.build_event_stream.Fetch fetch = 21;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FetchOrBuilder getFetchOrBuilder();

    /**
     * <code>.build_event_stream.Configuration configuration = 17;</code>
     */
    boolean hasConfiguration();
    /**
     * <code>.build_event_stream.Configuration configuration = 17;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration getConfiguration();
    /**
     * <code>.build_event_stream.Configuration configuration = 17;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ConfigurationOrBuilder getConfigurationOrBuilder();

    /**
     * <code>.build_event_stream.PatternExpanded expanded = 6;</code>
     */
    boolean hasExpanded();
    /**
     * <code>.build_event_stream.PatternExpanded expanded = 6;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded getExpanded();
    /**
     * <code>.build_event_stream.PatternExpanded expanded = 6;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpandedOrBuilder getExpandedOrBuilder();

    /**
     * <code>.build_event_stream.TargetConfigured configured = 18;</code>
     */
    boolean hasConfigured();
    /**
     * <code>.build_event_stream.TargetConfigured configured = 18;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured getConfigured();
    /**
     * <code>.build_event_stream.TargetConfigured configured = 18;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfiguredOrBuilder getConfiguredOrBuilder();

    /**
     * <code>.build_event_stream.ActionExecuted action = 7;</code>
     */
    boolean hasAction();
    /**
     * <code>.build_event_stream.ActionExecuted action = 7;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted getAction();
    /**
     * <code>.build_event_stream.ActionExecuted action = 7;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecutedOrBuilder getActionOrBuilder();

    /**
     * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
     */
    boolean hasNamedSetOfFiles();
    /**
     * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles getNamedSetOfFiles();
    /**
     * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFilesOrBuilder getNamedSetOfFilesOrBuilder();

    /**
     * <code>.build_event_stream.TargetComplete completed = 8;</code>
     */
    boolean hasCompleted();
    /**
     * <code>.build_event_stream.TargetComplete completed = 8;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete getCompleted();
    /**
     * <code>.build_event_stream.TargetComplete completed = 8;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetCompleteOrBuilder getCompletedOrBuilder();

    /**
     * <code>.build_event_stream.TestResult test_result = 10;</code>
     */
    boolean hasTestResult();
    /**
     * <code>.build_event_stream.TestResult test_result = 10;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult getTestResult();
    /**
     * <code>.build_event_stream.TestResult test_result = 10;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResultOrBuilder getTestResultOrBuilder();

    /**
     * <code>.build_event_stream.TestSummary test_summary = 9;</code>
     */
    boolean hasTestSummary();
    /**
     * <code>.build_event_stream.TestSummary test_summary = 9;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary getTestSummary();
    /**
     * <code>.build_event_stream.TestSummary test_summary = 9;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummaryOrBuilder getTestSummaryOrBuilder();

    /**
     * <code>.build_event_stream.BuildFinished finished = 14;</code>
     */
    boolean hasFinished();
    /**
     * <code>.build_event_stream.BuildFinished finished = 14;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished getFinished();
    /**
     * <code>.build_event_stream.BuildFinished finished = 14;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinishedOrBuilder getFinishedOrBuilder();

    /**
     * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
     */
    boolean hasBuildToolLogs();
    /**
     * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs getBuildToolLogs();
    /**
     * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogsOrBuilder getBuildToolLogsOrBuilder();

    /**
     * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
     */
    boolean hasBuildMetrics();
    /**
     * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics getBuildMetrics();
    /**
     * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
     */
    com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetricsOrBuilder getBuildMetricsOrBuilder();

    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 {
  private static final long serialVersionUID = 0L;
    // Use BuildEvent.newBuilder() to construct.
    private BuildEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BuildEvent() {
      children_ = java.util.Collections.emptyList();
      lastMessage_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BuildEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              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;
            }
            case 82: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.Builder subBuilder = null;
              if (payloadCase_ == 10) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 10;
              break;
            }
            case 98: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.Builder subBuilder = null;
              if (payloadCase_ == 12) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 12;
              break;
            }
            case 106: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.Builder subBuilder = null;
              if (payloadCase_ == 13) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 13;
              break;
            }
            case 114: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.Builder subBuilder = null;
              if (payloadCase_ == 14) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 14;
              break;
            }
            case 122: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.Builder subBuilder = null;
              if (payloadCase_ == 15) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 15;
              break;
            }
            case 130: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Builder subBuilder = null;
              if (payloadCase_ == 16) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 16;
              break;
            }
            case 138: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.Builder subBuilder = null;
              if (payloadCase_ == 17) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 17;
              break;
            }
            case 146: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.Builder subBuilder = null;
              if (payloadCase_ == 18) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 18;
              break;
            }
            case 160: {

              lastMessage_ = input.readBool();
              break;
            }
            case 170: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.Builder subBuilder = null;
              if (payloadCase_ == 21) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 21;
              break;
            }
            case 178: {
              com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.Builder subBuilder = null;
              if (payloadCase_ == 22) {
                subBuilder = ((com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 22;
              break;
            }
            case 186: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.Builder subBuilder = null;
              if (payloadCase_ == 23) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 23;
              break;
            }
            case 194: {
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.Builder subBuilder = null;
              if (payloadCase_ == 24) {
                subBuilder = ((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) payload_).toBuilder();
              }
              payload_ =
                  input.readMessage(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) payload_);
                payload_ = subBuilder.buildPartial();
              }
              payloadCase_ = 24;
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          children_ = java.util.Collections.unmodifiableList(children_);
        }
        this.unknownFields = unknownFields.build();
        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;
    }

    @java.lang.Override
    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),
      UNSTRUCTURED_COMMAND_LINE(12),
      STRUCTURED_COMMAND_LINE(22),
      OPTIONS_PARSED(13),
      WORKSPACE_STATUS(16),
      FETCH(21),
      CONFIGURATION(17),
      EXPANDED(6),
      CONFIGURED(18),
      ACTION(7),
      NAMED_SET_OF_FILES(15),
      COMPLETED(8),
      TEST_RESULT(10),
      TEST_SUMMARY(9),
      FINISHED(14),
      BUILD_TOOL_LOGS(23),
      BUILD_METRICS(24),
      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 12: return UNSTRUCTURED_COMMAND_LINE;
          case 22: return STRUCTURED_COMMAND_LINE;
          case 13: return OPTIONS_PARSED;
          case 16: return WORKSPACE_STATUS;
          case 21: return FETCH;
          case 17: return CONFIGURATION;
          case 6: return EXPANDED;
          case 18: return CONFIGURED;
          case 7: return ACTION;
          case 15: return NAMED_SET_OF_FILES;
          case 8: return COMPLETED;
          case 10: return TEST_RESULT;
          case 9: return TEST_SUMMARY;
          case 14: return FINISHED;
          case 23: return BUILD_TOOL_LOGS;
          case 24: return BUILD_METRICS;
          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>.build_event_stream.BuildEventId id = 1;</code>
     */
    public boolean hasId() {
      return id_ != null;
    }
    /**
     * <code>.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>.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 LAST_MESSAGE_FIELD_NUMBER = 20;
    private boolean lastMessage_;
    /**
     * <code>bool last_message = 20;</code>
     */
    public boolean getLastMessage() {
      return lastMessage_;
    }

    public static final int PROGRESS_FIELD_NUMBER = 3;
    /**
     * <code>.build_event_stream.Progress progress = 3;</code>
     */
    public boolean hasProgress() {
      return payloadCase_ == 3;
    }
    /**
     * <code>.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>.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>.build_event_stream.Aborted aborted = 4;</code>
     */
    public boolean hasAborted() {
      return payloadCase_ == 4;
    }
    /**
     * <code>.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>.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>.build_event_stream.BuildStarted started = 5;</code>
     */
    public boolean hasStarted() {
      return payloadCase_ == 5;
    }
    /**
     * <code>.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>.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 UNSTRUCTURED_COMMAND_LINE_FIELD_NUMBER = 12;
    /**
     * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
     */
    public boolean hasUnstructuredCommandLine() {
      return payloadCase_ == 12;
    }
    /**
     * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine getUnstructuredCommandLine() {
      if (payloadCase_ == 12) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLineOrBuilder getUnstructuredCommandLineOrBuilder() {
      if (payloadCase_ == 12) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.getDefaultInstance();
    }

    public static final int STRUCTURED_COMMAND_LINE_FIELD_NUMBER = 22;
    /**
     * <code>.command_line.CommandLine structured_command_line = 22;</code>
     */
    public boolean hasStructuredCommandLine() {
      return payloadCase_ == 22;
    }
    /**
     * <code>.command_line.CommandLine structured_command_line = 22;</code>
     */
    public com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine getStructuredCommandLine() {
      if (payloadCase_ == 22) {
         return (com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine) payload_;
      }
      return com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.getDefaultInstance();
    }
    /**
     * <code>.command_line.CommandLine structured_command_line = 22;</code>
     */
    public com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLineOrBuilder getStructuredCommandLineOrBuilder() {
      if (payloadCase_ == 22) {
         return (com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine) payload_;
      }
      return com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.getDefaultInstance();
    }

    public static final int OPTIONS_PARSED_FIELD_NUMBER = 13;
    /**
     * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
     */
    public boolean hasOptionsParsed() {
      return payloadCase_ == 13;
    }
    /**
     * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed getOptionsParsed() {
      if (payloadCase_ == 13) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsedOrBuilder getOptionsParsedOrBuilder() {
      if (payloadCase_ == 13) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.getDefaultInstance();
    }

    public static final int WORKSPACE_STATUS_FIELD_NUMBER = 16;
    /**
     * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
     */
    public boolean hasWorkspaceStatus() {
      return payloadCase_ == 16;
    }
    /**
     * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus getWorkspaceStatus() {
      if (payloadCase_ == 16) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatusOrBuilder getWorkspaceStatusOrBuilder() {
      if (payloadCase_ == 16) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.getDefaultInstance();
    }

    public static final int FETCH_FIELD_NUMBER = 21;
    /**
     * <code>.build_event_stream.Fetch fetch = 21;</code>
     */
    public boolean hasFetch() {
      return payloadCase_ == 21;
    }
    /**
     * <code>.build_event_stream.Fetch fetch = 21;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch getFetch() {
      if (payloadCase_ == 21) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.Fetch fetch = 21;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FetchOrBuilder getFetchOrBuilder() {
      if (payloadCase_ == 21) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.getDefaultInstance();
    }

    public static final int CONFIGURATION_FIELD_NUMBER = 17;
    /**
     * <code>.build_event_stream.Configuration configuration = 17;</code>
     */
    public boolean hasConfiguration() {
      return payloadCase_ == 17;
    }
    /**
     * <code>.build_event_stream.Configuration configuration = 17;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration getConfiguration() {
      if (payloadCase_ == 17) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.Configuration configuration = 17;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ConfigurationOrBuilder getConfigurationOrBuilder() {
      if (payloadCase_ == 17) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.getDefaultInstance();
    }

    public static final int EXPANDED_FIELD_NUMBER = 6;
    /**
     * <code>.build_event_stream.PatternExpanded expanded = 6;</code>
     */
    public boolean hasExpanded() {
      return payloadCase_ == 6;
    }
    /**
     * <code>.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>.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 CONFIGURED_FIELD_NUMBER = 18;
    /**
     * <code>.build_event_stream.TargetConfigured configured = 18;</code>
     */
    public boolean hasConfigured() {
      return payloadCase_ == 18;
    }
    /**
     * <code>.build_event_stream.TargetConfigured configured = 18;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured getConfigured() {
      if (payloadCase_ == 18) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.TargetConfigured configured = 18;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfiguredOrBuilder getConfiguredOrBuilder() {
      if (payloadCase_ == 18) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.getDefaultInstance();
    }

    public static final int ACTION_FIELD_NUMBER = 7;
    /**
     * <code>.build_event_stream.ActionExecuted action = 7;</code>
     */
    public boolean hasAction() {
      return payloadCase_ == 7;
    }
    /**
     * <code>.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>.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 NAMED_SET_OF_FILES_FIELD_NUMBER = 15;
    /**
     * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
     */
    public boolean hasNamedSetOfFiles() {
      return payloadCase_ == 15;
    }
    /**
     * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles getNamedSetOfFiles() {
      if (payloadCase_ == 15) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFilesOrBuilder getNamedSetOfFilesOrBuilder() {
      if (payloadCase_ == 15) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.getDefaultInstance();
    }

    public static final int COMPLETED_FIELD_NUMBER = 8;
    /**
     * <code>.build_event_stream.TargetComplete completed = 8;</code>
     */
    public boolean hasCompleted() {
      return payloadCase_ == 8;
    }
    /**
     * <code>.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>.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_RESULT_FIELD_NUMBER = 10;
    /**
     * <code>.build_event_stream.TestResult test_result = 10;</code>
     */
    public boolean hasTestResult() {
      return payloadCase_ == 10;
    }
    /**
     * <code>.build_event_stream.TestResult test_result = 10;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult getTestResult() {
      if (payloadCase_ == 10) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.TestResult test_result = 10;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResultOrBuilder getTestResultOrBuilder() {
      if (payloadCase_ == 10) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.getDefaultInstance();
    }

    public static final int TEST_SUMMARY_FIELD_NUMBER = 9;
    /**
     * <code>.build_event_stream.TestSummary test_summary = 9;</code>
     */
    public boolean hasTestSummary() {
      return payloadCase_ == 9;
    }
    /**
     * <code>.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>.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();
    }

    public static final int FINISHED_FIELD_NUMBER = 14;
    /**
     * <code>.build_event_stream.BuildFinished finished = 14;</code>
     */
    public boolean hasFinished() {
      return payloadCase_ == 14;
    }
    /**
     * <code>.build_event_stream.BuildFinished finished = 14;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished getFinished() {
      if (payloadCase_ == 14) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildFinished finished = 14;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinishedOrBuilder getFinishedOrBuilder() {
      if (payloadCase_ == 14) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.getDefaultInstance();
    }

    public static final int BUILD_TOOL_LOGS_FIELD_NUMBER = 23;
    /**
     * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
     */
    public boolean hasBuildToolLogs() {
      return payloadCase_ == 23;
    }
    /**
     * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs getBuildToolLogs() {
      if (payloadCase_ == 23) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogsOrBuilder getBuildToolLogsOrBuilder() {
      if (payloadCase_ == 23) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.getDefaultInstance();
    }

    public static final int BUILD_METRICS_FIELD_NUMBER = 24;
    /**
     * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
     */
    public boolean hasBuildMetrics() {
      return payloadCase_ == 24;
    }
    /**
     * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics getBuildMetrics() {
      if (payloadCase_ == 24) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.getDefaultInstance();
    }
    /**
     * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
     */
    public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetricsOrBuilder getBuildMetricsOrBuilder() {
      if (payloadCase_ == 24) {
         return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) payload_;
      }
      return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (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_);
      }
      if (payloadCase_ == 10) {
        output.writeMessage(10, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult) payload_);
      }
      if (payloadCase_ == 12) {
        output.writeMessage(12, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine) payload_);
      }
      if (payloadCase_ == 13) {
        output.writeMessage(13, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed) payload_);
      }
      if (payloadCase_ == 14) {
        output.writeMessage(14, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished) payload_);
      }
      if (payloadCase_ == 15) {
        output.writeMessage(15, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles) payload_);
      }
      if (payloadCase_ == 16) {
        output.writeMessage(16, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus) payload_);
      }
      if (payloadCase_ == 17) {
        output.writeMessage(17, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration) payload_);
      }
      if (payloadCase_ == 18) {
        output.writeMessage(18, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured) payload_);
      }
      if (lastMessage_ != false) {
        output.writeBool(20, lastMessage_);
      }
      if (payloadCase_ == 21) {
        output.writeMessage(21, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch) payload_);
      }
      if (payloadCase_ == 22) {
        output.writeMessage(22, (com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine) payload_);
      }
      if (payloadCase_ == 23) {
        output.writeMessage(23, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) payload_);
      }
      if (payloadCase_ == 24) {
        output.writeMessage(24, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) payload_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    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_);
      }
      if (payloadCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult) payload_);
      }
      if (payloadCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine) payload_);
      }
      if (payloadCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed) payload_);
      }
      if (payloadCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished) payload_);
      }
      if (payloadCase_ == 15) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles) payload_);
      }
      if (payloadCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus) payload_);
      }
      if (payloadCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration) payload_);
      }
      if (payloadCase_ == 18) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured) payload_);
      }
      if (lastMessage_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(20, lastMessage_);
      }
      if (payloadCase_ == 21) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch) payload_);
      }
      if (payloadCase_ == 22) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, (com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine) payload_);
      }
      if (payloadCase_ == 23) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) payload_);
      }
      if (payloadCase_ == 24) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(24, (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) payload_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof 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 && (getLastMessage()
          == other.getLastMessage());
      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 12:
          result = result && getUnstructuredCommandLine()
              .equals(other.getUnstructuredCommandLine());
          break;
        case 22:
          result = result && getStructuredCommandLine()
              .equals(other.getStructuredCommandLine());
          break;
        case 13:
          result = result && getOptionsParsed()
              .equals(other.getOptionsParsed());
          break;
        case 16:
          result = result && getWorkspaceStatus()
              .equals(other.getWorkspaceStatus());
          break;
        case 21:
          result = result && getFetch()
              .equals(other.getFetch());
          break;
        case 17:
          result = result && getConfiguration()
              .equals(other.getConfiguration());
          break;
        case 6:
          result = result && getExpanded()
              .equals(other.getExpanded());
          break;
        case 18:
          result = result && getConfigured()
              .equals(other.getConfigured());
          break;
        case 7:
          result = result && getAction()
              .equals(other.getAction());
          break;
        case 15:
          result = result && getNamedSetOfFiles()
              .equals(other.getNamedSetOfFiles());
          break;
        case 8:
          result = result && getCompleted()
              .equals(other.getCompleted());
          break;
        case 10:
          result = result && getTestResult()
              .equals(other.getTestResult());
          break;
        case 9:
          result = result && getTestSummary()
              .equals(other.getTestSummary());
          break;
        case 14:
          result = result && getFinished()
              .equals(other.getFinished());
          break;
        case 23:
          result = result && getBuildToolLogs()
              .equals(other.getBuildToolLogs());
          break;
        case 24:
          result = result && getBuildMetrics()
              .equals(other.getBuildMetrics());
          break;
        case 0:
        default:
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (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();
      }
      hash = (37 * hash) + LAST_MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getLastMessage());
      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 12:
          hash = (37 * hash) + UNSTRUCTURED_COMMAND_LINE_FIELD_NUMBER;
          hash = (53 * hash) + getUnstructuredCommandLine().hashCode();
          break;
        case 22:
          hash = (37 * hash) + STRUCTURED_COMMAND_LINE_FIELD_NUMBER;
          hash = (53 * hash) + getStructuredCommandLine().hashCode();
          break;
        case 13:
          hash = (37 * hash) + OPTIONS_PARSED_FIELD_NUMBER;
          hash = (53 * hash) + getOptionsParsed().hashCode();
          break;
        case 16:
          hash = (37 * hash) + WORKSPACE_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getWorkspaceStatus().hashCode();
          break;
        case 21:
          hash = (37 * hash) + FETCH_FIELD_NUMBER;
          hash = (53 * hash) + getFetch().hashCode();
          break;
        case 17:
          hash = (37 * hash) + CONFIGURATION_FIELD_NUMBER;
          hash = (53 * hash) + getConfiguration().hashCode();
          break;
        case 6:
          hash = (37 * hash) + EXPANDED_FIELD_NUMBER;
          hash = (53 * hash) + getExpanded().hashCode();
          break;
        case 18:
          hash = (37 * hash) + CONFIGURED_FIELD_NUMBER;
          hash = (53 * hash) + getConfigured().hashCode();
          break;
        case 7:
          hash = (37 * hash) + ACTION_FIELD_NUMBER;
          hash = (53 * hash) + getAction().hashCode();
          break;
        case 15:
          hash = (37 * hash) + NAMED_SET_OF_FILES_FIELD_NUMBER;
          hash = (53 * hash) + getNamedSetOfFiles().hashCode();
          break;
        case 8:
          hash = (37 * hash) + COMPLETED_FIELD_NUMBER;
          hash = (53 * hash) + getCompleted().hashCode();
          break;
        case 10:
          hash = (37 * hash) + TEST_RESULT_FIELD_NUMBER;
          hash = (53 * hash) + getTestResult().hashCode();
          break;
        case 9:
          hash = (37 * hash) + TEST_SUMMARY_FIELD_NUMBER;
          hash = (53 * hash) + getTestSummary().hashCode();
          break;
        case 14:
          hash = (37 * hash) + FINISHED_FIELD_NUMBER;
          hash = (53 * hash) + getFinished().hashCode();
          break;
        case 23:
          hash = (37 * hash) + BUILD_TOOL_LOGS_FIELD_NUMBER;
          hash = (53 * hash) + getBuildToolLogs().hashCode();
          break;
        case 24:
          hash = (37 * hash) + BUILD_METRICS_FIELD_NUMBER;
          hash = (53 * hash) + getBuildMetrics().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(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent parseFrom(
        java.nio.ByteBuffer 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(
        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);
    }

    @java.lang.Override
    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);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <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;
      }

      @java.lang.Override
      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();
        }
      }
      @java.lang.Override
      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();
        }
        lastMessage_ = false;

        payloadCase_ = 0;
        payload_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.internal_static_build_event_stream_BuildEvent_descriptor;
      }

      @java.lang.Override
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent getDefaultInstanceForType() {
        return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEvent.getDefaultInstance();
      }

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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();
        }
        result.lastMessage_ = lastMessage_;
        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_ == 12) {
          if (unstructuredCommandLineBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = unstructuredCommandLineBuilder_.build();
          }
        }
        if (payloadCase_ == 22) {
          if (structuredCommandLineBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = structuredCommandLineBuilder_.build();
          }
        }
        if (payloadCase_ == 13) {
          if (optionsParsedBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = optionsParsedBuilder_.build();
          }
        }
        if (payloadCase_ == 16) {
          if (workspaceStatusBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = workspaceStatusBuilder_.build();
          }
        }
        if (payloadCase_ == 21) {
          if (fetchBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = fetchBuilder_.build();
          }
        }
        if (payloadCase_ == 17) {
          if (configurationBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = configurationBuilder_.build();
          }
        }
        if (payloadCase_ == 6) {
          if (expandedBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = expandedBuilder_.build();
          }
        }
        if (payloadCase_ == 18) {
          if (configuredBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = configuredBuilder_.build();
          }
        }
        if (payloadCase_ == 7) {
          if (actionBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = actionBuilder_.build();
          }
        }
        if (payloadCase_ == 15) {
          if (namedSetOfFilesBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = namedSetOfFilesBuilder_.build();
          }
        }
        if (payloadCase_ == 8) {
          if (completedBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = completedBuilder_.build();
          }
        }
        if (payloadCase_ == 10) {
          if (testResultBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = testResultBuilder_.build();
          }
        }
        if (payloadCase_ == 9) {
          if (testSummaryBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = testSummaryBuilder_.build();
          }
        }
        if (payloadCase_ == 14) {
          if (finishedBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = finishedBuilder_.build();
          }
        }
        if (payloadCase_ == 23) {
          if (buildToolLogsBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = buildToolLogsBuilder_.build();
          }
        }
        if (payloadCase_ == 24) {
          if (buildMetricsBuilder_ == null) {
            result.payload_ = payload_;
          } else {
            result.payload_ = buildMetricsBuilder_.build();
          }
        }
        result.bitField0_ = to_bitField0_;
        result.payloadCase_ = payloadCase_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof 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_);
            }
          }
        }
        if (other.getLastMessage() != false) {
          setLastMessage(other.getLastMessage());
        }
        switch (other.getPayloadCase()) {
          case PROGRESS: {
            mergeProgress(other.getProgress());
            break;
          }
          case ABORTED: {
            mergeAborted(other.getAborted());
            break;
          }
          case STARTED: {
            mergeStarted(other.getStarted());
            break;
          }
          case UNSTRUCTURED_COMMAND_LINE: {
            mergeUnstructuredCommandLine(other.getUnstructuredCommandLine());
            break;
          }
          case STRUCTURED_COMMAND_LINE: {
            mergeStructuredCommandLine(other.getStructuredCommandLine());
            break;
          }
          case OPTIONS_PARSED: {
            mergeOptionsParsed(other.getOptionsParsed());
            break;
          }
          case WORKSPACE_STATUS: {
            mergeWorkspaceStatus(other.getWorkspaceStatus());
            break;
          }
          case FETCH: {
            mergeFetch(other.getFetch());
            break;
          }
          case CONFIGURATION: {
            mergeConfiguration(other.getConfiguration());
            break;
          }
          case EXPANDED: {
            mergeExpanded(other.getExpanded());
            break;
          }
          case CONFIGURED: {
            mergeConfigured(other.getConfigured());
            break;
          }
          case ACTION: {
            mergeAction(other.getAction());
            break;
          }
          case NAMED_SET_OF_FILES: {
            mergeNamedSetOfFiles(other.getNamedSetOfFiles());
            break;
          }
          case COMPLETED: {
            mergeCompleted(other.getCompleted());
            break;
          }
          case TEST_RESULT: {
            mergeTestResult(other.getTestResult());
            break;
          }
          case TEST_SUMMARY: {
            mergeTestSummary(other.getTestSummary());
            break;
          }
          case FINISHED: {
            mergeFinished(other.getFinished());
            break;
          }
          case BUILD_TOOL_LOGS: {
            mergeBuildToolLogs(other.getBuildToolLogs());
            break;
          }
          case BUILD_METRICS: {
            mergeBuildMetrics(other.getBuildMetrics());
            break;
          }
          case PAYLOAD_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        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>.build_event_stream.BuildEventId id = 1;</code>
       */
      public boolean hasId() {
        return idBuilder_ != null || id_ != null;
      }
      /**
       * <code>.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>.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>.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>.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>.build_event_stream.BuildEventId id = 1;</code>
       */
      public Builder clearId() {
        if (idBuilder_ == null) {
          id_ = null;
          onChanged();
        } else {
          id_ = null;
          idBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.build_event_stream.BuildEventId id = 1;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.Builder getIdBuilder() {
        
        onChanged();
        return getIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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 boolean lastMessage_ ;
      /**
       * <code>bool last_message = 20;</code>
       */
      public boolean getLastMessage() {
        return lastMessage_;
      }
      /**
       * <code>bool last_message = 20;</code>
       */
      public Builder setLastMessage(boolean value) {
        
        lastMessage_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool last_message = 20;</code>
       */
      public Builder clearLastMessage() {
        
        lastMessage_ = false;
        onChanged();
        return this;
      }

      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>.build_event_stream.Progress progress = 3;</code>
       */
      public boolean hasProgress() {
        return payloadCase_ == 3;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.Progress progress = 3;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Progress.Builder getProgressBuilder() {
        return getProgressFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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>.build_event_stream.Aborted aborted = 4;</code>
       */
      public boolean hasAborted() {
        return payloadCase_ == 4;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.Aborted aborted = 4;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.Builder getAbortedBuilder() {
        return getAbortedFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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>.build_event_stream.BuildStarted started = 5;</code>
       */
      public boolean hasStarted() {
        return payloadCase_ == 5;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.BuildStarted started = 5;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildStarted.Builder getStartedBuilder() {
        return getStartedFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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.UnstructuredCommandLine, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLineOrBuilder> unstructuredCommandLineBuilder_;
      /**
       * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
       */
      public boolean hasUnstructuredCommandLine() {
        return payloadCase_ == 12;
      }
      /**
       * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine getUnstructuredCommandLine() {
        if (unstructuredCommandLineBuilder_ == null) {
          if (payloadCase_ == 12) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.getDefaultInstance();
        } else {
          if (payloadCase_ == 12) {
            return unstructuredCommandLineBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
       */
      public Builder setUnstructuredCommandLine(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine value) {
        if (unstructuredCommandLineBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          unstructuredCommandLineBuilder_.setMessage(value);
        }
        payloadCase_ = 12;
        return this;
      }
      /**
       * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
       */
      public Builder setUnstructuredCommandLine(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.Builder builderForValue) {
        if (unstructuredCommandLineBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          unstructuredCommandLineBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 12;
        return this;
      }
      /**
       * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
       */
      public Builder mergeUnstructuredCommandLine(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine value) {
        if (unstructuredCommandLineBuilder_ == null) {
          if (payloadCase_ == 12 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 12) {
            unstructuredCommandLineBuilder_.mergeFrom(value);
          }
          unstructuredCommandLineBuilder_.setMessage(value);
        }
        payloadCase_ = 12;
        return this;
      }
      /**
       * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
       */
      public Builder clearUnstructuredCommandLine() {
        if (unstructuredCommandLineBuilder_ == null) {
          if (payloadCase_ == 12) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 12) {
            payloadCase_ = 0;
            payload_ = null;
          }
          unstructuredCommandLineBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.Builder getUnstructuredCommandLineBuilder() {
        return getUnstructuredCommandLineFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLineOrBuilder getUnstructuredCommandLineOrBuilder() {
        if ((payloadCase_ == 12) && (unstructuredCommandLineBuilder_ != null)) {
          return unstructuredCommandLineBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 12) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.UnstructuredCommandLine unstructured_command_line = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLineOrBuilder> 
          getUnstructuredCommandLineFieldBuilder() {
        if (unstructuredCommandLineBuilder_ == null) {
          if (!(payloadCase_ == 12)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.getDefaultInstance();
          }
          unstructuredCommandLineBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLineOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.UnstructuredCommandLine) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 12;
        onChanged();;
        return unstructuredCommandLineBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine, com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.Builder, com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLineOrBuilder> structuredCommandLineBuilder_;
      /**
       * <code>.command_line.CommandLine structured_command_line = 22;</code>
       */
      public boolean hasStructuredCommandLine() {
        return payloadCase_ == 22;
      }
      /**
       * <code>.command_line.CommandLine structured_command_line = 22;</code>
       */
      public com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine getStructuredCommandLine() {
        if (structuredCommandLineBuilder_ == null) {
          if (payloadCase_ == 22) {
            return (com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine) payload_;
          }
          return com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.getDefaultInstance();
        } else {
          if (payloadCase_ == 22) {
            return structuredCommandLineBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.getDefaultInstance();
        }
      }
      /**
       * <code>.command_line.CommandLine structured_command_line = 22;</code>
       */
      public Builder setStructuredCommandLine(com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine value) {
        if (structuredCommandLineBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          structuredCommandLineBuilder_.setMessage(value);
        }
        payloadCase_ = 22;
        return this;
      }
      /**
       * <code>.command_line.CommandLine structured_command_line = 22;</code>
       */
      public Builder setStructuredCommandLine(
          com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.Builder builderForValue) {
        if (structuredCommandLineBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          structuredCommandLineBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 22;
        return this;
      }
      /**
       * <code>.command_line.CommandLine structured_command_line = 22;</code>
       */
      public Builder mergeStructuredCommandLine(com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine value) {
        if (structuredCommandLineBuilder_ == null) {
          if (payloadCase_ == 22 &&
              payload_ != com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.newBuilder((com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 22) {
            structuredCommandLineBuilder_.mergeFrom(value);
          }
          structuredCommandLineBuilder_.setMessage(value);
        }
        payloadCase_ = 22;
        return this;
      }
      /**
       * <code>.command_line.CommandLine structured_command_line = 22;</code>
       */
      public Builder clearStructuredCommandLine() {
        if (structuredCommandLineBuilder_ == null) {
          if (payloadCase_ == 22) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 22) {
            payloadCase_ = 0;
            payload_ = null;
          }
          structuredCommandLineBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.command_line.CommandLine structured_command_line = 22;</code>
       */
      public com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.Builder getStructuredCommandLineBuilder() {
        return getStructuredCommandLineFieldBuilder().getBuilder();
      }
      /**
       * <code>.command_line.CommandLine structured_command_line = 22;</code>
       */
      public com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLineOrBuilder getStructuredCommandLineOrBuilder() {
        if ((payloadCase_ == 22) && (structuredCommandLineBuilder_ != null)) {
          return structuredCommandLineBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 22) {
            return (com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine) payload_;
          }
          return com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.getDefaultInstance();
        }
      }
      /**
       * <code>.command_line.CommandLine structured_command_line = 22;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine, com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.Builder, com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLineOrBuilder> 
          getStructuredCommandLineFieldBuilder() {
        if (structuredCommandLineBuilder_ == null) {
          if (!(payloadCase_ == 22)) {
            payload_ = com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.getDefaultInstance();
          }
          structuredCommandLineBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine, com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine.Builder, com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLineOrBuilder>(
                  (com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.CommandLine) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 22;
        onChanged();;
        return structuredCommandLineBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsedOrBuilder> optionsParsedBuilder_;
      /**
       * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
       */
      public boolean hasOptionsParsed() {
        return payloadCase_ == 13;
      }
      /**
       * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed getOptionsParsed() {
        if (optionsParsedBuilder_ == null) {
          if (payloadCase_ == 13) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.getDefaultInstance();
        } else {
          if (payloadCase_ == 13) {
            return optionsParsedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
       */
      public Builder setOptionsParsed(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed value) {
        if (optionsParsedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          optionsParsedBuilder_.setMessage(value);
        }
        payloadCase_ = 13;
        return this;
      }
      /**
       * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
       */
      public Builder setOptionsParsed(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.Builder builderForValue) {
        if (optionsParsedBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          optionsParsedBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 13;
        return this;
      }
      /**
       * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
       */
      public Builder mergeOptionsParsed(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed value) {
        if (optionsParsedBuilder_ == null) {
          if (payloadCase_ == 13 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 13) {
            optionsParsedBuilder_.mergeFrom(value);
          }
          optionsParsedBuilder_.setMessage(value);
        }
        payloadCase_ = 13;
        return this;
      }
      /**
       * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
       */
      public Builder clearOptionsParsed() {
        if (optionsParsedBuilder_ == null) {
          if (payloadCase_ == 13) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 13) {
            payloadCase_ = 0;
            payload_ = null;
          }
          optionsParsedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.Builder getOptionsParsedBuilder() {
        return getOptionsParsedFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsedOrBuilder getOptionsParsedOrBuilder() {
        if ((payloadCase_ == 13) && (optionsParsedBuilder_ != null)) {
          return optionsParsedBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 13) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.OptionsParsed options_parsed = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsedOrBuilder> 
          getOptionsParsedFieldBuilder() {
        if (optionsParsedBuilder_ == null) {
          if (!(payloadCase_ == 13)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.getDefaultInstance();
          }
          optionsParsedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsedOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OptionsParsed) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 13;
        onChanged();;
        return optionsParsedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatusOrBuilder> workspaceStatusBuilder_;
      /**
       * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
       */
      public boolean hasWorkspaceStatus() {
        return payloadCase_ == 16;
      }
      /**
       * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus getWorkspaceStatus() {
        if (workspaceStatusBuilder_ == null) {
          if (payloadCase_ == 16) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.getDefaultInstance();
        } else {
          if (payloadCase_ == 16) {
            return workspaceStatusBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
       */
      public Builder setWorkspaceStatus(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus value) {
        if (workspaceStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          workspaceStatusBuilder_.setMessage(value);
        }
        payloadCase_ = 16;
        return this;
      }
      /**
       * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
       */
      public Builder setWorkspaceStatus(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Builder builderForValue) {
        if (workspaceStatusBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          workspaceStatusBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 16;
        return this;
      }
      /**
       * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
       */
      public Builder mergeWorkspaceStatus(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus value) {
        if (workspaceStatusBuilder_ == null) {
          if (payloadCase_ == 16 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 16) {
            workspaceStatusBuilder_.mergeFrom(value);
          }
          workspaceStatusBuilder_.setMessage(value);
        }
        payloadCase_ = 16;
        return this;
      }
      /**
       * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
       */
      public Builder clearWorkspaceStatus() {
        if (workspaceStatusBuilder_ == null) {
          if (payloadCase_ == 16) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 16) {
            payloadCase_ = 0;
            payload_ = null;
          }
          workspaceStatusBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Builder getWorkspaceStatusBuilder() {
        return getWorkspaceStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatusOrBuilder getWorkspaceStatusOrBuilder() {
        if ((payloadCase_ == 16) && (workspaceStatusBuilder_ != null)) {
          return workspaceStatusBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 16) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.WorkspaceStatus workspace_status = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatusOrBuilder> 
          getWorkspaceStatusFieldBuilder() {
        if (workspaceStatusBuilder_ == null) {
          if (!(payloadCase_ == 16)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.getDefaultInstance();
          }
          workspaceStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatusOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.WorkspaceStatus) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 16;
        onChanged();;
        return workspaceStatusBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FetchOrBuilder> fetchBuilder_;
      /**
       * <code>.build_event_stream.Fetch fetch = 21;</code>
       */
      public boolean hasFetch() {
        return payloadCase_ == 21;
      }
      /**
       * <code>.build_event_stream.Fetch fetch = 21;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch getFetch() {
        if (fetchBuilder_ == null) {
          if (payloadCase_ == 21) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.getDefaultInstance();
        } else {
          if (payloadCase_ == 21) {
            return fetchBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.Fetch fetch = 21;</code>
       */
      public Builder setFetch(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch value) {
        if (fetchBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          fetchBuilder_.setMessage(value);
        }
        payloadCase_ = 21;
        return this;
      }
      /**
       * <code>.build_event_stream.Fetch fetch = 21;</code>
       */
      public Builder setFetch(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.Builder builderForValue) {
        if (fetchBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          fetchBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 21;
        return this;
      }
      /**
       * <code>.build_event_stream.Fetch fetch = 21;</code>
       */
      public Builder mergeFetch(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch value) {
        if (fetchBuilder_ == null) {
          if (payloadCase_ == 21 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 21) {
            fetchBuilder_.mergeFrom(value);
          }
          fetchBuilder_.setMessage(value);
        }
        payloadCase_ = 21;
        return this;
      }
      /**
       * <code>.build_event_stream.Fetch fetch = 21;</code>
       */
      public Builder clearFetch() {
        if (fetchBuilder_ == null) {
          if (payloadCase_ == 21) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 21) {
            payloadCase_ = 0;
            payload_ = null;
          }
          fetchBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.Fetch fetch = 21;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.Builder getFetchBuilder() {
        return getFetchFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.Fetch fetch = 21;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FetchOrBuilder getFetchOrBuilder() {
        if ((payloadCase_ == 21) && (fetchBuilder_ != null)) {
          return fetchBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 21) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.Fetch fetch = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FetchOrBuilder> 
          getFetchFieldBuilder() {
        if (fetchBuilder_ == null) {
          if (!(payloadCase_ == 21)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.getDefaultInstance();
          }
          fetchBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.FetchOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Fetch) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 21;
        onChanged();;
        return fetchBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ConfigurationOrBuilder> configurationBuilder_;
      /**
       * <code>.build_event_stream.Configuration configuration = 17;</code>
       */
      public boolean hasConfiguration() {
        return payloadCase_ == 17;
      }
      /**
       * <code>.build_event_stream.Configuration configuration = 17;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration getConfiguration() {
        if (configurationBuilder_ == null) {
          if (payloadCase_ == 17) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.getDefaultInstance();
        } else {
          if (payloadCase_ == 17) {
            return configurationBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.Configuration configuration = 17;</code>
       */
      public Builder setConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration value) {
        if (configurationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          configurationBuilder_.setMessage(value);
        }
        payloadCase_ = 17;
        return this;
      }
      /**
       * <code>.build_event_stream.Configuration configuration = 17;</code>
       */
      public Builder setConfiguration(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.Builder builderForValue) {
        if (configurationBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          configurationBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 17;
        return this;
      }
      /**
       * <code>.build_event_stream.Configuration configuration = 17;</code>
       */
      public Builder mergeConfiguration(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration value) {
        if (configurationBuilder_ == null) {
          if (payloadCase_ == 17 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 17) {
            configurationBuilder_.mergeFrom(value);
          }
          configurationBuilder_.setMessage(value);
        }
        payloadCase_ = 17;
        return this;
      }
      /**
       * <code>.build_event_stream.Configuration configuration = 17;</code>
       */
      public Builder clearConfiguration() {
        if (configurationBuilder_ == null) {
          if (payloadCase_ == 17) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 17) {
            payloadCase_ = 0;
            payload_ = null;
          }
          configurationBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.Configuration configuration = 17;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.Builder getConfigurationBuilder() {
        return getConfigurationFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.Configuration configuration = 17;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ConfigurationOrBuilder getConfigurationOrBuilder() {
        if ((payloadCase_ == 17) && (configurationBuilder_ != null)) {
          return configurationBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 17) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.Configuration configuration = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ConfigurationOrBuilder> 
          getConfigurationFieldBuilder() {
        if (configurationBuilder_ == null) {
          if (!(payloadCase_ == 17)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.getDefaultInstance();
          }
          configurationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ConfigurationOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Configuration) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 17;
        onChanged();;
        return configurationBuilder_;
      }

      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>.build_event_stream.PatternExpanded expanded = 6;</code>
       */
      public boolean hasExpanded() {
        return payloadCase_ == 6;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.PatternExpanded expanded = 6;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.PatternExpanded.Builder getExpandedBuilder() {
        return getExpandedFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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.TargetConfigured, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfiguredOrBuilder> configuredBuilder_;
      /**
       * <code>.build_event_stream.TargetConfigured configured = 18;</code>
       */
      public boolean hasConfigured() {
        return payloadCase_ == 18;
      }
      /**
       * <code>.build_event_stream.TargetConfigured configured = 18;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured getConfigured() {
        if (configuredBuilder_ == null) {
          if (payloadCase_ == 18) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.getDefaultInstance();
        } else {
          if (payloadCase_ == 18) {
            return configuredBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.TargetConfigured configured = 18;</code>
       */
      public Builder setConfigured(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured value) {
        if (configuredBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          configuredBuilder_.setMessage(value);
        }
        payloadCase_ = 18;
        return this;
      }
      /**
       * <code>.build_event_stream.TargetConfigured configured = 18;</code>
       */
      public Builder setConfigured(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.Builder builderForValue) {
        if (configuredBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          configuredBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 18;
        return this;
      }
      /**
       * <code>.build_event_stream.TargetConfigured configured = 18;</code>
       */
      public Builder mergeConfigured(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured value) {
        if (configuredBuilder_ == null) {
          if (payloadCase_ == 18 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 18) {
            configuredBuilder_.mergeFrom(value);
          }
          configuredBuilder_.setMessage(value);
        }
        payloadCase_ = 18;
        return this;
      }
      /**
       * <code>.build_event_stream.TargetConfigured configured = 18;</code>
       */
      public Builder clearConfigured() {
        if (configuredBuilder_ == null) {
          if (payloadCase_ == 18) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 18) {
            payloadCase_ = 0;
            payload_ = null;
          }
          configuredBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.TargetConfigured configured = 18;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.Builder getConfiguredBuilder() {
        return getConfiguredFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.TargetConfigured configured = 18;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfiguredOrBuilder getConfiguredOrBuilder() {
        if ((payloadCase_ == 18) && (configuredBuilder_ != null)) {
          return configuredBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 18) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.TargetConfigured configured = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfiguredOrBuilder> 
          getConfiguredFieldBuilder() {
        if (configuredBuilder_ == null) {
          if (!(payloadCase_ == 18)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.getDefaultInstance();
          }
          configuredBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfiguredOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetConfigured) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 18;
        onChanged();;
        return configuredBuilder_;
      }

      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>.build_event_stream.ActionExecuted action = 7;</code>
       */
      public boolean hasAction() {
        return payloadCase_ == 7;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.ActionExecuted action = 7;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.ActionExecuted.Builder getActionBuilder() {
        return getActionFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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.NamedSetOfFiles, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFilesOrBuilder> namedSetOfFilesBuilder_;
      /**
       * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
       */
      public boolean hasNamedSetOfFiles() {
        return payloadCase_ == 15;
      }
      /**
       * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles getNamedSetOfFiles() {
        if (namedSetOfFilesBuilder_ == null) {
          if (payloadCase_ == 15) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.getDefaultInstance();
        } else {
          if (payloadCase_ == 15) {
            return namedSetOfFilesBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
       */
      public Builder setNamedSetOfFiles(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles value) {
        if (namedSetOfFilesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          namedSetOfFilesBuilder_.setMessage(value);
        }
        payloadCase_ = 15;
        return this;
      }
      /**
       * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
       */
      public Builder setNamedSetOfFiles(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.Builder builderForValue) {
        if (namedSetOfFilesBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          namedSetOfFilesBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 15;
        return this;
      }
      /**
       * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
       */
      public Builder mergeNamedSetOfFiles(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles value) {
        if (namedSetOfFilesBuilder_ == null) {
          if (payloadCase_ == 15 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 15) {
            namedSetOfFilesBuilder_.mergeFrom(value);
          }
          namedSetOfFilesBuilder_.setMessage(value);
        }
        payloadCase_ = 15;
        return this;
      }
      /**
       * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
       */
      public Builder clearNamedSetOfFiles() {
        if (namedSetOfFilesBuilder_ == null) {
          if (payloadCase_ == 15) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 15) {
            payloadCase_ = 0;
            payload_ = null;
          }
          namedSetOfFilesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.Builder getNamedSetOfFilesBuilder() {
        return getNamedSetOfFilesFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFilesOrBuilder getNamedSetOfFilesOrBuilder() {
        if ((payloadCase_ == 15) && (namedSetOfFilesBuilder_ != null)) {
          return namedSetOfFilesBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 15) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.NamedSetOfFiles named_set_of_files = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFilesOrBuilder> 
          getNamedSetOfFilesFieldBuilder() {
        if (namedSetOfFilesBuilder_ == null) {
          if (!(payloadCase_ == 15)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.getDefaultInstance();
          }
          namedSetOfFilesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFilesOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.NamedSetOfFiles) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 15;
        onChanged();;
        return namedSetOfFilesBuilder_;
      }

      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>.build_event_stream.TargetComplete completed = 8;</code>
       */
      public boolean hasCompleted() {
        return payloadCase_ == 8;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.TargetComplete completed = 8;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TargetComplete.Builder getCompletedBuilder() {
        return getCompletedFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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.TestResult, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResultOrBuilder> testResultBuilder_;
      /**
       * <code>.build_event_stream.TestResult test_result = 10;</code>
       */
      public boolean hasTestResult() {
        return payloadCase_ == 10;
      }
      /**
       * <code>.build_event_stream.TestResult test_result = 10;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult getTestResult() {
        if (testResultBuilder_ == null) {
          if (payloadCase_ == 10) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.getDefaultInstance();
        } else {
          if (payloadCase_ == 10) {
            return testResultBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.TestResult test_result = 10;</code>
       */
      public Builder setTestResult(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult value) {
        if (testResultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          testResultBuilder_.setMessage(value);
        }
        payloadCase_ = 10;
        return this;
      }
      /**
       * <code>.build_event_stream.TestResult test_result = 10;</code>
       */
      public Builder setTestResult(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.Builder builderForValue) {
        if (testResultBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          testResultBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 10;
        return this;
      }
      /**
       * <code>.build_event_stream.TestResult test_result = 10;</code>
       */
      public Builder mergeTestResult(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult value) {
        if (testResultBuilder_ == null) {
          if (payloadCase_ == 10 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 10) {
            testResultBuilder_.mergeFrom(value);
          }
          testResultBuilder_.setMessage(value);
        }
        payloadCase_ = 10;
        return this;
      }
      /**
       * <code>.build_event_stream.TestResult test_result = 10;</code>
       */
      public Builder clearTestResult() {
        if (testResultBuilder_ == null) {
          if (payloadCase_ == 10) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 10) {
            payloadCase_ = 0;
            payload_ = null;
          }
          testResultBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.TestResult test_result = 10;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.Builder getTestResultBuilder() {
        return getTestResultFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.TestResult test_result = 10;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResultOrBuilder getTestResultOrBuilder() {
        if ((payloadCase_ == 10) && (testResultBuilder_ != null)) {
          return testResultBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 10) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.TestResult test_result = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResultOrBuilder> 
          getTestResultFieldBuilder() {
        if (testResultBuilder_ == null) {
          if (!(payloadCase_ == 10)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.getDefaultInstance();
          }
          testResultBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResultOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestResult) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 10;
        onChanged();;
        return testResultBuilder_;
      }

      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>.build_event_stream.TestSummary test_summary = 9;</code>
       */
      public boolean hasTestSummary() {
        return payloadCase_ == 9;
      }
      /**
       * <code>.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>.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>.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>.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>.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>.build_event_stream.TestSummary test_summary = 9;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestSummary.Builder getTestSummaryBuilder() {
        return getTestSummaryFieldBuilder().getBuilder();
      }
      /**
       * <code>.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>.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_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinishedOrBuilder> finishedBuilder_;
      /**
       * <code>.build_event_stream.BuildFinished finished = 14;</code>
       */
      public boolean hasFinished() {
        return payloadCase_ == 14;
      }
      /**
       * <code>.build_event_stream.BuildFinished finished = 14;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished getFinished() {
        if (finishedBuilder_ == null) {
          if (payloadCase_ == 14) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.getDefaultInstance();
        } else {
          if (payloadCase_ == 14) {
            return finishedBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildFinished finished = 14;</code>
       */
      public Builder setFinished(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished value) {
        if (finishedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          finishedBuilder_.setMessage(value);
        }
        payloadCase_ = 14;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildFinished finished = 14;</code>
       */
      public Builder setFinished(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.Builder builderForValue) {
        if (finishedBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          finishedBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 14;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildFinished finished = 14;</code>
       */
      public Builder mergeFinished(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished value) {
        if (finishedBuilder_ == null) {
          if (payloadCase_ == 14 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 14) {
            finishedBuilder_.mergeFrom(value);
          }
          finishedBuilder_.setMessage(value);
        }
        payloadCase_ = 14;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildFinished finished = 14;</code>
       */
      public Builder clearFinished() {
        if (finishedBuilder_ == null) {
          if (payloadCase_ == 14) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 14) {
            payloadCase_ = 0;
            payload_ = null;
          }
          finishedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildFinished finished = 14;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.Builder getFinishedBuilder() {
        return getFinishedFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildFinished finished = 14;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinishedOrBuilder getFinishedOrBuilder() {
        if ((payloadCase_ == 14) && (finishedBuilder_ != null)) {
          return finishedBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 14) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildFinished finished = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinishedOrBuilder> 
          getFinishedFieldBuilder() {
        if (finishedBuilder_ == null) {
          if (!(payloadCase_ == 14)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.getDefaultInstance();
          }
          finishedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinishedOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildFinished) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 14;
        onChanged();;
        return finishedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogsOrBuilder> buildToolLogsBuilder_;
      /**
       * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
       */
      public boolean hasBuildToolLogs() {
        return payloadCase_ == 23;
      }
      /**
       * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs getBuildToolLogs() {
        if (buildToolLogsBuilder_ == null) {
          if (payloadCase_ == 23) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.getDefaultInstance();
        } else {
          if (payloadCase_ == 23) {
            return buildToolLogsBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
       */
      public Builder setBuildToolLogs(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs value) {
        if (buildToolLogsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          buildToolLogsBuilder_.setMessage(value);
        }
        payloadCase_ = 23;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
       */
      public Builder setBuildToolLogs(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.Builder builderForValue) {
        if (buildToolLogsBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          buildToolLogsBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 23;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
       */
      public Builder mergeBuildToolLogs(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs value) {
        if (buildToolLogsBuilder_ == null) {
          if (payloadCase_ == 23 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 23) {
            buildToolLogsBuilder_.mergeFrom(value);
          }
          buildToolLogsBuilder_.setMessage(value);
        }
        payloadCase_ = 23;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
       */
      public Builder clearBuildToolLogs() {
        if (buildToolLogsBuilder_ == null) {
          if (payloadCase_ == 23) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 23) {
            payloadCase_ = 0;
            payload_ = null;
          }
          buildToolLogsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.Builder getBuildToolLogsBuilder() {
        return getBuildToolLogsFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogsOrBuilder getBuildToolLogsOrBuilder() {
        if ((payloadCase_ == 23) && (buildToolLogsBuilder_ != null)) {
          return buildToolLogsBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 23) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildToolLogs build_tool_logs = 23;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogsOrBuilder> 
          getBuildToolLogsFieldBuilder() {
        if (buildToolLogsBuilder_ == null) {
          if (!(payloadCase_ == 23)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.getDefaultInstance();
          }
          buildToolLogsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogsOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildToolLogs) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 23;
        onChanged();;
        return buildToolLogsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetricsOrBuilder> buildMetricsBuilder_;
      /**
       * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
       */
      public boolean hasBuildMetrics() {
        return payloadCase_ == 24;
      }
      /**
       * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics getBuildMetrics() {
        if (buildMetricsBuilder_ == null) {
          if (payloadCase_ == 24) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.getDefaultInstance();
        } else {
          if (payloadCase_ == 24) {
            return buildMetricsBuilder_.getMessage();
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
       */
      public Builder setBuildMetrics(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics value) {
        if (buildMetricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          buildMetricsBuilder_.setMessage(value);
        }
        payloadCase_ = 24;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
       */
      public Builder setBuildMetrics(
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.Builder builderForValue) {
        if (buildMetricsBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          buildMetricsBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 24;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
       */
      public Builder mergeBuildMetrics(com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics value) {
        if (buildMetricsBuilder_ == null) {
          if (payloadCase_ == 24 &&
              payload_ != com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.getDefaultInstance()) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.newBuilder((com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 24) {
            buildMetricsBuilder_.mergeFrom(value);
          }
          buildMetricsBuilder_.setMessage(value);
        }
        payloadCase_ = 24;
        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
       */
      public Builder clearBuildMetrics() {
        if (buildMetricsBuilder_ == null) {
          if (payloadCase_ == 24) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 24) {
            payloadCase_ = 0;
            payload_ = null;
          }
          buildMetricsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.Builder getBuildMetricsBuilder() {
        return getBuildMetricsFieldBuilder().getBuilder();
      }
      /**
       * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
       */
      public com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetricsOrBuilder getBuildMetricsOrBuilder() {
        if ((payloadCase_ == 24) && (buildMetricsBuilder_ != null)) {
          return buildMetricsBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 24) {
            return (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) payload_;
          }
          return com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.getDefaultInstance();
        }
      }
      /**
       * <code>.build_event_stream.BuildMetrics build_metrics = 24;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetricsOrBuilder> 
          getBuildMetricsFieldBuilder() {
        if (buildMetricsBuilder_ == null) {
          if (!(payloadCase_ == 24)) {
            payload_ = com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.getDefaultInstance();
          }
          buildMetricsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics.Builder, com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetricsOrBuilder>(
                  (com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildMetrics) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 24;
        onChanged();;
        return buildMetricsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope: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>() {
      @java.lang.Override
      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;
    }

    @java.lang.Override
    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_UnstructuredCommandLineId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_UnstructuredCommandLineId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_StructuredCommandLineId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_StructuredCommandLineId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_WorkspaceStatusId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_WorkspaceStatusId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_OptionsParsedId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_OptionsParsedId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_FetchId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_FetchId_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_TargetConfiguredId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_TargetConfiguredId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_NamedSetOfFilesId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_NamedSetOfFilesId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_ConfigurationId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_ConfigurationId_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_UnconfiguredLabelId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_UnconfiguredLabelId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_ConfiguredLabelId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_ConfiguredLabelId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_TestResultId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_TestResultId_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_BuildEventId_BuildFinishedId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_BuildFinishedId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_BuildToolLogsId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_BuildToolLogsId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildEventId_BuildMetricsId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildEventId_BuildMetricsId_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_UnstructuredCommandLine_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_UnstructuredCommandLine_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_OptionsParsed_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_OptionsParsed_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_Fetch_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_Fetch_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_WorkspaceStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_WorkspaceStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_WorkspaceStatus_Item_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_WorkspaceStatus_Item_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_Configuration_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_Configuration_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_Configuration_MakeVariableEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_Configuration_MakeVariableEntry_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_TargetConfigured_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_TargetConfigured_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_NamedSetOfFiles_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_NamedSetOfFiles_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_OutputGroup_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_OutputGroup_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_TestResult_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_TestResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_TestResult_ExecutionInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_TestResult_ExecutionInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_TestResult_ExecutionInfo_TimingBreakdown_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_TestResult_ExecutionInfo_TimingBreakdown_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_TestResult_ExecutionInfo_ResourceUsage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_TestResult_ExecutionInfo_ResourceUsage_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_BuildFinished_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildFinished_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildFinished_ExitCode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildFinished_ExitCode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildMetrics_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildMetrics_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildMetrics_ActionSummary_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildMetrics_ActionSummary_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildMetrics_MemoryMetrics_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildMetrics_MemoryMetrics_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildMetrics_TargetMetrics_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildMetrics_TargetMetrics_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildMetrics_PackageMetrics_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildMetrics_PackageMetrics_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_build_event_stream_BuildToolLogs_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_build_event_stream_BuildToolLogs_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[src/main/java/com/google/devtools/buil" +
      "d/lib/buildeventstream/proto/build_event" +
      "_stream.proto\022\022build_event_stream\032)src/m" +
      "ain/protobuf/invocation_policy.proto\032$sr" +
      "c/main/protobuf/command_line.proto\"\202\026\n\014B" +
      "uildEventId\022G\n\007unknown\030\001 \001(\01324.build_eve" +
      "nt_stream.BuildEventId.UnknownBuildEvent" +
      "IdH\000\022?\n\010progress\030\002 \001(\0132+.build_event_str" +
      "eam.BuildEventId.ProgressIdH\000\022B\n\007started" +
      "\030\003 \001(\0132/.build_event_stream.BuildEventId" +
      ".BuildStartedIdH\000\022_\n\031unstructured_comman" +
      "d_line\030\013 \001(\0132:.build_event_stream.BuildE" +
      "ventId.UnstructuredCommandLineIdH\000\022[\n\027st" +
      "ructured_command_line\030\022 \001(\01328.build_even" +
      "t_stream.BuildEventId.StructuredCommandL" +
      "ineIdH\000\022N\n\020workspace_status\030\016 \001(\01322.buil" +
      "d_event_stream.BuildEventId.WorkspaceSta" +
      "tusIdH\000\022J\n\016options_parsed\030\014 \001(\01320.build_" +
      "event_stream.BuildEventId.OptionsParsedI" +
      "dH\000\0229\n\005fetch\030\021 \001(\0132(.build_event_stream." +
      "BuildEventId.FetchIdH\000\022I\n\rconfiguration\030" +
      "\017 \001(\01320.build_event_stream.BuildEventId." +
      "ConfigurationIdH\000\022P\n\021target_configured\030\020" +
      " \001(\01323.build_event_stream.BuildEventId.T" +
      "argetConfiguredIdH\000\022E\n\007pattern\030\004 \001(\01322.b" +
      "uild_event_stream.BuildEventId.PatternEx" +
      "pandedIdH\000\022M\n\017pattern_skipped\030\n \001(\01322.bu" +
      "ild_event_stream.BuildEventId.PatternExp" +
      "andedIdH\000\022G\n\tnamed_set\030\r \001(\01322.build_eve" +
      "nt_stream.BuildEventId.NamedSetOfFilesId" +
      "H\000\022N\n\020target_completed\030\005 \001(\01322.build_eve" +
      "nt_stream.BuildEventId.TargetCompletedId" +
      "H\000\022N\n\020action_completed\030\006 \001(\01322.build_eve" +
      "nt_stream.BuildEventId.ActionCompletedId" +
      "H\000\022R\n\022unconfigured_label\030\023 \001(\01324.build_e" +
      "vent_stream.BuildEventId.UnconfiguredLab" +
      "elIdH\000\022N\n\020configured_label\030\025 \001(\01322.build" +
      "_event_stream.BuildEventId.ConfiguredLab" +
      "elIdH\000\022D\n\013test_result\030\010 \001(\0132-.build_even" +
      "t_stream.BuildEventId.TestResultIdH\000\022F\n\014" +
      "test_summary\030\007 \001(\0132..build_event_stream." +
      "BuildEventId.TestSummaryIdH\000\022J\n\016build_fi" +
      "nished\030\t \001(\01320.build_event_stream.BuildE" +
      "ventId.BuildFinishedIdH\000\022K\n\017build_tool_l" +
      "ogs\030\024 \001(\01320.build_event_stream.BuildEven" +
      "tId.BuildToolLogsIdH\000\022H\n\rbuild_metrics\030\026" +
      " \001(\0132/.build_event_stream.BuildEventId.B" +
      "uildMetricsIdH\000\032&\n\023UnknownBuildEventId\022\017" +
      "\n\007details\030\001 \001(\t\032\"\n\nProgressId\022\024\n\014opaque_" +
      "count\030\001 \001(\005\032\020\n\016BuildStartedId\032\033\n\031Unstruc" +
      "turedCommandLineId\0325\n\027StructuredCommandL" +
      "ineId\022\032\n\022command_line_label\030\001 \001(\t\032\023\n\021Wor" +
      "kspaceStatusId\032\021\n\017OptionsParsedId\032\026\n\007Fet" +
      "chId\022\013\n\003url\030\001 \001(\t\032$\n\021PatternExpandedId\022\017" +
      "\n\007pattern\030\001 \003(\t\0323\n\022TargetConfiguredId\022\r\n" +
      "\005label\030\001 \001(\t\022\016\n\006aspect\030\002 \001(\t\032\037\n\021NamedSet" +
      "OfFilesId\022\n\n\002id\030\001 \001(\t\032\035\n\017ConfigurationId" +
      "\022\n\n\002id\030\001 \001(\t\032{\n\021TargetCompletedId\022\r\n\005lab" +
      "el\030\001 \001(\t\022G\n\rconfiguration\030\003 \001(\01320.build_" +
      "event_stream.BuildEventId.ConfigurationI" +
      "d\022\016\n\006aspect\030\002 \001(\t\032\203\001\n\021ActionCompletedId\022" +
      "\026\n\016primary_output\030\001 \001(\t\022\r\n\005label\030\002 \001(\t\022G" +
      "\n\rconfiguration\030\003 \001(\01320.build_event_stre" +
      "am.BuildEventId.ConfigurationId\032$\n\023Uncon" +
      "figuredLabelId\022\r\n\005label\030\001 \001(\t\032k\n\021Configu" +
      "redLabelId\022\r\n\005label\030\001 \001(\t\022G\n\rconfigurati" +
      "on\030\002 \001(\01320.build_event_stream.BuildEvent" +
      "Id.ConfigurationId\032\223\001\n\014TestResultId\022\r\n\005l" +
      "abel\030\001 \001(\t\022G\n\rconfiguration\030\005 \001(\01320.buil" +
      "d_event_stream.BuildEventId.Configuratio" +
      "nId\022\013\n\003run\030\002 \001(\005\022\r\n\005shard\030\003 \001(\005\022\017\n\007attem" +
      "pt\030\004 \001(\005\032g\n\rTestSummaryId\022\r\n\005label\030\001 \001(\t" +
      "\022G\n\rconfiguration\030\002 \001(\01320.build_event_st" +
      "ream.BuildEventId.ConfigurationId\032\021\n\017Bui" +
      "ldFinishedId\032\021\n\017BuildToolLogsId\032\020\n\016Build" +
      "MetricsIdB\004\n\002id\"*\n\010Progress\022\016\n\006stdout\030\001 " +
      "\001(\t\022\016\n\006stderr\030\002 \001(\t\"\234\002\n\007Aborted\0227\n\006reaso" +
      "n\030\001 \001(\0162\'.build_event_stream.Aborted.Abo" +
      "rtReason\022\023\n\013description\030\002 \001(\t\"\302\001\n\013AbortR" +
      "eason\022\013\n\007UNKNOWN\020\000\022\024\n\020USER_INTERRUPTED\020\001" +
      "\022\016\n\nNO_ANALYZE\020\010\022\014\n\010NO_BUILD\020\t\022\014\n\010TIME_O" +
      "UT\020\002\022\036\n\032REMOTE_ENVIRONMENT_FAILURE\020\003\022\014\n\010" +
      "INTERNAL\020\004\022\023\n\017LOADING_FAILURE\020\005\022\024\n\020ANALY" +
      "SIS_FAILURE\020\006\022\013\n\007SKIPPED\020\007\"\315\001\n\014BuildStar" +
      "ted\022\014\n\004uuid\030\001 \001(\t\022\031\n\021start_time_millis\030\002" +
      " \001(\003\022\032\n\022build_tool_version\030\003 \001(\t\022\033\n\023opti" +
      "ons_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\023workspace_d" +
      "irectory\030\007 \001(\t\022\022\n\nserver_pid\030\010 \001(\003\"\'\n\027Un" +
      "structuredCommandLine\022\014\n\004args\030\001 \003(\t\"\317\001\n\r" +
      "OptionsParsed\022\027\n\017startup_options\030\001 \003(\t\022 " +
      "\n\030explicit_startup_options\030\002 \003(\t\022\020\n\010cmd_" +
      "line\030\003 \003(\t\022\031\n\021explicit_cmd_line\030\004 \003(\t\022D\n" +
      "\021invocation_policy\030\005 \001(\0132).blaze.invocat" +
      "ion_policy.InvocationPolicy\022\020\n\010tool_tag\030" +
      "\006 \001(\t\"\030\n\005Fetch\022\017\n\007success\030\001 \001(\010\"m\n\017Works" +
      "paceStatus\0226\n\004item\030\001 \003(\0132(.build_event_s" +
      "tream.WorkspaceStatus.Item\032\"\n\004Item\022\013\n\003ke" +
      "y\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\306\001\n\rConfiguration" +
      "\022\020\n\010mnemonic\030\001 \001(\t\022\025\n\rplatform_name\030\002 \001(" +
      "\t\022\013\n\003cpu\030\003 \001(\t\022J\n\rmake_variable\030\004 \003(\01323." +
      "build_event_stream.Configuration.MakeVar" +
      "iableEntry\0323\n\021MakeVariableEntry\022\013\n\003key\030\001" +
      " \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\021\n\017PatternExpand" +
      "ed\"e\n\020TargetConfigured\022\023\n\013target_kind\030\001 " +
      "\001(\t\022/\n\ttest_size\030\002 \001(\0162\034.build_event_str" +
      "eam.TestSize\022\013\n\003tag\030\003 \003(\t\"?\n\004File\022\014\n\004nam" +
      "e\030\001 \001(\t\022\r\n\003uri\030\002 \001(\tH\000\022\022\n\010contents\030\003 \001(\014" +
      "H\000B\006\n\004file\"\201\001\n\017NamedSetOfFiles\022\'\n\005files\030" +
      "\001 \003(\0132\030.build_event_stream.File\022E\n\tfile_" +
      "sets\030\002 \003(\01322.build_event_stream.BuildEve" +
      "ntId.NamedSetOfFilesId\"\276\002\n\016ActionExecute" +
      "d\022\017\n\007success\030\001 \001(\010\022\014\n\004type\030\010 \001(\t\022\021\n\texit" +
      "_code\030\002 \001(\005\022(\n\006stdout\030\003 \001(\0132\030.build_even" +
      "t_stream.File\022(\n\006stderr\030\004 \001(\0132\030.build_ev" +
      "ent_stream.File\022\021\n\005label\030\005 \001(\tB\002\030\001\022K\n\rco" +
      "nfiguration\030\007 \001(\01320.build_event_stream.B" +
      "uildEventId.ConfigurationIdB\002\030\001\0220\n\016prima" +
      "ry_output\030\006 \001(\0132\030.build_event_stream.Fil" +
      "e\022\024\n\014command_line\030\t \003(\t\"h\n\013OutputGroup\022\014" +
      "\n\004name\030\001 \001(\t\022E\n\tfile_sets\030\003 \003(\01322.build_" +
      "event_stream.BuildEventId.NamedSetOfFile" +
      "sIdJ\004\010\002\020\003\"\211\002\n\016TargetComplete\022\017\n\007success\030" +
      "\001 \001(\010\022\027\n\013target_kind\030\005 \001(\tB\002\030\001\0223\n\ttest_s" +
      "ize\030\006 \001(\0162\034.build_event_stream.TestSizeB" +
      "\002\030\001\0225\n\014output_group\030\002 \003(\0132\037.build_event_" +
      "stream.OutputGroup\0226\n\020important_output\030\004" +
      " \003(\0132\030.build_event_stream.FileB\002\030\001\022\013\n\003ta" +
      "g\030\003 \003(\t\022\034\n\024test_timeout_seconds\030\007 \001(\003\"\253\006" +
      "\n\nTestResult\022.\n\006status\030\005 \001(\0162\036.build_eve" +
      "nt_stream.TestStatus\022\026\n\016status_details\030\t" +
      " \001(\t\022\026\n\016cached_locally\030\004 \001(\010\022\'\n\037test_att" +
      "empt_start_millis_epoch\030\006 \001(\003\022$\n\034test_at" +
      "tempt_duration_millis\030\003 \001(\003\0224\n\022test_acti" +
      "on_output\030\002 \003(\0132\030.build_event_stream.Fil" +
      "e\022\017\n\007warning\030\007 \003(\t\022D\n\016execution_info\030\010 \001" +
      "(\0132,.build_event_stream.TestResult.Execu" +
      "tionInfo\032\332\003\n\rExecutionInfo\022\033\n\017timeout_se" +
      "conds\030\001 \001(\005B\002\030\001\022\020\n\010strategy\030\002 \001(\t\022\027\n\017cac" +
      "hed_remotely\030\006 \001(\010\022\021\n\texit_code\030\007 \001(\005\022\020\n" +
      "\010hostname\030\003 \001(\t\022V\n\020timing_breakdown\030\004 \001(" +
      "\0132<.build_event_stream.TestResult.Execut" +
      "ionInfo.TimingBreakdown\022R\n\016resource_usag" +
      "e\030\005 \003(\0132:.build_event_stream.TestResult." +
      "ExecutionInfo.ResourceUsage\032\201\001\n\017TimingBr" +
      "eakdown\022K\n\005child\030\001 \003(\0132<.build_event_str" +
      "eam.TestResult.ExecutionInfo.TimingBreak" +
      "down\022\014\n\004name\030\002 \001(\t\022\023\n\013time_millis\030\003 \001(\003\032" +
      ",\n\rResourceUsage\022\014\n\004name\030\001 \001(\t\022\r\n\005value\030" +
      "\002 \001(\003J\004\010\001\020\002\"\314\001\n\013TestSummary\0226\n\016overall_s" +
      "tatus\030\005 \001(\0162\036.build_event_stream.TestSta" +
      "tus\022\027\n\017total_run_count\030\001 \001(\005\022(\n\006passed\030\003" +
      " \003(\0132\030.build_event_stream.File\022(\n\006failed" +
      "\030\004 \003(\0132\030.build_event_stream.File\022\030\n\020tota" +
      "l_num_cached\030\006 \001(\005\"\257\001\n\rBuildFinished\022\033\n\017" +
      "overall_success\030\001 \001(\010B\002\030\001\022=\n\texit_code\030\003" +
      " \001(\0132*.build_event_stream.BuildFinished." +
      "ExitCode\022\032\n\022finish_time_millis\030\002 \001(\003\032&\n\010" +
      "ExitCode\022\014\n\004name\030\001 \001(\t\022\014\n\004code\030\002 \001(\005\"\230\004\n" +
      "\014BuildMetrics\022F\n\016action_summary\030\001 \001(\0132.." +
      "build_event_stream.BuildMetrics.ActionSu" +
      "mmary\022F\n\016memory_metrics\030\002 \001(\0132..build_ev" +
      "ent_stream.BuildMetrics.MemoryMetrics\022F\n" +
      "\016target_metrics\030\003 \001(\0132..build_event_stre" +
      "am.BuildMetrics.TargetMetrics\022H\n\017package" +
      "_metrics\030\004 \001(\0132/.build_event_stream.Buil" +
      "dMetrics.PackageMetrics\032B\n\rActionSummary" +
      "\022\027\n\017actions_created\030\001 \001(\003\022\030\n\020actions_exe" +
      "cuted\030\002 \001(\003\0322\n\rMemoryMetrics\022!\n\031used_hea" +
      "p_size_post_build\030\001 \001(\003\032C\n\rTargetMetrics" +
      "\022\026\n\016targets_loaded\030\001 \001(\003\022\032\n\022targets_conf" +
      "igured\030\002 \001(\003\032)\n\016PackageMetrics\022\027\n\017packag" +
      "es_loaded\030\001 \001(\003\"6\n\rBuildToolLogs\022%\n\003log\030" +
      "\001 \003(\0132\030.build_event_stream.File\"\357\t\n\nBuil" +
      "dEvent\022,\n\002id\030\001 \001(\0132 .build_event_stream." +
      "BuildEventId\0222\n\010children\030\002 \003(\0132 .build_e" +
      "vent_stream.BuildEventId\022\024\n\014last_message" +
      "\030\024 \001(\010\0220\n\010progress\030\003 \001(\0132\034.build_event_s" +
      "tream.ProgressH\000\022.\n\007aborted\030\004 \001(\0132\033.buil" +
      "d_event_stream.AbortedH\000\0223\n\007started\030\005 \001(" +
      "\0132 .build_event_stream.BuildStartedH\000\022P\n" +
      "\031unstructured_command_line\030\014 \001(\0132+.build" +
      "_event_stream.UnstructuredCommandLineH\000\022" +
      "<\n\027structured_command_line\030\026 \001(\0132\031.comma" +
      "nd_line.CommandLineH\000\022;\n\016options_parsed\030" +
      "\r \001(\0132!.build_event_stream.OptionsParsed" +
      "H\000\022?\n\020workspace_status\030\020 \001(\0132#.build_eve" +
      "nt_stream.WorkspaceStatusH\000\022*\n\005fetch\030\025 \001" +
      "(\0132\031.build_event_stream.FetchH\000\022:\n\rconfi" +
      "guration\030\021 \001(\0132!.build_event_stream.Conf" +
      "igurationH\000\0227\n\010expanded\030\006 \001(\0132#.build_ev" +
      "ent_stream.PatternExpandedH\000\022:\n\nconfigur" +
      "ed\030\022 \001(\0132$.build_event_stream.TargetConf" +
      "iguredH\000\0224\n\006action\030\007 \001(\0132\".build_event_s" +
      "tream.ActionExecutedH\000\022A\n\022named_set_of_f" +
      "iles\030\017 \001(\0132#.build_event_stream.NamedSet" +
      "OfFilesH\000\0227\n\tcompleted\030\010 \001(\0132\".build_eve" +
      "nt_stream.TargetCompleteH\000\0225\n\013test_resul" +
      "t\030\n \001(\0132\036.build_event_stream.TestResultH" +
      "\000\0227\n\014test_summary\030\t \001(\0132\037.build_event_st" +
      "ream.TestSummaryH\000\0225\n\010finished\030\016 \001(\0132!.b" +
      "uild_event_stream.BuildFinishedH\000\022<\n\017bui" +
      "ld_tool_logs\030\027 \001(\0132!.build_event_stream." +
      "BuildToolLogsH\000\0229\n\rbuild_metrics\030\030 \001(\0132 " +
      ".build_event_stream.BuildMetricsH\000B\t\n\007pa" +
      "yloadJ\004\010\013\020\014J\004\010\023\020\024*G\n\010TestSize\022\013\n\007UNKNOWN" +
      "\020\000\022\t\n\005SMALL\020\001\022\n\n\006MEDIUM\020\002\022\t\n\005LARGE\020\003\022\014\n\010" +
      "ENORMOUS\020\004*\244\001\n\nTestStatus\022\r\n\tNO_STATUS\020\000" +
      "\022\n\n\006PASSED\020\001\022\t\n\005FLAKY\020\002\022\013\n\007TIMEOUT\020\003\022\n\n\006" +
      "FAILED\020\004\022\016\n\nINCOMPLETE\020\005\022\022\n\016REMOTE_FAILU" +
      "RE\020\006\022\023\n\017FAILED_TO_BUILD\020\007\022\036\n\032TOOL_HALTED" +
      "_BEFORE_TESTING\020\010BH\n.com.google.devtools" +
      ".build.lib.buildeventstreamB\026BuildEventS" +
      "treamProtosb\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[] {
          com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.getDescriptor(),
          com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.getDescriptor(),
        }, 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", "UnstructuredCommandLine", "StructuredCommandLine", "WorkspaceStatus", "OptionsParsed", "Fetch", "Configuration", "TargetConfigured", "Pattern", "PatternSkipped", "NamedSet", "TargetCompleted", "ActionCompleted", "UnconfiguredLabel", "ConfiguredLabel", "TestResult", "TestSummary", "BuildFinished", "BuildToolLogs", "BuildMetrics", "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_UnstructuredCommandLineId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(3);
    internal_static_build_event_stream_BuildEventId_UnstructuredCommandLineId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_UnstructuredCommandLineId_descriptor,
        new java.lang.String[] { });
    internal_static_build_event_stream_BuildEventId_StructuredCommandLineId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(4);
    internal_static_build_event_stream_BuildEventId_StructuredCommandLineId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_StructuredCommandLineId_descriptor,
        new java.lang.String[] { "CommandLineLabel", });
    internal_static_build_event_stream_BuildEventId_WorkspaceStatusId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(5);
    internal_static_build_event_stream_BuildEventId_WorkspaceStatusId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_WorkspaceStatusId_descriptor,
        new java.lang.String[] { });
    internal_static_build_event_stream_BuildEventId_OptionsParsedId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(6);
    internal_static_build_event_stream_BuildEventId_OptionsParsedId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_OptionsParsedId_descriptor,
        new java.lang.String[] { });
    internal_static_build_event_stream_BuildEventId_FetchId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(7);
    internal_static_build_event_stream_BuildEventId_FetchId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_FetchId_descriptor,
        new java.lang.String[] { "Url", });
    internal_static_build_event_stream_BuildEventId_PatternExpandedId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(8);
    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_TargetConfiguredId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(9);
    internal_static_build_event_stream_BuildEventId_TargetConfiguredId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_TargetConfiguredId_descriptor,
        new java.lang.String[] { "Label", "Aspect", });
    internal_static_build_event_stream_BuildEventId_NamedSetOfFilesId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(10);
    internal_static_build_event_stream_BuildEventId_NamedSetOfFilesId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_NamedSetOfFilesId_descriptor,
        new java.lang.String[] { "Id", });
    internal_static_build_event_stream_BuildEventId_ConfigurationId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(11);
    internal_static_build_event_stream_BuildEventId_ConfigurationId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_ConfigurationId_descriptor,
        new java.lang.String[] { "Id", });
    internal_static_build_event_stream_BuildEventId_TargetCompletedId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(12);
    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", "Configuration", "Aspect", });
    internal_static_build_event_stream_BuildEventId_ActionCompletedId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(13);
    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", "Label", "Configuration", });
    internal_static_build_event_stream_BuildEventId_UnconfiguredLabelId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(14);
    internal_static_build_event_stream_BuildEventId_UnconfiguredLabelId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_UnconfiguredLabelId_descriptor,
        new java.lang.String[] { "Label", });
    internal_static_build_event_stream_BuildEventId_ConfiguredLabelId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(15);
    internal_static_build_event_stream_BuildEventId_ConfiguredLabelId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_ConfiguredLabelId_descriptor,
        new java.lang.String[] { "Label", "Configuration", });
    internal_static_build_event_stream_BuildEventId_TestResultId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(16);
    internal_static_build_event_stream_BuildEventId_TestResultId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_TestResultId_descriptor,
        new java.lang.String[] { "Label", "Configuration", "Run", "Shard", "Attempt", });
    internal_static_build_event_stream_BuildEventId_TestSummaryId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(17);
    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", "Configuration", });
    internal_static_build_event_stream_BuildEventId_BuildFinishedId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(18);
    internal_static_build_event_stream_BuildEventId_BuildFinishedId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_BuildFinishedId_descriptor,
        new java.lang.String[] { });
    internal_static_build_event_stream_BuildEventId_BuildToolLogsId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(19);
    internal_static_build_event_stream_BuildEventId_BuildToolLogsId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_BuildToolLogsId_descriptor,
        new java.lang.String[] { });
    internal_static_build_event_stream_BuildEventId_BuildMetricsId_descriptor =
      internal_static_build_event_stream_BuildEventId_descriptor.getNestedTypes().get(20);
    internal_static_build_event_stream_BuildEventId_BuildMetricsId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildEventId_BuildMetricsId_descriptor,
        new java.lang.String[] { });
    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[] { "Stdout", "Stderr", });
    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", "StartTimeMillis", "BuildToolVersion", "OptionsDescription", "Command", "WorkingDirectory", "WorkspaceDirectory", "ServerPid", });
    internal_static_build_event_stream_UnstructuredCommandLine_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_build_event_stream_UnstructuredCommandLine_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_UnstructuredCommandLine_descriptor,
        new java.lang.String[] { "Args", });
    internal_static_build_event_stream_OptionsParsed_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_build_event_stream_OptionsParsed_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_OptionsParsed_descriptor,
        new java.lang.String[] { "StartupOptions", "ExplicitStartupOptions", "CmdLine", "ExplicitCmdLine", "InvocationPolicy", "ToolTag", });
    internal_static_build_event_stream_Fetch_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_build_event_stream_Fetch_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_Fetch_descriptor,
        new java.lang.String[] { "Success", });
    internal_static_build_event_stream_WorkspaceStatus_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_build_event_stream_WorkspaceStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_WorkspaceStatus_descriptor,
        new java.lang.String[] { "Item", });
    internal_static_build_event_stream_WorkspaceStatus_Item_descriptor =
      internal_static_build_event_stream_WorkspaceStatus_descriptor.getNestedTypes().get(0);
    internal_static_build_event_stream_WorkspaceStatus_Item_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_WorkspaceStatus_Item_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_build_event_stream_Configuration_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_build_event_stream_Configuration_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_Configuration_descriptor,
        new java.lang.String[] { "Mnemonic", "PlatformName", "Cpu", "MakeVariable", });
    internal_static_build_event_stream_Configuration_MakeVariableEntry_descriptor =
      internal_static_build_event_stream_Configuration_descriptor.getNestedTypes().get(0);
    internal_static_build_event_stream_Configuration_MakeVariableEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_Configuration_MakeVariableEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_build_event_stream_PatternExpanded_descriptor =
      getDescriptor().getMessageTypes().get(9);
    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_TargetConfigured_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_build_event_stream_TargetConfigured_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_TargetConfigured_descriptor,
        new java.lang.String[] { "TargetKind", "TestSize", "Tag", });
    internal_static_build_event_stream_File_descriptor =
      getDescriptor().getMessageTypes().get(11);
    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_NamedSetOfFiles_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_build_event_stream_NamedSetOfFiles_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_NamedSetOfFiles_descriptor,
        new java.lang.String[] { "Files", "FileSets", });
    internal_static_build_event_stream_ActionExecuted_descriptor =
      getDescriptor().getMessageTypes().get(13);
    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", "Type", "ExitCode", "Stdout", "Stderr", "Label", "Configuration", "PrimaryOutput", "CommandLine", });
    internal_static_build_event_stream_OutputGroup_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_build_event_stream_OutputGroup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_OutputGroup_descriptor,
        new java.lang.String[] { "Name", "FileSets", });
    internal_static_build_event_stream_TargetComplete_descriptor =
      getDescriptor().getMessageTypes().get(15);
    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", "TargetKind", "TestSize", "OutputGroup", "ImportantOutput", "Tag", "TestTimeoutSeconds", });
    internal_static_build_event_stream_TestResult_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_build_event_stream_TestResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_TestResult_descriptor,
        new java.lang.String[] { "Status", "StatusDetails", "CachedLocally", "TestAttemptStartMillisEpoch", "TestAttemptDurationMillis", "TestActionOutput", "Warning", "ExecutionInfo", });
    internal_static_build_event_stream_TestResult_ExecutionInfo_descriptor =
      internal_static_build_event_stream_TestResult_descriptor.getNestedTypes().get(0);
    internal_static_build_event_stream_TestResult_ExecutionInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_TestResult_ExecutionInfo_descriptor,
        new java.lang.String[] { "TimeoutSeconds", "Strategy", "CachedRemotely", "ExitCode", "Hostname", "TimingBreakdown", "ResourceUsage", });
    internal_static_build_event_stream_TestResult_ExecutionInfo_TimingBreakdown_descriptor =
      internal_static_build_event_stream_TestResult_ExecutionInfo_descriptor.getNestedTypes().get(0);
    internal_static_build_event_stream_TestResult_ExecutionInfo_TimingBreakdown_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_TestResult_ExecutionInfo_TimingBreakdown_descriptor,
        new java.lang.String[] { "Child", "Name", "TimeMillis", });
    internal_static_build_event_stream_TestResult_ExecutionInfo_ResourceUsage_descriptor =
      internal_static_build_event_stream_TestResult_ExecutionInfo_descriptor.getNestedTypes().get(1);
    internal_static_build_event_stream_TestResult_ExecutionInfo_ResourceUsage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_TestResult_ExecutionInfo_ResourceUsage_descriptor,
        new java.lang.String[] { "Name", "Value", });
    internal_static_build_event_stream_TestSummary_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_build_event_stream_TestSummary_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_TestSummary_descriptor,
        new java.lang.String[] { "OverallStatus", "TotalRunCount", "Passed", "Failed", "TotalNumCached", });
    internal_static_build_event_stream_BuildFinished_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_build_event_stream_BuildFinished_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildFinished_descriptor,
        new java.lang.String[] { "OverallSuccess", "ExitCode", "FinishTimeMillis", });
    internal_static_build_event_stream_BuildFinished_ExitCode_descriptor =
      internal_static_build_event_stream_BuildFinished_descriptor.getNestedTypes().get(0);
    internal_static_build_event_stream_BuildFinished_ExitCode_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildFinished_ExitCode_descriptor,
        new java.lang.String[] { "Name", "Code", });
    internal_static_build_event_stream_BuildMetrics_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_build_event_stream_BuildMetrics_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildMetrics_descriptor,
        new java.lang.String[] { "ActionSummary", "MemoryMetrics", "TargetMetrics", "PackageMetrics", });
    internal_static_build_event_stream_BuildMetrics_ActionSummary_descriptor =
      internal_static_build_event_stream_BuildMetrics_descriptor.getNestedTypes().get(0);
    internal_static_build_event_stream_BuildMetrics_ActionSummary_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildMetrics_ActionSummary_descriptor,
        new java.lang.String[] { "ActionsCreated", "ActionsExecuted", });
    internal_static_build_event_stream_BuildMetrics_MemoryMetrics_descriptor =
      internal_static_build_event_stream_BuildMetrics_descriptor.getNestedTypes().get(1);
    internal_static_build_event_stream_BuildMetrics_MemoryMetrics_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildMetrics_MemoryMetrics_descriptor,
        new java.lang.String[] { "UsedHeapSizePostBuild", });
    internal_static_build_event_stream_BuildMetrics_TargetMetrics_descriptor =
      internal_static_build_event_stream_BuildMetrics_descriptor.getNestedTypes().get(2);
    internal_static_build_event_stream_BuildMetrics_TargetMetrics_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildMetrics_TargetMetrics_descriptor,
        new java.lang.String[] { "TargetsLoaded", "TargetsConfigured", });
    internal_static_build_event_stream_BuildMetrics_PackageMetrics_descriptor =
      internal_static_build_event_stream_BuildMetrics_descriptor.getNestedTypes().get(3);
    internal_static_build_event_stream_BuildMetrics_PackageMetrics_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildMetrics_PackageMetrics_descriptor,
        new java.lang.String[] { "PackagesLoaded", });
    internal_static_build_event_stream_BuildToolLogs_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_build_event_stream_BuildToolLogs_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_build_event_stream_BuildToolLogs_descriptor,
        new java.lang.String[] { "Log", });
    internal_static_build_event_stream_BuildEvent_descriptor =
      getDescriptor().getMessageTypes().get(21);
    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", "LastMessage", "Progress", "Aborted", "Started", "UnstructuredCommandLine", "StructuredCommandLine", "OptionsParsed", "WorkspaceStatus", "Fetch", "Configuration", "Expanded", "Configured", "Action", "NamedSetOfFiles", "Completed", "TestResult", "TestSummary", "Finished", "BuildToolLogs", "BuildMetrics", "Payload", });
    com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.getDescriptor();
    com.google.devtools.build.lib.runtime.proto.CommandLineOuterClass.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
