// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/core/util/test_log.proto

package org.tensorflow.proto.util.testlog;

/**
 * Protobuf type {@code tensorflow.MachineConfiguration}
 */
public  final class MachineConfiguration extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:tensorflow.MachineConfiguration)
    MachineConfigurationOrBuilder {
private static final long serialVersionUID = 0L;
  // Use MachineConfiguration.newBuilder() to construct.
  private MachineConfiguration(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }
  private MachineConfiguration() {
    hostname_ = "";
    serialIdentifier_ = "";
    deviceInfo_ = java.util.Collections.emptyList();
    availableDeviceInfo_ = java.util.Collections.emptyList();
  }

  @java.lang.Override
  @SuppressWarnings({"unused"})
  protected java.lang.Object newInstance(
      UnusedPrivateParameter unused) {
    return new MachineConfiguration();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet
  getUnknownFields() {
    return this.unknownFields;
  }
  private MachineConfiguration(
      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();

            hostname_ = s;
            break;
          }
          case 18: {
            org.tensorflow.proto.util.testlog.PlatformInfo.Builder subBuilder = null;
            if (platformInfo_ != null) {
              subBuilder = platformInfo_.toBuilder();
            }
            platformInfo_ = input.readMessage(org.tensorflow.proto.util.testlog.PlatformInfo.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(platformInfo_);
              platformInfo_ = subBuilder.buildPartial();
            }

            break;
          }
          case 26: {
            org.tensorflow.proto.util.testlog.CPUInfo.Builder subBuilder = null;
            if (cpuInfo_ != null) {
              subBuilder = cpuInfo_.toBuilder();
            }
            cpuInfo_ = input.readMessage(org.tensorflow.proto.util.testlog.CPUInfo.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(cpuInfo_);
              cpuInfo_ = subBuilder.buildPartial();
            }

            break;
          }
          case 34: {
            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              deviceInfo_ = new java.util.ArrayList<com.google.protobuf.Any>();
              mutable_bitField0_ |= 0x00000001;
            }
            deviceInfo_.add(
                input.readMessage(com.google.protobuf.Any.parser(), extensionRegistry));
            break;
          }
          case 42: {
            if (!((mutable_bitField0_ & 0x00000002) != 0)) {
              availableDeviceInfo_ = new java.util.ArrayList<org.tensorflow.proto.util.testlog.AvailableDeviceInfo>();
              mutable_bitField0_ |= 0x00000002;
            }
            availableDeviceInfo_.add(
                input.readMessage(org.tensorflow.proto.util.testlog.AvailableDeviceInfo.parser(), extensionRegistry));
            break;
          }
          case 50: {
            org.tensorflow.proto.util.testlog.MemoryInfo.Builder subBuilder = null;
            if (memoryInfo_ != null) {
              subBuilder = memoryInfo_.toBuilder();
            }
            memoryInfo_ = input.readMessage(org.tensorflow.proto.util.testlog.MemoryInfo.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(memoryInfo_);
              memoryInfo_ = subBuilder.buildPartial();
            }

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

            serialIdentifier_ = s;
            break;
          }
          default: {
            if (!parseUnknownField(
                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) != 0)) {
        deviceInfo_ = java.util.Collections.unmodifiableList(deviceInfo_);
      }
      if (((mutable_bitField0_ & 0x00000002) != 0)) {
        availableDeviceInfo_ = java.util.Collections.unmodifiableList(availableDeviceInfo_);
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }
  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return org.tensorflow.proto.util.testlog.TestLogProtos.internal_static_tensorflow_MachineConfiguration_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return org.tensorflow.proto.util.testlog.TestLogProtos.internal_static_tensorflow_MachineConfiguration_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            org.tensorflow.proto.util.testlog.MachineConfiguration.class, org.tensorflow.proto.util.testlog.MachineConfiguration.Builder.class);
  }

  public static final int HOSTNAME_FIELD_NUMBER = 1;
  private volatile java.lang.Object hostname_;
  /**
   * <pre>
   * Host name of machine that ran the benchmark.
   * </pre>
   *
   * <code>string hostname = 1;</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>
   * Host name of machine that ran the benchmark.
   * </pre>
   *
   * <code>string hostname = 1;</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 SERIAL_IDENTIFIER_FIELD_NUMBER = 7;
  private volatile java.lang.Object serialIdentifier_;
  /**
   * <pre>
   * Unique serial number of the machine.
   * </pre>
   *
   * <code>string serial_identifier = 7;</code>
   */
  public java.lang.String getSerialIdentifier() {
    java.lang.Object ref = serialIdentifier_;
    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();
      serialIdentifier_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * Unique serial number of the machine.
   * </pre>
   *
   * <code>string serial_identifier = 7;</code>
   */
  public com.google.protobuf.ByteString
      getSerialIdentifierBytes() {
    java.lang.Object ref = serialIdentifier_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      serialIdentifier_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int PLATFORM_INFO_FIELD_NUMBER = 2;
  private org.tensorflow.proto.util.testlog.PlatformInfo platformInfo_;
  /**
   * <pre>
   * Additional platform information.
   * </pre>
   *
   * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
   */
  public boolean hasPlatformInfo() {
    return platformInfo_ != null;
  }
  /**
   * <pre>
   * Additional platform information.
   * </pre>
   *
   * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
   */
  public org.tensorflow.proto.util.testlog.PlatformInfo getPlatformInfo() {
    return platformInfo_ == null ? org.tensorflow.proto.util.testlog.PlatformInfo.getDefaultInstance() : platformInfo_;
  }
  /**
   * <pre>
   * Additional platform information.
   * </pre>
   *
   * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
   */
  public org.tensorflow.proto.util.testlog.PlatformInfoOrBuilder getPlatformInfoOrBuilder() {
    return getPlatformInfo();
  }

  public static final int CPU_INFO_FIELD_NUMBER = 3;
  private org.tensorflow.proto.util.testlog.CPUInfo cpuInfo_;
  /**
   * <pre>
   * CPU Information.
   * </pre>
   *
   * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
   */
  public boolean hasCpuInfo() {
    return cpuInfo_ != null;
  }
  /**
   * <pre>
   * CPU Information.
   * </pre>
   *
   * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
   */
  public org.tensorflow.proto.util.testlog.CPUInfo getCpuInfo() {
    return cpuInfo_ == null ? org.tensorflow.proto.util.testlog.CPUInfo.getDefaultInstance() : cpuInfo_;
  }
  /**
   * <pre>
   * CPU Information.
   * </pre>
   *
   * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
   */
  public org.tensorflow.proto.util.testlog.CPUInfoOrBuilder getCpuInfoOrBuilder() {
    return getCpuInfo();
  }

  public static final int DEVICE_INFO_FIELD_NUMBER = 4;
  private java.util.List<com.google.protobuf.Any> deviceInfo_;
  /**
   * <pre>
   * Other devices that are attached and relevant (e.g. GPUInfo).
   * </pre>
   *
   * <code>repeated .google.protobuf.Any device_info = 4;</code>
   */
  public java.util.List<com.google.protobuf.Any> getDeviceInfoList() {
    return deviceInfo_;
  }
  /**
   * <pre>
   * Other devices that are attached and relevant (e.g. GPUInfo).
   * </pre>
   *
   * <code>repeated .google.protobuf.Any device_info = 4;</code>
   */
  public java.util.List<? extends com.google.protobuf.AnyOrBuilder> 
      getDeviceInfoOrBuilderList() {
    return deviceInfo_;
  }
  /**
   * <pre>
   * Other devices that are attached and relevant (e.g. GPUInfo).
   * </pre>
   *
   * <code>repeated .google.protobuf.Any device_info = 4;</code>
   */
  public int getDeviceInfoCount() {
    return deviceInfo_.size();
  }
  /**
   * <pre>
   * Other devices that are attached and relevant (e.g. GPUInfo).
   * </pre>
   *
   * <code>repeated .google.protobuf.Any device_info = 4;</code>
   */
  public com.google.protobuf.Any getDeviceInfo(int index) {
    return deviceInfo_.get(index);
  }
  /**
   * <pre>
   * Other devices that are attached and relevant (e.g. GPUInfo).
   * </pre>
   *
   * <code>repeated .google.protobuf.Any device_info = 4;</code>
   */
  public com.google.protobuf.AnyOrBuilder getDeviceInfoOrBuilder(
      int index) {
    return deviceInfo_.get(index);
  }

  public static final int AVAILABLE_DEVICE_INFO_FIELD_NUMBER = 5;
  private java.util.List<org.tensorflow.proto.util.testlog.AvailableDeviceInfo> availableDeviceInfo_;
  /**
   * <pre>
   * Devices accessible to the test (e.g. as given by list_local_devices).
   * </pre>
   *
   * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
   */
  public java.util.List<org.tensorflow.proto.util.testlog.AvailableDeviceInfo> getAvailableDeviceInfoList() {
    return availableDeviceInfo_;
  }
  /**
   * <pre>
   * Devices accessible to the test (e.g. as given by list_local_devices).
   * </pre>
   *
   * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
   */
  public java.util.List<? extends org.tensorflow.proto.util.testlog.AvailableDeviceInfoOrBuilder> 
      getAvailableDeviceInfoOrBuilderList() {
    return availableDeviceInfo_;
  }
  /**
   * <pre>
   * Devices accessible to the test (e.g. as given by list_local_devices).
   * </pre>
   *
   * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
   */
  public int getAvailableDeviceInfoCount() {
    return availableDeviceInfo_.size();
  }
  /**
   * <pre>
   * Devices accessible to the test (e.g. as given by list_local_devices).
   * </pre>
   *
   * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
   */
  public org.tensorflow.proto.util.testlog.AvailableDeviceInfo getAvailableDeviceInfo(int index) {
    return availableDeviceInfo_.get(index);
  }
  /**
   * <pre>
   * Devices accessible to the test (e.g. as given by list_local_devices).
   * </pre>
   *
   * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
   */
  public org.tensorflow.proto.util.testlog.AvailableDeviceInfoOrBuilder getAvailableDeviceInfoOrBuilder(
      int index) {
    return availableDeviceInfo_.get(index);
  }

  public static final int MEMORY_INFO_FIELD_NUMBER = 6;
  private org.tensorflow.proto.util.testlog.MemoryInfo memoryInfo_;
  /**
   * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
   */
  public boolean hasMemoryInfo() {
    return memoryInfo_ != null;
  }
  /**
   * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
   */
  public org.tensorflow.proto.util.testlog.MemoryInfo getMemoryInfo() {
    return memoryInfo_ == null ? org.tensorflow.proto.util.testlog.MemoryInfo.getDefaultInstance() : memoryInfo_;
  }
  /**
   * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
   */
  public org.tensorflow.proto.util.testlog.MemoryInfoOrBuilder getMemoryInfoOrBuilder() {
    return getMemoryInfo();
  }

  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 (!getHostnameBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, hostname_);
    }
    if (platformInfo_ != null) {
      output.writeMessage(2, getPlatformInfo());
    }
    if (cpuInfo_ != null) {
      output.writeMessage(3, getCpuInfo());
    }
    for (int i = 0; i < deviceInfo_.size(); i++) {
      output.writeMessage(4, deviceInfo_.get(i));
    }
    for (int i = 0; i < availableDeviceInfo_.size(); i++) {
      output.writeMessage(5, availableDeviceInfo_.get(i));
    }
    if (memoryInfo_ != null) {
      output.writeMessage(6, getMemoryInfo());
    }
    if (!getSerialIdentifierBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 7, serialIdentifier_);
    }
    unknownFields.writeTo(output);
  }

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

    size = 0;
    if (!getHostnameBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, hostname_);
    }
    if (platformInfo_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(2, getPlatformInfo());
    }
    if (cpuInfo_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(3, getCpuInfo());
    }
    for (int i = 0; i < deviceInfo_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(4, deviceInfo_.get(i));
    }
    for (int i = 0; i < availableDeviceInfo_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(5, availableDeviceInfo_.get(i));
    }
    if (memoryInfo_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(6, getMemoryInfo());
    }
    if (!getSerialIdentifierBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, serialIdentifier_);
    }
    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 org.tensorflow.proto.util.testlog.MachineConfiguration)) {
      return super.equals(obj);
    }
    org.tensorflow.proto.util.testlog.MachineConfiguration other = (org.tensorflow.proto.util.testlog.MachineConfiguration) obj;

    if (!getHostname()
        .equals(other.getHostname())) return false;
    if (!getSerialIdentifier()
        .equals(other.getSerialIdentifier())) return false;
    if (hasPlatformInfo() != other.hasPlatformInfo()) return false;
    if (hasPlatformInfo()) {
      if (!getPlatformInfo()
          .equals(other.getPlatformInfo())) return false;
    }
    if (hasCpuInfo() != other.hasCpuInfo()) return false;
    if (hasCpuInfo()) {
      if (!getCpuInfo()
          .equals(other.getCpuInfo())) return false;
    }
    if (!getDeviceInfoList()
        .equals(other.getDeviceInfoList())) return false;
    if (!getAvailableDeviceInfoList()
        .equals(other.getAvailableDeviceInfoList())) return false;
    if (hasMemoryInfo() != other.hasMemoryInfo()) return false;
    if (hasMemoryInfo()) {
      if (!getMemoryInfo()
          .equals(other.getMemoryInfo())) return false;
    }
    if (!unknownFields.equals(other.unknownFields)) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
    hash = (53 * hash) + getHostname().hashCode();
    hash = (37 * hash) + SERIAL_IDENTIFIER_FIELD_NUMBER;
    hash = (53 * hash) + getSerialIdentifier().hashCode();
    if (hasPlatformInfo()) {
      hash = (37 * hash) + PLATFORM_INFO_FIELD_NUMBER;
      hash = (53 * hash) + getPlatformInfo().hashCode();
    }
    if (hasCpuInfo()) {
      hash = (37 * hash) + CPU_INFO_FIELD_NUMBER;
      hash = (53 * hash) + getCpuInfo().hashCode();
    }
    if (getDeviceInfoCount() > 0) {
      hash = (37 * hash) + DEVICE_INFO_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceInfoList().hashCode();
    }
    if (getAvailableDeviceInfoCount() > 0) {
      hash = (37 * hash) + AVAILABLE_DEVICE_INFO_FIELD_NUMBER;
      hash = (53 * hash) + getAvailableDeviceInfoList().hashCode();
    }
    if (hasMemoryInfo()) {
      hash = (37 * hash) + MEMORY_INFO_FIELD_NUMBER;
      hash = (53 * hash) + getMemoryInfo().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static org.tensorflow.proto.util.testlog.MachineConfiguration parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static org.tensorflow.proto.util.testlog.MachineConfiguration parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static org.tensorflow.proto.util.testlog.MachineConfiguration parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static org.tensorflow.proto.util.testlog.MachineConfiguration parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static org.tensorflow.proto.util.testlog.MachineConfiguration parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static org.tensorflow.proto.util.testlog.MachineConfiguration parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static org.tensorflow.proto.util.testlog.MachineConfiguration parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static org.tensorflow.proto.util.testlog.MachineConfiguration 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 org.tensorflow.proto.util.testlog.MachineConfiguration parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input);
  }
  public static org.tensorflow.proto.util.testlog.MachineConfiguration 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 org.tensorflow.proto.util.testlog.MachineConfiguration parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static org.tensorflow.proto.util.testlog.MachineConfiguration 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(org.tensorflow.proto.util.testlog.MachineConfiguration 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 tensorflow.MachineConfiguration}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:tensorflow.MachineConfiguration)
      org.tensorflow.proto.util.testlog.MachineConfigurationOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.tensorflow.proto.util.testlog.TestLogProtos.internal_static_tensorflow_MachineConfiguration_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.tensorflow.proto.util.testlog.TestLogProtos.internal_static_tensorflow_MachineConfiguration_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.tensorflow.proto.util.testlog.MachineConfiguration.class, org.tensorflow.proto.util.testlog.MachineConfiguration.Builder.class);
    }

    // Construct using org.tensorflow.proto.util.testlog.MachineConfiguration.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

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

      serialIdentifier_ = "";

      if (platformInfoBuilder_ == null) {
        platformInfo_ = null;
      } else {
        platformInfo_ = null;
        platformInfoBuilder_ = null;
      }
      if (cpuInfoBuilder_ == null) {
        cpuInfo_ = null;
      } else {
        cpuInfo_ = null;
        cpuInfoBuilder_ = null;
      }
      if (deviceInfoBuilder_ == null) {
        deviceInfo_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
      } else {
        deviceInfoBuilder_.clear();
      }
      if (availableDeviceInfoBuilder_ == null) {
        availableDeviceInfo_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
      } else {
        availableDeviceInfoBuilder_.clear();
      }
      if (memoryInfoBuilder_ == null) {
        memoryInfo_ = null;
      } else {
        memoryInfo_ = null;
        memoryInfoBuilder_ = null;
      }
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return org.tensorflow.proto.util.testlog.TestLogProtos.internal_static_tensorflow_MachineConfiguration_descriptor;
    }

    @java.lang.Override
    public org.tensorflow.proto.util.testlog.MachineConfiguration getDefaultInstanceForType() {
      return org.tensorflow.proto.util.testlog.MachineConfiguration.getDefaultInstance();
    }

    @java.lang.Override
    public org.tensorflow.proto.util.testlog.MachineConfiguration build() {
      org.tensorflow.proto.util.testlog.MachineConfiguration result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public org.tensorflow.proto.util.testlog.MachineConfiguration buildPartial() {
      org.tensorflow.proto.util.testlog.MachineConfiguration result = new org.tensorflow.proto.util.testlog.MachineConfiguration(this);
      int from_bitField0_ = bitField0_;
      result.hostname_ = hostname_;
      result.serialIdentifier_ = serialIdentifier_;
      if (platformInfoBuilder_ == null) {
        result.platformInfo_ = platformInfo_;
      } else {
        result.platformInfo_ = platformInfoBuilder_.build();
      }
      if (cpuInfoBuilder_ == null) {
        result.cpuInfo_ = cpuInfo_;
      } else {
        result.cpuInfo_ = cpuInfoBuilder_.build();
      }
      if (deviceInfoBuilder_ == null) {
        if (((bitField0_ & 0x00000001) != 0)) {
          deviceInfo_ = java.util.Collections.unmodifiableList(deviceInfo_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.deviceInfo_ = deviceInfo_;
      } else {
        result.deviceInfo_ = deviceInfoBuilder_.build();
      }
      if (availableDeviceInfoBuilder_ == null) {
        if (((bitField0_ & 0x00000002) != 0)) {
          availableDeviceInfo_ = java.util.Collections.unmodifiableList(availableDeviceInfo_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.availableDeviceInfo_ = availableDeviceInfo_;
      } else {
        result.availableDeviceInfo_ = availableDeviceInfoBuilder_.build();
      }
      if (memoryInfoBuilder_ == null) {
        result.memoryInfo_ = memoryInfo_;
      } else {
        result.memoryInfo_ = memoryInfoBuilder_.build();
      }
      onBuilt();
      return result;
    }

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

    public Builder mergeFrom(org.tensorflow.proto.util.testlog.MachineConfiguration other) {
      if (other == org.tensorflow.proto.util.testlog.MachineConfiguration.getDefaultInstance()) return this;
      if (!other.getHostname().isEmpty()) {
        hostname_ = other.hostname_;
        onChanged();
      }
      if (!other.getSerialIdentifier().isEmpty()) {
        serialIdentifier_ = other.serialIdentifier_;
        onChanged();
      }
      if (other.hasPlatformInfo()) {
        mergePlatformInfo(other.getPlatformInfo());
      }
      if (other.hasCpuInfo()) {
        mergeCpuInfo(other.getCpuInfo());
      }
      if (deviceInfoBuilder_ == null) {
        if (!other.deviceInfo_.isEmpty()) {
          if (deviceInfo_.isEmpty()) {
            deviceInfo_ = other.deviceInfo_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureDeviceInfoIsMutable();
            deviceInfo_.addAll(other.deviceInfo_);
          }
          onChanged();
        }
      } else {
        if (!other.deviceInfo_.isEmpty()) {
          if (deviceInfoBuilder_.isEmpty()) {
            deviceInfoBuilder_.dispose();
            deviceInfoBuilder_ = null;
            deviceInfo_ = other.deviceInfo_;
            bitField0_ = (bitField0_ & ~0x00000001);
            deviceInfoBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getDeviceInfoFieldBuilder() : null;
          } else {
            deviceInfoBuilder_.addAllMessages(other.deviceInfo_);
          }
        }
      }
      if (availableDeviceInfoBuilder_ == null) {
        if (!other.availableDeviceInfo_.isEmpty()) {
          if (availableDeviceInfo_.isEmpty()) {
            availableDeviceInfo_ = other.availableDeviceInfo_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureAvailableDeviceInfoIsMutable();
            availableDeviceInfo_.addAll(other.availableDeviceInfo_);
          }
          onChanged();
        }
      } else {
        if (!other.availableDeviceInfo_.isEmpty()) {
          if (availableDeviceInfoBuilder_.isEmpty()) {
            availableDeviceInfoBuilder_.dispose();
            availableDeviceInfoBuilder_ = null;
            availableDeviceInfo_ = other.availableDeviceInfo_;
            bitField0_ = (bitField0_ & ~0x00000002);
            availableDeviceInfoBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getAvailableDeviceInfoFieldBuilder() : null;
          } else {
            availableDeviceInfoBuilder_.addAllMessages(other.availableDeviceInfo_);
          }
        }
      }
      if (other.hasMemoryInfo()) {
        mergeMemoryInfo(other.getMemoryInfo());
      }
      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 {
      org.tensorflow.proto.util.testlog.MachineConfiguration parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage = (org.tensorflow.proto.util.testlog.MachineConfiguration) e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }
    private int bitField0_;

    private java.lang.Object hostname_ = "";
    /**
     * <pre>
     * Host name of machine that ran the benchmark.
     * </pre>
     *
     * <code>string hostname = 1;</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>
     * Host name of machine that ran the benchmark.
     * </pre>
     *
     * <code>string hostname = 1;</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>
     * Host name of machine that ran the benchmark.
     * </pre>
     *
     * <code>string hostname = 1;</code>
     */
    public Builder setHostname(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      hostname_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Host name of machine that ran the benchmark.
     * </pre>
     *
     * <code>string hostname = 1;</code>
     */
    public Builder clearHostname() {
      
      hostname_ = getDefaultInstance().getHostname();
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Host name of machine that ran the benchmark.
     * </pre>
     *
     * <code>string hostname = 1;</code>
     */
    public Builder setHostnameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      hostname_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object serialIdentifier_ = "";
    /**
     * <pre>
     * Unique serial number of the machine.
     * </pre>
     *
     * <code>string serial_identifier = 7;</code>
     */
    public java.lang.String getSerialIdentifier() {
      java.lang.Object ref = serialIdentifier_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        serialIdentifier_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * Unique serial number of the machine.
     * </pre>
     *
     * <code>string serial_identifier = 7;</code>
     */
    public com.google.protobuf.ByteString
        getSerialIdentifierBytes() {
      java.lang.Object ref = serialIdentifier_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        serialIdentifier_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * Unique serial number of the machine.
     * </pre>
     *
     * <code>string serial_identifier = 7;</code>
     */
    public Builder setSerialIdentifier(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      serialIdentifier_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Unique serial number of the machine.
     * </pre>
     *
     * <code>string serial_identifier = 7;</code>
     */
    public Builder clearSerialIdentifier() {
      
      serialIdentifier_ = getDefaultInstance().getSerialIdentifier();
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Unique serial number of the machine.
     * </pre>
     *
     * <code>string serial_identifier = 7;</code>
     */
    public Builder setSerialIdentifierBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      serialIdentifier_ = value;
      onChanged();
      return this;
    }

    private org.tensorflow.proto.util.testlog.PlatformInfo platformInfo_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.tensorflow.proto.util.testlog.PlatformInfo, org.tensorflow.proto.util.testlog.PlatformInfo.Builder, org.tensorflow.proto.util.testlog.PlatformInfoOrBuilder> platformInfoBuilder_;
    /**
     * <pre>
     * Additional platform information.
     * </pre>
     *
     * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
     */
    public boolean hasPlatformInfo() {
      return platformInfoBuilder_ != null || platformInfo_ != null;
    }
    /**
     * <pre>
     * Additional platform information.
     * </pre>
     *
     * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
     */
    public org.tensorflow.proto.util.testlog.PlatformInfo getPlatformInfo() {
      if (platformInfoBuilder_ == null) {
        return platformInfo_ == null ? org.tensorflow.proto.util.testlog.PlatformInfo.getDefaultInstance() : platformInfo_;
      } else {
        return platformInfoBuilder_.getMessage();
      }
    }
    /**
     * <pre>
     * Additional platform information.
     * </pre>
     *
     * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
     */
    public Builder setPlatformInfo(org.tensorflow.proto.util.testlog.PlatformInfo value) {
      if (platformInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        platformInfo_ = value;
        onChanged();
      } else {
        platformInfoBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <pre>
     * Additional platform information.
     * </pre>
     *
     * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
     */
    public Builder setPlatformInfo(
        org.tensorflow.proto.util.testlog.PlatformInfo.Builder builderForValue) {
      if (platformInfoBuilder_ == null) {
        platformInfo_ = builderForValue.build();
        onChanged();
      } else {
        platformInfoBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <pre>
     * Additional platform information.
     * </pre>
     *
     * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
     */
    public Builder mergePlatformInfo(org.tensorflow.proto.util.testlog.PlatformInfo value) {
      if (platformInfoBuilder_ == null) {
        if (platformInfo_ != null) {
          platformInfo_ =
            org.tensorflow.proto.util.testlog.PlatformInfo.newBuilder(platformInfo_).mergeFrom(value).buildPartial();
        } else {
          platformInfo_ = value;
        }
        onChanged();
      } else {
        platformInfoBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <pre>
     * Additional platform information.
     * </pre>
     *
     * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
     */
    public Builder clearPlatformInfo() {
      if (platformInfoBuilder_ == null) {
        platformInfo_ = null;
        onChanged();
      } else {
        platformInfo_ = null;
        platformInfoBuilder_ = null;
      }

      return this;
    }
    /**
     * <pre>
     * Additional platform information.
     * </pre>
     *
     * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
     */
    public org.tensorflow.proto.util.testlog.PlatformInfo.Builder getPlatformInfoBuilder() {
      
      onChanged();
      return getPlatformInfoFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Additional platform information.
     * </pre>
     *
     * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
     */
    public org.tensorflow.proto.util.testlog.PlatformInfoOrBuilder getPlatformInfoOrBuilder() {
      if (platformInfoBuilder_ != null) {
        return platformInfoBuilder_.getMessageOrBuilder();
      } else {
        return platformInfo_ == null ?
            org.tensorflow.proto.util.testlog.PlatformInfo.getDefaultInstance() : platformInfo_;
      }
    }
    /**
     * <pre>
     * Additional platform information.
     * </pre>
     *
     * <code>.tensorflow.PlatformInfo platform_info = 2;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.tensorflow.proto.util.testlog.PlatformInfo, org.tensorflow.proto.util.testlog.PlatformInfo.Builder, org.tensorflow.proto.util.testlog.PlatformInfoOrBuilder> 
        getPlatformInfoFieldBuilder() {
      if (platformInfoBuilder_ == null) {
        platformInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.tensorflow.proto.util.testlog.PlatformInfo, org.tensorflow.proto.util.testlog.PlatformInfo.Builder, org.tensorflow.proto.util.testlog.PlatformInfoOrBuilder>(
                getPlatformInfo(),
                getParentForChildren(),
                isClean());
        platformInfo_ = null;
      }
      return platformInfoBuilder_;
    }

    private org.tensorflow.proto.util.testlog.CPUInfo cpuInfo_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.tensorflow.proto.util.testlog.CPUInfo, org.tensorflow.proto.util.testlog.CPUInfo.Builder, org.tensorflow.proto.util.testlog.CPUInfoOrBuilder> cpuInfoBuilder_;
    /**
     * <pre>
     * CPU Information.
     * </pre>
     *
     * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
     */
    public boolean hasCpuInfo() {
      return cpuInfoBuilder_ != null || cpuInfo_ != null;
    }
    /**
     * <pre>
     * CPU Information.
     * </pre>
     *
     * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
     */
    public org.tensorflow.proto.util.testlog.CPUInfo getCpuInfo() {
      if (cpuInfoBuilder_ == null) {
        return cpuInfo_ == null ? org.tensorflow.proto.util.testlog.CPUInfo.getDefaultInstance() : cpuInfo_;
      } else {
        return cpuInfoBuilder_.getMessage();
      }
    }
    /**
     * <pre>
     * CPU Information.
     * </pre>
     *
     * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
     */
    public Builder setCpuInfo(org.tensorflow.proto.util.testlog.CPUInfo value) {
      if (cpuInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        cpuInfo_ = value;
        onChanged();
      } else {
        cpuInfoBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <pre>
     * CPU Information.
     * </pre>
     *
     * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
     */
    public Builder setCpuInfo(
        org.tensorflow.proto.util.testlog.CPUInfo.Builder builderForValue) {
      if (cpuInfoBuilder_ == null) {
        cpuInfo_ = builderForValue.build();
        onChanged();
      } else {
        cpuInfoBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <pre>
     * CPU Information.
     * </pre>
     *
     * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
     */
    public Builder mergeCpuInfo(org.tensorflow.proto.util.testlog.CPUInfo value) {
      if (cpuInfoBuilder_ == null) {
        if (cpuInfo_ != null) {
          cpuInfo_ =
            org.tensorflow.proto.util.testlog.CPUInfo.newBuilder(cpuInfo_).mergeFrom(value).buildPartial();
        } else {
          cpuInfo_ = value;
        }
        onChanged();
      } else {
        cpuInfoBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <pre>
     * CPU Information.
     * </pre>
     *
     * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
     */
    public Builder clearCpuInfo() {
      if (cpuInfoBuilder_ == null) {
        cpuInfo_ = null;
        onChanged();
      } else {
        cpuInfo_ = null;
        cpuInfoBuilder_ = null;
      }

      return this;
    }
    /**
     * <pre>
     * CPU Information.
     * </pre>
     *
     * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
     */
    public org.tensorflow.proto.util.testlog.CPUInfo.Builder getCpuInfoBuilder() {
      
      onChanged();
      return getCpuInfoFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * CPU Information.
     * </pre>
     *
     * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
     */
    public org.tensorflow.proto.util.testlog.CPUInfoOrBuilder getCpuInfoOrBuilder() {
      if (cpuInfoBuilder_ != null) {
        return cpuInfoBuilder_.getMessageOrBuilder();
      } else {
        return cpuInfo_ == null ?
            org.tensorflow.proto.util.testlog.CPUInfo.getDefaultInstance() : cpuInfo_;
      }
    }
    /**
     * <pre>
     * CPU Information.
     * </pre>
     *
     * <code>.tensorflow.CPUInfo cpu_info = 3;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.tensorflow.proto.util.testlog.CPUInfo, org.tensorflow.proto.util.testlog.CPUInfo.Builder, org.tensorflow.proto.util.testlog.CPUInfoOrBuilder> 
        getCpuInfoFieldBuilder() {
      if (cpuInfoBuilder_ == null) {
        cpuInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.tensorflow.proto.util.testlog.CPUInfo, org.tensorflow.proto.util.testlog.CPUInfo.Builder, org.tensorflow.proto.util.testlog.CPUInfoOrBuilder>(
                getCpuInfo(),
                getParentForChildren(),
                isClean());
        cpuInfo_ = null;
      }
      return cpuInfoBuilder_;
    }

    private java.util.List<com.google.protobuf.Any> deviceInfo_ =
      java.util.Collections.emptyList();
    private void ensureDeviceInfoIsMutable() {
      if (!((bitField0_ & 0x00000001) != 0)) {
        deviceInfo_ = new java.util.ArrayList<com.google.protobuf.Any>(deviceInfo_);
        bitField0_ |= 0x00000001;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> deviceInfoBuilder_;

    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public java.util.List<com.google.protobuf.Any> getDeviceInfoList() {
      if (deviceInfoBuilder_ == null) {
        return java.util.Collections.unmodifiableList(deviceInfo_);
      } else {
        return deviceInfoBuilder_.getMessageList();
      }
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public int getDeviceInfoCount() {
      if (deviceInfoBuilder_ == null) {
        return deviceInfo_.size();
      } else {
        return deviceInfoBuilder_.getCount();
      }
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public com.google.protobuf.Any getDeviceInfo(int index) {
      if (deviceInfoBuilder_ == null) {
        return deviceInfo_.get(index);
      } else {
        return deviceInfoBuilder_.getMessage(index);
      }
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public Builder setDeviceInfo(
        int index, com.google.protobuf.Any value) {
      if (deviceInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureDeviceInfoIsMutable();
        deviceInfo_.set(index, value);
        onChanged();
      } else {
        deviceInfoBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public Builder setDeviceInfo(
        int index, com.google.protobuf.Any.Builder builderForValue) {
      if (deviceInfoBuilder_ == null) {
        ensureDeviceInfoIsMutable();
        deviceInfo_.set(index, builderForValue.build());
        onChanged();
      } else {
        deviceInfoBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public Builder addDeviceInfo(com.google.protobuf.Any value) {
      if (deviceInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureDeviceInfoIsMutable();
        deviceInfo_.add(value);
        onChanged();
      } else {
        deviceInfoBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public Builder addDeviceInfo(
        int index, com.google.protobuf.Any value) {
      if (deviceInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureDeviceInfoIsMutable();
        deviceInfo_.add(index, value);
        onChanged();
      } else {
        deviceInfoBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public Builder addDeviceInfo(
        com.google.protobuf.Any.Builder builderForValue) {
      if (deviceInfoBuilder_ == null) {
        ensureDeviceInfoIsMutable();
        deviceInfo_.add(builderForValue.build());
        onChanged();
      } else {
        deviceInfoBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public Builder addDeviceInfo(
        int index, com.google.protobuf.Any.Builder builderForValue) {
      if (deviceInfoBuilder_ == null) {
        ensureDeviceInfoIsMutable();
        deviceInfo_.add(index, builderForValue.build());
        onChanged();
      } else {
        deviceInfoBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public Builder addAllDeviceInfo(
        java.lang.Iterable<? extends com.google.protobuf.Any> values) {
      if (deviceInfoBuilder_ == null) {
        ensureDeviceInfoIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, deviceInfo_);
        onChanged();
      } else {
        deviceInfoBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public Builder clearDeviceInfo() {
      if (deviceInfoBuilder_ == null) {
        deviceInfo_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
      } else {
        deviceInfoBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public Builder removeDeviceInfo(int index) {
      if (deviceInfoBuilder_ == null) {
        ensureDeviceInfoIsMutable();
        deviceInfo_.remove(index);
        onChanged();
      } else {
        deviceInfoBuilder_.remove(index);
      }
      return this;
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public com.google.protobuf.Any.Builder getDeviceInfoBuilder(
        int index) {
      return getDeviceInfoFieldBuilder().getBuilder(index);
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public com.google.protobuf.AnyOrBuilder getDeviceInfoOrBuilder(
        int index) {
      if (deviceInfoBuilder_ == null) {
        return deviceInfo_.get(index);  } else {
        return deviceInfoBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public java.util.List<? extends com.google.protobuf.AnyOrBuilder> 
         getDeviceInfoOrBuilderList() {
      if (deviceInfoBuilder_ != null) {
        return deviceInfoBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(deviceInfo_);
      }
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public com.google.protobuf.Any.Builder addDeviceInfoBuilder() {
      return getDeviceInfoFieldBuilder().addBuilder(
          com.google.protobuf.Any.getDefaultInstance());
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public com.google.protobuf.Any.Builder addDeviceInfoBuilder(
        int index) {
      return getDeviceInfoFieldBuilder().addBuilder(
          index, com.google.protobuf.Any.getDefaultInstance());
    }
    /**
     * <pre>
     * Other devices that are attached and relevant (e.g. GPUInfo).
     * </pre>
     *
     * <code>repeated .google.protobuf.Any device_info = 4;</code>
     */
    public java.util.List<com.google.protobuf.Any.Builder> 
         getDeviceInfoBuilderList() {
      return getDeviceInfoFieldBuilder().getBuilderList();
    }
    private com.google.protobuf.RepeatedFieldBuilderV3<
        com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> 
        getDeviceInfoFieldBuilder() {
      if (deviceInfoBuilder_ == null) {
        deviceInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder>(
                deviceInfo_,
                ((bitField0_ & 0x00000001) != 0),
                getParentForChildren(),
                isClean());
        deviceInfo_ = null;
      }
      return deviceInfoBuilder_;
    }

    private java.util.List<org.tensorflow.proto.util.testlog.AvailableDeviceInfo> availableDeviceInfo_ =
      java.util.Collections.emptyList();
    private void ensureAvailableDeviceInfoIsMutable() {
      if (!((bitField0_ & 0x00000002) != 0)) {
        availableDeviceInfo_ = new java.util.ArrayList<org.tensorflow.proto.util.testlog.AvailableDeviceInfo>(availableDeviceInfo_);
        bitField0_ |= 0x00000002;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        org.tensorflow.proto.util.testlog.AvailableDeviceInfo, org.tensorflow.proto.util.testlog.AvailableDeviceInfo.Builder, org.tensorflow.proto.util.testlog.AvailableDeviceInfoOrBuilder> availableDeviceInfoBuilder_;

    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public java.util.List<org.tensorflow.proto.util.testlog.AvailableDeviceInfo> getAvailableDeviceInfoList() {
      if (availableDeviceInfoBuilder_ == null) {
        return java.util.Collections.unmodifiableList(availableDeviceInfo_);
      } else {
        return availableDeviceInfoBuilder_.getMessageList();
      }
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public int getAvailableDeviceInfoCount() {
      if (availableDeviceInfoBuilder_ == null) {
        return availableDeviceInfo_.size();
      } else {
        return availableDeviceInfoBuilder_.getCount();
      }
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public org.tensorflow.proto.util.testlog.AvailableDeviceInfo getAvailableDeviceInfo(int index) {
      if (availableDeviceInfoBuilder_ == null) {
        return availableDeviceInfo_.get(index);
      } else {
        return availableDeviceInfoBuilder_.getMessage(index);
      }
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public Builder setAvailableDeviceInfo(
        int index, org.tensorflow.proto.util.testlog.AvailableDeviceInfo value) {
      if (availableDeviceInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAvailableDeviceInfoIsMutable();
        availableDeviceInfo_.set(index, value);
        onChanged();
      } else {
        availableDeviceInfoBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public Builder setAvailableDeviceInfo(
        int index, org.tensorflow.proto.util.testlog.AvailableDeviceInfo.Builder builderForValue) {
      if (availableDeviceInfoBuilder_ == null) {
        ensureAvailableDeviceInfoIsMutable();
        availableDeviceInfo_.set(index, builderForValue.build());
        onChanged();
      } else {
        availableDeviceInfoBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public Builder addAvailableDeviceInfo(org.tensorflow.proto.util.testlog.AvailableDeviceInfo value) {
      if (availableDeviceInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAvailableDeviceInfoIsMutable();
        availableDeviceInfo_.add(value);
        onChanged();
      } else {
        availableDeviceInfoBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public Builder addAvailableDeviceInfo(
        int index, org.tensorflow.proto.util.testlog.AvailableDeviceInfo value) {
      if (availableDeviceInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAvailableDeviceInfoIsMutable();
        availableDeviceInfo_.add(index, value);
        onChanged();
      } else {
        availableDeviceInfoBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public Builder addAvailableDeviceInfo(
        org.tensorflow.proto.util.testlog.AvailableDeviceInfo.Builder builderForValue) {
      if (availableDeviceInfoBuilder_ == null) {
        ensureAvailableDeviceInfoIsMutable();
        availableDeviceInfo_.add(builderForValue.build());
        onChanged();
      } else {
        availableDeviceInfoBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public Builder addAvailableDeviceInfo(
        int index, org.tensorflow.proto.util.testlog.AvailableDeviceInfo.Builder builderForValue) {
      if (availableDeviceInfoBuilder_ == null) {
        ensureAvailableDeviceInfoIsMutable();
        availableDeviceInfo_.add(index, builderForValue.build());
        onChanged();
      } else {
        availableDeviceInfoBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public Builder addAllAvailableDeviceInfo(
        java.lang.Iterable<? extends org.tensorflow.proto.util.testlog.AvailableDeviceInfo> values) {
      if (availableDeviceInfoBuilder_ == null) {
        ensureAvailableDeviceInfoIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, availableDeviceInfo_);
        onChanged();
      } else {
        availableDeviceInfoBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public Builder clearAvailableDeviceInfo() {
      if (availableDeviceInfoBuilder_ == null) {
        availableDeviceInfo_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
      } else {
        availableDeviceInfoBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public Builder removeAvailableDeviceInfo(int index) {
      if (availableDeviceInfoBuilder_ == null) {
        ensureAvailableDeviceInfoIsMutable();
        availableDeviceInfo_.remove(index);
        onChanged();
      } else {
        availableDeviceInfoBuilder_.remove(index);
      }
      return this;
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public org.tensorflow.proto.util.testlog.AvailableDeviceInfo.Builder getAvailableDeviceInfoBuilder(
        int index) {
      return getAvailableDeviceInfoFieldBuilder().getBuilder(index);
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public org.tensorflow.proto.util.testlog.AvailableDeviceInfoOrBuilder getAvailableDeviceInfoOrBuilder(
        int index) {
      if (availableDeviceInfoBuilder_ == null) {
        return availableDeviceInfo_.get(index);  } else {
        return availableDeviceInfoBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public java.util.List<? extends org.tensorflow.proto.util.testlog.AvailableDeviceInfoOrBuilder> 
         getAvailableDeviceInfoOrBuilderList() {
      if (availableDeviceInfoBuilder_ != null) {
        return availableDeviceInfoBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(availableDeviceInfo_);
      }
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public org.tensorflow.proto.util.testlog.AvailableDeviceInfo.Builder addAvailableDeviceInfoBuilder() {
      return getAvailableDeviceInfoFieldBuilder().addBuilder(
          org.tensorflow.proto.util.testlog.AvailableDeviceInfo.getDefaultInstance());
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public org.tensorflow.proto.util.testlog.AvailableDeviceInfo.Builder addAvailableDeviceInfoBuilder(
        int index) {
      return getAvailableDeviceInfoFieldBuilder().addBuilder(
          index, org.tensorflow.proto.util.testlog.AvailableDeviceInfo.getDefaultInstance());
    }
    /**
     * <pre>
     * Devices accessible to the test (e.g. as given by list_local_devices).
     * </pre>
     *
     * <code>repeated .tensorflow.AvailableDeviceInfo available_device_info = 5;</code>
     */
    public java.util.List<org.tensorflow.proto.util.testlog.AvailableDeviceInfo.Builder> 
         getAvailableDeviceInfoBuilderList() {
      return getAvailableDeviceInfoFieldBuilder().getBuilderList();
    }
    private com.google.protobuf.RepeatedFieldBuilderV3<
        org.tensorflow.proto.util.testlog.AvailableDeviceInfo, org.tensorflow.proto.util.testlog.AvailableDeviceInfo.Builder, org.tensorflow.proto.util.testlog.AvailableDeviceInfoOrBuilder> 
        getAvailableDeviceInfoFieldBuilder() {
      if (availableDeviceInfoBuilder_ == null) {
        availableDeviceInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            org.tensorflow.proto.util.testlog.AvailableDeviceInfo, org.tensorflow.proto.util.testlog.AvailableDeviceInfo.Builder, org.tensorflow.proto.util.testlog.AvailableDeviceInfoOrBuilder>(
                availableDeviceInfo_,
                ((bitField0_ & 0x00000002) != 0),
                getParentForChildren(),
                isClean());
        availableDeviceInfo_ = null;
      }
      return availableDeviceInfoBuilder_;
    }

    private org.tensorflow.proto.util.testlog.MemoryInfo memoryInfo_;
    private com.google.protobuf.SingleFieldBuilderV3<
        org.tensorflow.proto.util.testlog.MemoryInfo, org.tensorflow.proto.util.testlog.MemoryInfo.Builder, org.tensorflow.proto.util.testlog.MemoryInfoOrBuilder> memoryInfoBuilder_;
    /**
     * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
     */
    public boolean hasMemoryInfo() {
      return memoryInfoBuilder_ != null || memoryInfo_ != null;
    }
    /**
     * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
     */
    public org.tensorflow.proto.util.testlog.MemoryInfo getMemoryInfo() {
      if (memoryInfoBuilder_ == null) {
        return memoryInfo_ == null ? org.tensorflow.proto.util.testlog.MemoryInfo.getDefaultInstance() : memoryInfo_;
      } else {
        return memoryInfoBuilder_.getMessage();
      }
    }
    /**
     * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
     */
    public Builder setMemoryInfo(org.tensorflow.proto.util.testlog.MemoryInfo value) {
      if (memoryInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        memoryInfo_ = value;
        onChanged();
      } else {
        memoryInfoBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
     */
    public Builder setMemoryInfo(
        org.tensorflow.proto.util.testlog.MemoryInfo.Builder builderForValue) {
      if (memoryInfoBuilder_ == null) {
        memoryInfo_ = builderForValue.build();
        onChanged();
      } else {
        memoryInfoBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
     */
    public Builder mergeMemoryInfo(org.tensorflow.proto.util.testlog.MemoryInfo value) {
      if (memoryInfoBuilder_ == null) {
        if (memoryInfo_ != null) {
          memoryInfo_ =
            org.tensorflow.proto.util.testlog.MemoryInfo.newBuilder(memoryInfo_).mergeFrom(value).buildPartial();
        } else {
          memoryInfo_ = value;
        }
        onChanged();
      } else {
        memoryInfoBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
     */
    public Builder clearMemoryInfo() {
      if (memoryInfoBuilder_ == null) {
        memoryInfo_ = null;
        onChanged();
      } else {
        memoryInfo_ = null;
        memoryInfoBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
     */
    public org.tensorflow.proto.util.testlog.MemoryInfo.Builder getMemoryInfoBuilder() {
      
      onChanged();
      return getMemoryInfoFieldBuilder().getBuilder();
    }
    /**
     * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
     */
    public org.tensorflow.proto.util.testlog.MemoryInfoOrBuilder getMemoryInfoOrBuilder() {
      if (memoryInfoBuilder_ != null) {
        return memoryInfoBuilder_.getMessageOrBuilder();
      } else {
        return memoryInfo_ == null ?
            org.tensorflow.proto.util.testlog.MemoryInfo.getDefaultInstance() : memoryInfo_;
      }
    }
    /**
     * <code>.tensorflow.MemoryInfo memory_info = 6;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        org.tensorflow.proto.util.testlog.MemoryInfo, org.tensorflow.proto.util.testlog.MemoryInfo.Builder, org.tensorflow.proto.util.testlog.MemoryInfoOrBuilder> 
        getMemoryInfoFieldBuilder() {
      if (memoryInfoBuilder_ == null) {
        memoryInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            org.tensorflow.proto.util.testlog.MemoryInfo, org.tensorflow.proto.util.testlog.MemoryInfo.Builder, org.tensorflow.proto.util.testlog.MemoryInfoOrBuilder>(
                getMemoryInfo(),
                getParentForChildren(),
                isClean());
        memoryInfo_ = null;
      }
      return memoryInfoBuilder_;
    }
    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

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


    // @@protoc_insertion_point(builder_scope:tensorflow.MachineConfiguration)
  }

  // @@protoc_insertion_point(class_scope:tensorflow.MachineConfiguration)
  private static final org.tensorflow.proto.util.testlog.MachineConfiguration DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new org.tensorflow.proto.util.testlog.MachineConfiguration();
  }

  public static org.tensorflow.proto.util.testlog.MachineConfiguration getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

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

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

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

  @java.lang.Override
  public org.tensorflow.proto.util.testlog.MachineConfiguration getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}

