All Downloads are FREE. Search and download functionalities are using the official Maven repository.

java.io.deephaven.proto.backplane.script.grpc.FigureDescriptor Maven / Gradle / Ivy

There is a newer version: 0.37.1
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: deephaven/proto/console.proto

// Protobuf Java Version: 3.25.3
package io.deephaven.proto.backplane.script.grpc;

/**
 * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor}
 */
public final class FigureDescriptor extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor)
    FigureDescriptorOrBuilder {
private static final long serialVersionUID = 0L;
  // Use FigureDescriptor.newBuilder() to construct.
  private FigureDescriptor(com.google.protobuf.GeneratedMessageV3.Builder builder) {
    super(builder);
  }
  private FigureDescriptor() {
    title_ = "";
    titleFont_ = "";
    titleColor_ = "";
    charts_ = java.util.Collections.emptyList();
    errors_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
  }

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

  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.Builder.class);
  }

  /**
   * Protobuf enum {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle}
   */
  public enum SeriesPlotStyle
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * BAR = 0;
     */
    BAR(0),
    /**
     * STACKED_BAR = 1;
     */
    STACKED_BAR(1),
    /**
     * LINE = 2;
     */
    LINE(2),
    /**
     * AREA = 3;
     */
    AREA(3),
    /**
     * STACKED_AREA = 4;
     */
    STACKED_AREA(4),
    /**
     * PIE = 5;
     */
    PIE(5),
    /**
     * HISTOGRAM = 6;
     */
    HISTOGRAM(6),
    /**
     * OHLC = 7;
     */
    OHLC(7),
    /**
     * SCATTER = 8;
     */
    SCATTER(8),
    /**
     * STEP = 9;
     */
    STEP(9),
    /**
     * ERROR_BAR = 10;
     */
    ERROR_BAR(10),
    /**
     * TREEMAP = 11;
     */
    TREEMAP(11),
    UNRECOGNIZED(-1),
    ;

    /**
     * BAR = 0;
     */
    public static final int BAR_VALUE = 0;
    /**
     * STACKED_BAR = 1;
     */
    public static final int STACKED_BAR_VALUE = 1;
    /**
     * LINE = 2;
     */
    public static final int LINE_VALUE = 2;
    /**
     * AREA = 3;
     */
    public static final int AREA_VALUE = 3;
    /**
     * STACKED_AREA = 4;
     */
    public static final int STACKED_AREA_VALUE = 4;
    /**
     * PIE = 5;
     */
    public static final int PIE_VALUE = 5;
    /**
     * HISTOGRAM = 6;
     */
    public static final int HISTOGRAM_VALUE = 6;
    /**
     * OHLC = 7;
     */
    public static final int OHLC_VALUE = 7;
    /**
     * SCATTER = 8;
     */
    public static final int SCATTER_VALUE = 8;
    /**
     * STEP = 9;
     */
    public static final int STEP_VALUE = 9;
    /**
     * ERROR_BAR = 10;
     */
    public static final int ERROR_BAR_VALUE = 10;
    /**
     * TREEMAP = 11;
     */
    public static final int TREEMAP_VALUE = 11;


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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SeriesPlotStyle valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SeriesPlotStyle forNumber(int value) {
      switch (value) {
        case 0: return BAR;
        case 1: return STACKED_BAR;
        case 2: return LINE;
        case 3: return AREA;
        case 4: return STACKED_AREA;
        case 5: return PIE;
        case 6: return HISTOGRAM;
        case 7: return OHLC;
        case 8: return SCATTER;
        case 9: return STEP;
        case 10: return ERROR_BAR;
        case 11: return TREEMAP;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.getDescriptor().getEnumTypes().get(0);
    }

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

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

    // @@protoc_insertion_point(enum_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle)
  }

  /**
   * Protobuf enum {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType}
   */
  public enum SourceType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * X = 0;
     */
    X(0),
    /**
     * Y = 1;
     */
    Y(1),
    /**
     * Z = 2;
     */
    Z(2),
    /**
     * X_LOW = 3;
     */
    X_LOW(3),
    /**
     * X_HIGH = 4;
     */
    X_HIGH(4),
    /**
     * Y_LOW = 5;
     */
    Y_LOW(5),
    /**
     * Y_HIGH = 6;
     */
    Y_HIGH(6),
    /**
     * TIME = 7;
     */
    TIME(7),
    /**
     * OPEN = 8;
     */
    OPEN(8),
    /**
     * HIGH = 9;
     */
    HIGH(9),
    /**
     * LOW = 10;
     */
    LOW(10),
    /**
     * CLOSE = 11;
     */
    CLOSE(11),
    /**
     * SHAPE = 12;
     */
    SHAPE(12),
    /**
     * SIZE = 13;
     */
    SIZE(13),
    /**
     * LABEL = 14;
     */
    LABEL(14),
    /**
     * COLOR = 15;
     */
    COLOR(15),
    /**
     * PARENT = 16;
     */
    PARENT(16),
    /**
     * HOVER_TEXT = 17;
     */
    HOVER_TEXT(17),
    /**
     * TEXT = 18;
     */
    TEXT(18),
    UNRECOGNIZED(-1),
    ;

    /**
     * X = 0;
     */
    public static final int X_VALUE = 0;
    /**
     * Y = 1;
     */
    public static final int Y_VALUE = 1;
    /**
     * Z = 2;
     */
    public static final int Z_VALUE = 2;
    /**
     * X_LOW = 3;
     */
    public static final int X_LOW_VALUE = 3;
    /**
     * X_HIGH = 4;
     */
    public static final int X_HIGH_VALUE = 4;
    /**
     * Y_LOW = 5;
     */
    public static final int Y_LOW_VALUE = 5;
    /**
     * Y_HIGH = 6;
     */
    public static final int Y_HIGH_VALUE = 6;
    /**
     * TIME = 7;
     */
    public static final int TIME_VALUE = 7;
    /**
     * OPEN = 8;
     */
    public static final int OPEN_VALUE = 8;
    /**
     * HIGH = 9;
     */
    public static final int HIGH_VALUE = 9;
    /**
     * LOW = 10;
     */
    public static final int LOW_VALUE = 10;
    /**
     * CLOSE = 11;
     */
    public static final int CLOSE_VALUE = 11;
    /**
     * SHAPE = 12;
     */
    public static final int SHAPE_VALUE = 12;
    /**
     * SIZE = 13;
     */
    public static final int SIZE_VALUE = 13;
    /**
     * LABEL = 14;
     */
    public static final int LABEL_VALUE = 14;
    /**
     * COLOR = 15;
     */
    public static final int COLOR_VALUE = 15;
    /**
     * PARENT = 16;
     */
    public static final int PARENT_VALUE = 16;
    /**
     * HOVER_TEXT = 17;
     */
    public static final int HOVER_TEXT_VALUE = 17;
    /**
     * TEXT = 18;
     */
    public static final int TEXT_VALUE = 18;


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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SourceType valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SourceType forNumber(int value) {
      switch (value) {
        case 0: return X;
        case 1: return Y;
        case 2: return Z;
        case 3: return X_LOW;
        case 4: return X_HIGH;
        case 5: return Y_LOW;
        case 6: return Y_HIGH;
        case 7: return TIME;
        case 8: return OPEN;
        case 9: return HIGH;
        case 10: return LOW;
        case 11: return CLOSE;
        case 12: return SHAPE;
        case 13: return SIZE;
        case 14: return LABEL;
        case 15: return COLOR;
        case 16: return PARENT;
        case 17: return HOVER_TEXT;
        case 18: return TEXT;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.getDescriptor().getEnumTypes().get(1);
    }

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

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

    // @@protoc_insertion_point(enum_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType)
  }

  public interface ChartDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int32 colspan = 1;
     * @return The colspan.
     */
    int getColspan();

    /**
     * int32 rowspan = 2;
     * @return The rowspan.
     */
    int getRowspan();

    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
     */
    java.util.List 
        getSeriesList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor getSeries(int index);
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
     */
    int getSeriesCount();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
     */
    java.util.List 
        getSeriesOrBuilderList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptorOrBuilder getSeriesOrBuilder(
        int index);

    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
     */
    java.util.List 
        getMultiSeriesList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor getMultiSeries(int index);
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
     */
    int getMultiSeriesCount();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
     */
    java.util.List 
        getMultiSeriesOrBuilderList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptorOrBuilder getMultiSeriesOrBuilder(
        int index);

    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
     */
    java.util.List 
        getAxesList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor getAxes(int index);
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
     */
    int getAxesCount();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
     */
    java.util.List 
        getAxesOrBuilderList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptorOrBuilder getAxesOrBuilder(
        int index);

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType chart_type = 6;
     * @return The enum numeric value on the wire for chartType.
     */
    int getChartTypeValue();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType chart_type = 6;
     * @return The chartType.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType getChartType();

    /**
     * optional string title = 7;
     * @return Whether the title field is set.
     */
    boolean hasTitle();
    /**
     * optional string title = 7;
     * @return The title.
     */
    java.lang.String getTitle();
    /**
     * optional string title = 7;
     * @return The bytes for title.
     */
    com.google.protobuf.ByteString
        getTitleBytes();

    /**
     * string title_font = 8;
     * @return The titleFont.
     */
    java.lang.String getTitleFont();
    /**
     * string title_font = 8;
     * @return The bytes for titleFont.
     */
    com.google.protobuf.ByteString
        getTitleFontBytes();

    /**
     * string title_color = 9;
     * @return The titleColor.
     */
    java.lang.String getTitleColor();
    /**
     * string title_color = 9;
     * @return The bytes for titleColor.
     */
    com.google.protobuf.ByteString
        getTitleColorBytes();

    /**
     * bool show_legend = 10;
     * @return The showLegend.
     */
    boolean getShowLegend();

    /**
     * string legend_font = 11;
     * @return The legendFont.
     */
    java.lang.String getLegendFont();
    /**
     * string legend_font = 11;
     * @return The bytes for legendFont.
     */
    com.google.protobuf.ByteString
        getLegendFontBytes();

    /**
     * string legend_color = 12;
     * @return The legendColor.
     */
    java.lang.String getLegendColor();
    /**
     * string legend_color = 12;
     * @return The bytes for legendColor.
     */
    com.google.protobuf.ByteString
        getLegendColorBytes();

    /**
     * bool is3d = 13;
     * @return The is3d.
     */
    boolean getIs3D();

    /**
     * int32 column = 14;
     * @return The column.
     */
    int getColumn();

    /**
     * int32 row = 15;
     * @return The row.
     */
    int getRow();
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor}
   */
  public static final class ChartDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor)
      ChartDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChartDescriptor.newBuilder() to construct.
    private ChartDescriptor(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ChartDescriptor() {
      series_ = java.util.Collections.emptyList();
      multiSeries_ = java.util.Collections.emptyList();
      axes_ = java.util.Collections.emptyList();
      chartType_ = 0;
      title_ = "";
      titleFont_ = "";
      titleColor_ = "";
      legendFont_ = "";
      legendColor_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_ChartDescriptor_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_ChartDescriptor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder.class);
    }

    /**
     * Protobuf enum {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType}
     */
    public enum ChartType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * XY = 0;
       */
      XY(0),
      /**
       * PIE = 1;
       */
      PIE(1),
      /**
       * OHLC = 2 [deprecated = true];
       */
      @java.lang.Deprecated
      OHLC(2),
      /**
       * CATEGORY = 3;
       */
      CATEGORY(3),
      /**
       * XYZ = 4;
       */
      XYZ(4),
      /**
       * CATEGORY_3D = 5;
       */
      CATEGORY_3D(5),
      /**
       * TREEMAP = 6;
       */
      TREEMAP(6),
      UNRECOGNIZED(-1),
      ;

      /**
       * XY = 0;
       */
      public static final int XY_VALUE = 0;
      /**
       * PIE = 1;
       */
      public static final int PIE_VALUE = 1;
      /**
       * OHLC = 2 [deprecated = true];
       */
      @java.lang.Deprecated public static final int OHLC_VALUE = 2;
      /**
       * CATEGORY = 3;
       */
      public static final int CATEGORY_VALUE = 3;
      /**
       * XYZ = 4;
       */
      public static final int XYZ_VALUE = 4;
      /**
       * CATEGORY_3D = 5;
       */
      public static final int CATEGORY_3D_VALUE = 5;
      /**
       * TREEMAP = 6;
       */
      public static final int TREEMAP_VALUE = 6;


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

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChartType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChartType forNumber(int value) {
        switch (value) {
          case 0: return XY;
          case 1: return PIE;
          case 2: return OHLC;
          case 3: return CATEGORY;
          case 4: return XYZ;
          case 5: return CATEGORY_3D;
          case 6: return TREEMAP;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.getDescriptor().getEnumTypes().get(0);
      }

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

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

      // @@protoc_insertion_point(enum_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType)
    }

    private int bitField0_;
    public static final int COLSPAN_FIELD_NUMBER = 1;
    private int colspan_ = 0;
    /**
     * int32 colspan = 1;
     * @return The colspan.
     */
    @java.lang.Override
    public int getColspan() {
      return colspan_;
    }

    public static final int ROWSPAN_FIELD_NUMBER = 2;
    private int rowspan_ = 0;
    /**
     * int32 rowspan = 2;
     * @return The rowspan.
     */
    @java.lang.Override
    public int getRowspan() {
      return rowspan_;
    }

    public static final int SERIES_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List series_;
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
     */
    @java.lang.Override
    public java.util.List getSeriesList() {
      return series_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
     */
    @java.lang.Override
    public java.util.List 
        getSeriesOrBuilderList() {
      return series_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
     */
    @java.lang.Override
    public int getSeriesCount() {
      return series_.size();
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor getSeries(int index) {
      return series_.get(index);
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptorOrBuilder getSeriesOrBuilder(
        int index) {
      return series_.get(index);
    }

    public static final int MULTI_SERIES_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private java.util.List multiSeries_;
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
     */
    @java.lang.Override
    public java.util.List getMultiSeriesList() {
      return multiSeries_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
     */
    @java.lang.Override
    public java.util.List 
        getMultiSeriesOrBuilderList() {
      return multiSeries_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
     */
    @java.lang.Override
    public int getMultiSeriesCount() {
      return multiSeries_.size();
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor getMultiSeries(int index) {
      return multiSeries_.get(index);
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptorOrBuilder getMultiSeriesOrBuilder(
        int index) {
      return multiSeries_.get(index);
    }

    public static final int AXES_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private java.util.List axes_;
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
     */
    @java.lang.Override
    public java.util.List getAxesList() {
      return axes_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
     */
    @java.lang.Override
    public java.util.List 
        getAxesOrBuilderList() {
      return axes_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
     */
    @java.lang.Override
    public int getAxesCount() {
      return axes_.size();
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor getAxes(int index) {
      return axes_.get(index);
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptorOrBuilder getAxesOrBuilder(
        int index) {
      return axes_.get(index);
    }

    public static final int CHART_TYPE_FIELD_NUMBER = 6;
    private int chartType_ = 0;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType chart_type = 6;
     * @return The enum numeric value on the wire for chartType.
     */
    @java.lang.Override public int getChartTypeValue() {
      return chartType_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType chart_type = 6;
     * @return The chartType.
     */
    @java.lang.Override public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType getChartType() {
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType.forNumber(chartType_);
      return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType.UNRECOGNIZED : result;
    }

    public static final int TITLE_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private volatile java.lang.Object title_ = "";
    /**
     * optional string title = 7;
     * @return Whether the title field is set.
     */
    @java.lang.Override
    public boolean hasTitle() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string title = 7;
     * @return The title.
     */
    @java.lang.Override
    public java.lang.String getTitle() {
      java.lang.Object ref = title_;
      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();
        title_ = s;
        return s;
      }
    }
    /**
     * optional string title = 7;
     * @return The bytes for title.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleBytes() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        title_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TITLE_FONT_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object titleFont_ = "";
    /**
     * string title_font = 8;
     * @return The titleFont.
     */
    @java.lang.Override
    public java.lang.String getTitleFont() {
      java.lang.Object ref = titleFont_;
      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();
        titleFont_ = s;
        return s;
      }
    }
    /**
     * string title_font = 8;
     * @return The bytes for titleFont.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleFontBytes() {
      java.lang.Object ref = titleFont_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        titleFont_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TITLE_COLOR_FIELD_NUMBER = 9;
    @SuppressWarnings("serial")
    private volatile java.lang.Object titleColor_ = "";
    /**
     * string title_color = 9;
     * @return The titleColor.
     */
    @java.lang.Override
    public java.lang.String getTitleColor() {
      java.lang.Object ref = titleColor_;
      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();
        titleColor_ = s;
        return s;
      }
    }
    /**
     * string title_color = 9;
     * @return The bytes for titleColor.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleColorBytes() {
      java.lang.Object ref = titleColor_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        titleColor_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SHOW_LEGEND_FIELD_NUMBER = 10;
    private boolean showLegend_ = false;
    /**
     * bool show_legend = 10;
     * @return The showLegend.
     */
    @java.lang.Override
    public boolean getShowLegend() {
      return showLegend_;
    }

    public static final int LEGEND_FONT_FIELD_NUMBER = 11;
    @SuppressWarnings("serial")
    private volatile java.lang.Object legendFont_ = "";
    /**
     * string legend_font = 11;
     * @return The legendFont.
     */
    @java.lang.Override
    public java.lang.String getLegendFont() {
      java.lang.Object ref = legendFont_;
      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();
        legendFont_ = s;
        return s;
      }
    }
    /**
     * string legend_font = 11;
     * @return The bytes for legendFont.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLegendFontBytes() {
      java.lang.Object ref = legendFont_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        legendFont_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LEGEND_COLOR_FIELD_NUMBER = 12;
    @SuppressWarnings("serial")
    private volatile java.lang.Object legendColor_ = "";
    /**
     * string legend_color = 12;
     * @return The legendColor.
     */
    @java.lang.Override
    public java.lang.String getLegendColor() {
      java.lang.Object ref = legendColor_;
      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();
        legendColor_ = s;
        return s;
      }
    }
    /**
     * string legend_color = 12;
     * @return The bytes for legendColor.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLegendColorBytes() {
      java.lang.Object ref = legendColor_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        legendColor_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IS3D_FIELD_NUMBER = 13;
    private boolean is3D_ = false;
    /**
     * bool is3d = 13;
     * @return The is3d.
     */
    @java.lang.Override
    public boolean getIs3D() {
      return is3D_;
    }

    public static final int COLUMN_FIELD_NUMBER = 14;
    private int column_ = 0;
    /**
     * int32 column = 14;
     * @return The column.
     */
    @java.lang.Override
    public int getColumn() {
      return column_;
    }

    public static final int ROW_FIELD_NUMBER = 15;
    private int row_ = 0;
    /**
     * int32 row = 15;
     * @return The row.
     */
    @java.lang.Override
    public int getRow() {
      return row_;
    }

    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 (colspan_ != 0) {
        output.writeInt32(1, colspan_);
      }
      if (rowspan_ != 0) {
        output.writeInt32(2, rowspan_);
      }
      for (int i = 0; i < series_.size(); i++) {
        output.writeMessage(3, series_.get(i));
      }
      for (int i = 0; i < multiSeries_.size(); i++) {
        output.writeMessage(4, multiSeries_.get(i));
      }
      for (int i = 0; i < axes_.size(); i++) {
        output.writeMessage(5, axes_.get(i));
      }
      if (chartType_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType.XY.getNumber()) {
        output.writeEnum(6, chartType_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, title_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(titleFont_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, titleFont_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(titleColor_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, titleColor_);
      }
      if (showLegend_ != false) {
        output.writeBool(10, showLegend_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(legendFont_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, legendFont_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(legendColor_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, legendColor_);
      }
      if (is3D_ != false) {
        output.writeBool(13, is3D_);
      }
      if (column_ != 0) {
        output.writeInt32(14, column_);
      }
      if (row_ != 0) {
        output.writeInt32(15, row_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (colspan_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, colspan_);
      }
      if (rowspan_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, rowspan_);
      }
      for (int i = 0; i < series_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, series_.get(i));
      }
      for (int i = 0; i < multiSeries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, multiSeries_.get(i));
      }
      for (int i = 0; i < axes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, axes_.get(i));
      }
      if (chartType_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType.XY.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, chartType_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, title_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(titleFont_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, titleFont_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(titleColor_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, titleColor_);
      }
      if (showLegend_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, showLegend_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(legendFont_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, legendFont_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(legendColor_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, legendColor_);
      }
      if (is3D_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(13, is3D_);
      }
      if (column_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(14, column_);
      }
      if (row_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(15, row_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor) obj;

      if (getColspan()
          != other.getColspan()) return false;
      if (getRowspan()
          != other.getRowspan()) return false;
      if (!getSeriesList()
          .equals(other.getSeriesList())) return false;
      if (!getMultiSeriesList()
          .equals(other.getMultiSeriesList())) return false;
      if (!getAxesList()
          .equals(other.getAxesList())) return false;
      if (chartType_ != other.chartType_) return false;
      if (hasTitle() != other.hasTitle()) return false;
      if (hasTitle()) {
        if (!getTitle()
            .equals(other.getTitle())) return false;
      }
      if (!getTitleFont()
          .equals(other.getTitleFont())) return false;
      if (!getTitleColor()
          .equals(other.getTitleColor())) return false;
      if (getShowLegend()
          != other.getShowLegend()) return false;
      if (!getLegendFont()
          .equals(other.getLegendFont())) return false;
      if (!getLegendColor()
          .equals(other.getLegendColor())) return false;
      if (getIs3D()
          != other.getIs3D()) return false;
      if (getColumn()
          != other.getColumn()) return false;
      if (getRow()
          != other.getRow()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) 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) + COLSPAN_FIELD_NUMBER;
      hash = (53 * hash) + getColspan();
      hash = (37 * hash) + ROWSPAN_FIELD_NUMBER;
      hash = (53 * hash) + getRowspan();
      if (getSeriesCount() > 0) {
        hash = (37 * hash) + SERIES_FIELD_NUMBER;
        hash = (53 * hash) + getSeriesList().hashCode();
      }
      if (getMultiSeriesCount() > 0) {
        hash = (37 * hash) + MULTI_SERIES_FIELD_NUMBER;
        hash = (53 * hash) + getMultiSeriesList().hashCode();
      }
      if (getAxesCount() > 0) {
        hash = (37 * hash) + AXES_FIELD_NUMBER;
        hash = (53 * hash) + getAxesList().hashCode();
      }
      hash = (37 * hash) + CHART_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + chartType_;
      if (hasTitle()) {
        hash = (37 * hash) + TITLE_FIELD_NUMBER;
        hash = (53 * hash) + getTitle().hashCode();
      }
      hash = (37 * hash) + TITLE_FONT_FIELD_NUMBER;
      hash = (53 * hash) + getTitleFont().hashCode();
      hash = (37 * hash) + TITLE_COLOR_FIELD_NUMBER;
      hash = (53 * hash) + getTitleColor().hashCode();
      hash = (37 * hash) + SHOW_LEGEND_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getShowLegend());
      hash = (37 * hash) + LEGEND_FONT_FIELD_NUMBER;
      hash = (53 * hash) + getLegendFont().hashCode();
      hash = (37 * hash) + LEGEND_COLOR_FIELD_NUMBER;
      hash = (53 * hash) + getLegendColor().hashCode();
      hash = (37 * hash) + IS3D_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIs3D());
      hash = (37 * hash) + COLUMN_FIELD_NUMBER;
      hash = (53 * hash) + getColumn();
      hash = (37 * hash) + ROW_FIELD_NUMBER;
      hash = (53 * hash) + getRow();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_ChartDescriptor_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_ChartDescriptor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        colspan_ = 0;
        rowspan_ = 0;
        if (seriesBuilder_ == null) {
          series_ = java.util.Collections.emptyList();
        } else {
          series_ = null;
          seriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (multiSeriesBuilder_ == null) {
          multiSeries_ = java.util.Collections.emptyList();
        } else {
          multiSeries_ = null;
          multiSeriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (axesBuilder_ == null) {
          axes_ = java.util.Collections.emptyList();
        } else {
          axes_ = null;
          axesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        chartType_ = 0;
        title_ = "";
        titleFont_ = "";
        titleColor_ = "";
        showLegend_ = false;
        legendFont_ = "";
        legendColor_ = "";
        is3D_ = false;
        column_ = 0;
        row_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_ChartDescriptor_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor result) {
        if (seriesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            series_ = java.util.Collections.unmodifiableList(series_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.series_ = series_;
        } else {
          result.series_ = seriesBuilder_.build();
        }
        if (multiSeriesBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            multiSeries_ = java.util.Collections.unmodifiableList(multiSeries_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.multiSeries_ = multiSeries_;
        } else {
          result.multiSeries_ = multiSeriesBuilder_.build();
        }
        if (axesBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            axes_ = java.util.Collections.unmodifiableList(axes_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.axes_ = axes_;
        } else {
          result.axes_ = axesBuilder_.build();
        }
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.colspan_ = colspan_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.rowspan_ = rowspan_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.chartType_ = chartType_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.title_ = title_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.titleFont_ = titleFont_;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.titleColor_ = titleColor_;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.showLegend_ = showLegend_;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.legendFont_ = legendFont_;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.legendColor_ = legendColor_;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.is3D_ = is3D_;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.column_ = column_;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.row_ = row_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.getDefaultInstance()) return this;
        if (other.getColspan() != 0) {
          setColspan(other.getColspan());
        }
        if (other.getRowspan() != 0) {
          setRowspan(other.getRowspan());
        }
        if (seriesBuilder_ == null) {
          if (!other.series_.isEmpty()) {
            if (series_.isEmpty()) {
              series_ = other.series_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureSeriesIsMutable();
              series_.addAll(other.series_);
            }
            onChanged();
          }
        } else {
          if (!other.series_.isEmpty()) {
            if (seriesBuilder_.isEmpty()) {
              seriesBuilder_.dispose();
              seriesBuilder_ = null;
              series_ = other.series_;
              bitField0_ = (bitField0_ & ~0x00000004);
              seriesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSeriesFieldBuilder() : null;
            } else {
              seriesBuilder_.addAllMessages(other.series_);
            }
          }
        }
        if (multiSeriesBuilder_ == null) {
          if (!other.multiSeries_.isEmpty()) {
            if (multiSeries_.isEmpty()) {
              multiSeries_ = other.multiSeries_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureMultiSeriesIsMutable();
              multiSeries_.addAll(other.multiSeries_);
            }
            onChanged();
          }
        } else {
          if (!other.multiSeries_.isEmpty()) {
            if (multiSeriesBuilder_.isEmpty()) {
              multiSeriesBuilder_.dispose();
              multiSeriesBuilder_ = null;
              multiSeries_ = other.multiSeries_;
              bitField0_ = (bitField0_ & ~0x00000008);
              multiSeriesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMultiSeriesFieldBuilder() : null;
            } else {
              multiSeriesBuilder_.addAllMessages(other.multiSeries_);
            }
          }
        }
        if (axesBuilder_ == null) {
          if (!other.axes_.isEmpty()) {
            if (axes_.isEmpty()) {
              axes_ = other.axes_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureAxesIsMutable();
              axes_.addAll(other.axes_);
            }
            onChanged();
          }
        } else {
          if (!other.axes_.isEmpty()) {
            if (axesBuilder_.isEmpty()) {
              axesBuilder_.dispose();
              axesBuilder_ = null;
              axes_ = other.axes_;
              bitField0_ = (bitField0_ & ~0x00000010);
              axesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAxesFieldBuilder() : null;
            } else {
              axesBuilder_.addAllMessages(other.axes_);
            }
          }
        }
        if (other.chartType_ != 0) {
          setChartTypeValue(other.getChartTypeValue());
        }
        if (other.hasTitle()) {
          title_ = other.title_;
          bitField0_ |= 0x00000040;
          onChanged();
        }
        if (!other.getTitleFont().isEmpty()) {
          titleFont_ = other.titleFont_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        if (!other.getTitleColor().isEmpty()) {
          titleColor_ = other.titleColor_;
          bitField0_ |= 0x00000100;
          onChanged();
        }
        if (other.getShowLegend() != false) {
          setShowLegend(other.getShowLegend());
        }
        if (!other.getLegendFont().isEmpty()) {
          legendFont_ = other.legendFont_;
          bitField0_ |= 0x00000400;
          onChanged();
        }
        if (!other.getLegendColor().isEmpty()) {
          legendColor_ = other.legendColor_;
          bitField0_ |= 0x00000800;
          onChanged();
        }
        if (other.getIs3D() != false) {
          setIs3D(other.getIs3D());
        }
        if (other.getColumn() != 0) {
          setColumn(other.getColumn());
        }
        if (other.getRow() != 0) {
          setRow(other.getRow());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                colspan_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                rowspan_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor m =
                    input.readMessage(
                        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.parser(),
                        extensionRegistry);
                if (seriesBuilder_ == null) {
                  ensureSeriesIsMutable();
                  series_.add(m);
                } else {
                  seriesBuilder_.addMessage(m);
                }
                break;
              } // case 26
              case 34: {
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor m =
                    input.readMessage(
                        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.parser(),
                        extensionRegistry);
                if (multiSeriesBuilder_ == null) {
                  ensureMultiSeriesIsMutable();
                  multiSeries_.add(m);
                } else {
                  multiSeriesBuilder_.addMessage(m);
                }
                break;
              } // case 34
              case 42: {
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor m =
                    input.readMessage(
                        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.parser(),
                        extensionRegistry);
                if (axesBuilder_ == null) {
                  ensureAxesIsMutable();
                  axes_.add(m);
                } else {
                  axesBuilder_.addMessage(m);
                }
                break;
              } // case 42
              case 48: {
                chartType_ = input.readEnum();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                title_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                titleFont_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 74: {
                titleColor_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 80: {
                showLegend_ = input.readBool();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 90: {
                legendFont_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000400;
                break;
              } // case 90
              case 98: {
                legendColor_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 104: {
                is3D_ = input.readBool();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 112: {
                column_ = input.readInt32();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 120: {
                row_ = input.readInt32();
                bitField0_ |= 0x00004000;
                break;
              } // case 120
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int colspan_ ;
      /**
       * int32 colspan = 1;
       * @return The colspan.
       */
      @java.lang.Override
      public int getColspan() {
        return colspan_;
      }
      /**
       * int32 colspan = 1;
       * @param value The colspan to set.
       * @return This builder for chaining.
       */
      public Builder setColspan(int value) {

        colspan_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int32 colspan = 1;
       * @return This builder for chaining.
       */
      public Builder clearColspan() {
        bitField0_ = (bitField0_ & ~0x00000001);
        colspan_ = 0;
        onChanged();
        return this;
      }

      private int rowspan_ ;
      /**
       * int32 rowspan = 2;
       * @return The rowspan.
       */
      @java.lang.Override
      public int getRowspan() {
        return rowspan_;
      }
      /**
       * int32 rowspan = 2;
       * @param value The rowspan to set.
       * @return This builder for chaining.
       */
      public Builder setRowspan(int value) {

        rowspan_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * int32 rowspan = 2;
       * @return This builder for chaining.
       */
      public Builder clearRowspan() {
        bitField0_ = (bitField0_ & ~0x00000002);
        rowspan_ = 0;
        onChanged();
        return this;
      }

      private java.util.List series_ =
        java.util.Collections.emptyList();
      private void ensureSeriesIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          series_ = new java.util.ArrayList(series_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptorOrBuilder> seriesBuilder_;

      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public java.util.List getSeriesList() {
        if (seriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(series_);
        } else {
          return seriesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public int getSeriesCount() {
        if (seriesBuilder_ == null) {
          return series_.size();
        } else {
          return seriesBuilder_.getCount();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor getSeries(int index) {
        if (seriesBuilder_ == null) {
          return series_.get(index);
        } else {
          return seriesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public Builder setSeries(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor value) {
        if (seriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSeriesIsMutable();
          series_.set(index, value);
          onChanged();
        } else {
          seriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public Builder setSeries(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder builderForValue) {
        if (seriesBuilder_ == null) {
          ensureSeriesIsMutable();
          series_.set(index, builderForValue.build());
          onChanged();
        } else {
          seriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public Builder addSeries(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor value) {
        if (seriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSeriesIsMutable();
          series_.add(value);
          onChanged();
        } else {
          seriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public Builder addSeries(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor value) {
        if (seriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSeriesIsMutable();
          series_.add(index, value);
          onChanged();
        } else {
          seriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public Builder addSeries(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder builderForValue) {
        if (seriesBuilder_ == null) {
          ensureSeriesIsMutable();
          series_.add(builderForValue.build());
          onChanged();
        } else {
          seriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public Builder addSeries(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder builderForValue) {
        if (seriesBuilder_ == null) {
          ensureSeriesIsMutable();
          series_.add(index, builderForValue.build());
          onChanged();
        } else {
          seriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public Builder addAllSeries(
          java.lang.Iterable values) {
        if (seriesBuilder_ == null) {
          ensureSeriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, series_);
          onChanged();
        } else {
          seriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public Builder clearSeries() {
        if (seriesBuilder_ == null) {
          series_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          seriesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public Builder removeSeries(int index) {
        if (seriesBuilder_ == null) {
          ensureSeriesIsMutable();
          series_.remove(index);
          onChanged();
        } else {
          seriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder getSeriesBuilder(
          int index) {
        return getSeriesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptorOrBuilder getSeriesOrBuilder(
          int index) {
        if (seriesBuilder_ == null) {
          return series_.get(index);  } else {
          return seriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public java.util.List 
           getSeriesOrBuilderList() {
        if (seriesBuilder_ != null) {
          return seriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(series_);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder addSeriesBuilder() {
        return getSeriesFieldBuilder().addBuilder(
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder addSeriesBuilder(
          int index) {
        return getSeriesFieldBuilder().addBuilder(
            index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor series = 3;
       */
      public java.util.List 
           getSeriesBuilderList() {
        return getSeriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptorOrBuilder> 
          getSeriesFieldBuilder() {
        if (seriesBuilder_ == null) {
          seriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptorOrBuilder>(
                  series_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          series_ = null;
        }
        return seriesBuilder_;
      }

      private java.util.List multiSeries_ =
        java.util.Collections.emptyList();
      private void ensureMultiSeriesIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          multiSeries_ = new java.util.ArrayList(multiSeries_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptorOrBuilder> multiSeriesBuilder_;

      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public java.util.List getMultiSeriesList() {
        if (multiSeriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(multiSeries_);
        } else {
          return multiSeriesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public int getMultiSeriesCount() {
        if (multiSeriesBuilder_ == null) {
          return multiSeries_.size();
        } else {
          return multiSeriesBuilder_.getCount();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor getMultiSeries(int index) {
        if (multiSeriesBuilder_ == null) {
          return multiSeries_.get(index);
        } else {
          return multiSeriesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public Builder setMultiSeries(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor value) {
        if (multiSeriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMultiSeriesIsMutable();
          multiSeries_.set(index, value);
          onChanged();
        } else {
          multiSeriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public Builder setMultiSeries(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder builderForValue) {
        if (multiSeriesBuilder_ == null) {
          ensureMultiSeriesIsMutable();
          multiSeries_.set(index, builderForValue.build());
          onChanged();
        } else {
          multiSeriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public Builder addMultiSeries(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor value) {
        if (multiSeriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMultiSeriesIsMutable();
          multiSeries_.add(value);
          onChanged();
        } else {
          multiSeriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public Builder addMultiSeries(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor value) {
        if (multiSeriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMultiSeriesIsMutable();
          multiSeries_.add(index, value);
          onChanged();
        } else {
          multiSeriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public Builder addMultiSeries(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder builderForValue) {
        if (multiSeriesBuilder_ == null) {
          ensureMultiSeriesIsMutable();
          multiSeries_.add(builderForValue.build());
          onChanged();
        } else {
          multiSeriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public Builder addMultiSeries(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder builderForValue) {
        if (multiSeriesBuilder_ == null) {
          ensureMultiSeriesIsMutable();
          multiSeries_.add(index, builderForValue.build());
          onChanged();
        } else {
          multiSeriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public Builder addAllMultiSeries(
          java.lang.Iterable values) {
        if (multiSeriesBuilder_ == null) {
          ensureMultiSeriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, multiSeries_);
          onChanged();
        } else {
          multiSeriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public Builder clearMultiSeries() {
        if (multiSeriesBuilder_ == null) {
          multiSeries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          multiSeriesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public Builder removeMultiSeries(int index) {
        if (multiSeriesBuilder_ == null) {
          ensureMultiSeriesIsMutable();
          multiSeries_.remove(index);
          onChanged();
        } else {
          multiSeriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder getMultiSeriesBuilder(
          int index) {
        return getMultiSeriesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptorOrBuilder getMultiSeriesOrBuilder(
          int index) {
        if (multiSeriesBuilder_ == null) {
          return multiSeries_.get(index);  } else {
          return multiSeriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public java.util.List 
           getMultiSeriesOrBuilderList() {
        if (multiSeriesBuilder_ != null) {
          return multiSeriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(multiSeries_);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder addMultiSeriesBuilder() {
        return getMultiSeriesFieldBuilder().addBuilder(
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder addMultiSeriesBuilder(
          int index) {
        return getMultiSeriesFieldBuilder().addBuilder(
            index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor multi_series = 4;
       */
      public java.util.List 
           getMultiSeriesBuilderList() {
        return getMultiSeriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptorOrBuilder> 
          getMultiSeriesFieldBuilder() {
        if (multiSeriesBuilder_ == null) {
          multiSeriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptorOrBuilder>(
                  multiSeries_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          multiSeries_ = null;
        }
        return multiSeriesBuilder_;
      }

      private java.util.List axes_ =
        java.util.Collections.emptyList();
      private void ensureAxesIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          axes_ = new java.util.ArrayList(axes_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptorOrBuilder> axesBuilder_;

      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public java.util.List getAxesList() {
        if (axesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(axes_);
        } else {
          return axesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public int getAxesCount() {
        if (axesBuilder_ == null) {
          return axes_.size();
        } else {
          return axesBuilder_.getCount();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor getAxes(int index) {
        if (axesBuilder_ == null) {
          return axes_.get(index);
        } else {
          return axesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public Builder setAxes(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor value) {
        if (axesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAxesIsMutable();
          axes_.set(index, value);
          onChanged();
        } else {
          axesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public Builder setAxes(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder builderForValue) {
        if (axesBuilder_ == null) {
          ensureAxesIsMutable();
          axes_.set(index, builderForValue.build());
          onChanged();
        } else {
          axesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public Builder addAxes(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor value) {
        if (axesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAxesIsMutable();
          axes_.add(value);
          onChanged();
        } else {
          axesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public Builder addAxes(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor value) {
        if (axesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAxesIsMutable();
          axes_.add(index, value);
          onChanged();
        } else {
          axesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public Builder addAxes(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder builderForValue) {
        if (axesBuilder_ == null) {
          ensureAxesIsMutable();
          axes_.add(builderForValue.build());
          onChanged();
        } else {
          axesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public Builder addAxes(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder builderForValue) {
        if (axesBuilder_ == null) {
          ensureAxesIsMutable();
          axes_.add(index, builderForValue.build());
          onChanged();
        } else {
          axesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public Builder addAllAxes(
          java.lang.Iterable values) {
        if (axesBuilder_ == null) {
          ensureAxesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, axes_);
          onChanged();
        } else {
          axesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public Builder clearAxes() {
        if (axesBuilder_ == null) {
          axes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          axesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public Builder removeAxes(int index) {
        if (axesBuilder_ == null) {
          ensureAxesIsMutable();
          axes_.remove(index);
          onChanged();
        } else {
          axesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder getAxesBuilder(
          int index) {
        return getAxesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptorOrBuilder getAxesOrBuilder(
          int index) {
        if (axesBuilder_ == null) {
          return axes_.get(index);  } else {
          return axesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public java.util.List 
           getAxesOrBuilderList() {
        if (axesBuilder_ != null) {
          return axesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(axes_);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder addAxesBuilder() {
        return getAxesFieldBuilder().addBuilder(
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder addAxesBuilder(
          int index) {
        return getAxesFieldBuilder().addBuilder(
            index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor axes = 5;
       */
      public java.util.List 
           getAxesBuilderList() {
        return getAxesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptorOrBuilder> 
          getAxesFieldBuilder() {
        if (axesBuilder_ == null) {
          axesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptorOrBuilder>(
                  axes_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          axes_ = null;
        }
        return axesBuilder_;
      }

      private int chartType_ = 0;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType chart_type = 6;
       * @return The enum numeric value on the wire for chartType.
       */
      @java.lang.Override public int getChartTypeValue() {
        return chartType_;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType chart_type = 6;
       * @param value The enum numeric value on the wire for chartType to set.
       * @return This builder for chaining.
       */
      public Builder setChartTypeValue(int value) {
        chartType_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType chart_type = 6;
       * @return The chartType.
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType getChartType() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType.forNumber(chartType_);
        return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType.UNRECOGNIZED : result;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType chart_type = 6;
       * @param value The chartType to set.
       * @return This builder for chaining.
       */
      public Builder setChartType(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        chartType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.ChartType chart_type = 6;
       * @return This builder for chaining.
       */
      public Builder clearChartType() {
        bitField0_ = (bitField0_ & ~0x00000020);
        chartType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object title_ = "";
      /**
       * optional string title = 7;
       * @return Whether the title field is set.
       */
      public boolean hasTitle() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * optional string title = 7;
       * @return The title.
       */
      public java.lang.String getTitle() {
        java.lang.Object ref = title_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          title_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string title = 7;
       * @return The bytes for title.
       */
      public com.google.protobuf.ByteString
          getTitleBytes() {
        java.lang.Object ref = title_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          title_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string title = 7;
       * @param value The title to set.
       * @return This builder for chaining.
       */
      public Builder setTitle(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        title_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * optional string title = 7;
       * @return This builder for chaining.
       */
      public Builder clearTitle() {
        title_ = getDefaultInstance().getTitle();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * optional string title = 7;
       * @param value The bytes for title to set.
       * @return This builder for chaining.
       */
      public Builder setTitleBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        title_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      private java.lang.Object titleFont_ = "";
      /**
       * string title_font = 8;
       * @return The titleFont.
       */
      public java.lang.String getTitleFont() {
        java.lang.Object ref = titleFont_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          titleFont_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string title_font = 8;
       * @return The bytes for titleFont.
       */
      public com.google.protobuf.ByteString
          getTitleFontBytes() {
        java.lang.Object ref = titleFont_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          titleFont_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string title_font = 8;
       * @param value The titleFont to set.
       * @return This builder for chaining.
       */
      public Builder setTitleFont(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        titleFont_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * string title_font = 8;
       * @return This builder for chaining.
       */
      public Builder clearTitleFont() {
        titleFont_ = getDefaultInstance().getTitleFont();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * string title_font = 8;
       * @param value The bytes for titleFont to set.
       * @return This builder for chaining.
       */
      public Builder setTitleFontBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        titleFont_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private java.lang.Object titleColor_ = "";
      /**
       * string title_color = 9;
       * @return The titleColor.
       */
      public java.lang.String getTitleColor() {
        java.lang.Object ref = titleColor_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          titleColor_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string title_color = 9;
       * @return The bytes for titleColor.
       */
      public com.google.protobuf.ByteString
          getTitleColorBytes() {
        java.lang.Object ref = titleColor_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          titleColor_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string title_color = 9;
       * @param value The titleColor to set.
       * @return This builder for chaining.
       */
      public Builder setTitleColor(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        titleColor_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * string title_color = 9;
       * @return This builder for chaining.
       */
      public Builder clearTitleColor() {
        titleColor_ = getDefaultInstance().getTitleColor();
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       * string title_color = 9;
       * @param value The bytes for titleColor to set.
       * @return This builder for chaining.
       */
      public Builder setTitleColorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        titleColor_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }

      private boolean showLegend_ ;
      /**
       * bool show_legend = 10;
       * @return The showLegend.
       */
      @java.lang.Override
      public boolean getShowLegend() {
        return showLegend_;
      }
      /**
       * bool show_legend = 10;
       * @param value The showLegend to set.
       * @return This builder for chaining.
       */
      public Builder setShowLegend(boolean value) {

        showLegend_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * bool show_legend = 10;
       * @return This builder for chaining.
       */
      public Builder clearShowLegend() {
        bitField0_ = (bitField0_ & ~0x00000200);
        showLegend_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object legendFont_ = "";
      /**
       * string legend_font = 11;
       * @return The legendFont.
       */
      public java.lang.String getLegendFont() {
        java.lang.Object ref = legendFont_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          legendFont_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string legend_font = 11;
       * @return The bytes for legendFont.
       */
      public com.google.protobuf.ByteString
          getLegendFontBytes() {
        java.lang.Object ref = legendFont_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          legendFont_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string legend_font = 11;
       * @param value The legendFont to set.
       * @return This builder for chaining.
       */
      public Builder setLegendFont(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        legendFont_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * string legend_font = 11;
       * @return This builder for chaining.
       */
      public Builder clearLegendFont() {
        legendFont_ = getDefaultInstance().getLegendFont();
        bitField0_ = (bitField0_ & ~0x00000400);
        onChanged();
        return this;
      }
      /**
       * string legend_font = 11;
       * @param value The bytes for legendFont to set.
       * @return This builder for chaining.
       */
      public Builder setLegendFontBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        legendFont_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }

      private java.lang.Object legendColor_ = "";
      /**
       * string legend_color = 12;
       * @return The legendColor.
       */
      public java.lang.String getLegendColor() {
        java.lang.Object ref = legendColor_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          legendColor_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string legend_color = 12;
       * @return The bytes for legendColor.
       */
      public com.google.protobuf.ByteString
          getLegendColorBytes() {
        java.lang.Object ref = legendColor_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          legendColor_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string legend_color = 12;
       * @param value The legendColor to set.
       * @return This builder for chaining.
       */
      public Builder setLegendColor(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        legendColor_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * string legend_color = 12;
       * @return This builder for chaining.
       */
      public Builder clearLegendColor() {
        legendColor_ = getDefaultInstance().getLegendColor();
        bitField0_ = (bitField0_ & ~0x00000800);
        onChanged();
        return this;
      }
      /**
       * string legend_color = 12;
       * @param value The bytes for legendColor to set.
       * @return This builder for chaining.
       */
      public Builder setLegendColorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        legendColor_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }

      private boolean is3D_ ;
      /**
       * bool is3d = 13;
       * @return The is3d.
       */
      @java.lang.Override
      public boolean getIs3D() {
        return is3D_;
      }
      /**
       * bool is3d = 13;
       * @param value The is3d to set.
       * @return This builder for chaining.
       */
      public Builder setIs3D(boolean value) {

        is3D_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * bool is3d = 13;
       * @return This builder for chaining.
       */
      public Builder clearIs3D() {
        bitField0_ = (bitField0_ & ~0x00001000);
        is3D_ = false;
        onChanged();
        return this;
      }

      private int column_ ;
      /**
       * int32 column = 14;
       * @return The column.
       */
      @java.lang.Override
      public int getColumn() {
        return column_;
      }
      /**
       * int32 column = 14;
       * @param value The column to set.
       * @return This builder for chaining.
       */
      public Builder setColumn(int value) {

        column_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * int32 column = 14;
       * @return This builder for chaining.
       */
      public Builder clearColumn() {
        bitField0_ = (bitField0_ & ~0x00002000);
        column_ = 0;
        onChanged();
        return this;
      }

      private int row_ ;
      /**
       * int32 row = 15;
       * @return The row.
       */
      @java.lang.Override
      public int getRow() {
        return row_;
      }
      /**
       * int32 row = 15;
       * @param value The row to set.
       * @return This builder for chaining.
       */
      public Builder setRow(int value) {

        row_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * int32 row = 15;
       * @return This builder for chaining.
       */
      public Builder clearRow() {
        bitField0_ = (bitField0_ & ~0x00004000);
        row_ = 0;
        onChanged();
        return this;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ChartDescriptor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SeriesDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
     * @return The enum numeric value on the wire for plotStyle.
     */
    int getPlotStyleValue();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
     * @return The plotStyle.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle getPlotStyle();

    /**
     * string name = 2;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * string name = 2;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * optional bool lines_visible = 3;
     * @return Whether the linesVisible field is set.
     */
    boolean hasLinesVisible();
    /**
     * optional bool lines_visible = 3;
     * @return The linesVisible.
     */
    boolean getLinesVisible();

    /**
     * optional bool shapes_visible = 4;
     * @return Whether the shapesVisible field is set.
     */
    boolean hasShapesVisible();
    /**
     * optional bool shapes_visible = 4;
     * @return The shapesVisible.
     */
    boolean getShapesVisible();

    /**
     * bool gradient_visible = 5;
     * @return The gradientVisible.
     */
    boolean getGradientVisible();

    /**
     * string line_color = 6;
     * @return The lineColor.
     */
    java.lang.String getLineColor();
    /**
     * string line_color = 6;
     * @return The bytes for lineColor.
     */
    com.google.protobuf.ByteString
        getLineColorBytes();

    /**
     * optional string point_label_format = 8;
     * @return Whether the pointLabelFormat field is set.
     */
    boolean hasPointLabelFormat();
    /**
     * optional string point_label_format = 8;
     * @return The pointLabelFormat.
     */
    java.lang.String getPointLabelFormat();
    /**
     * optional string point_label_format = 8;
     * @return The bytes for pointLabelFormat.
     */
    com.google.protobuf.ByteString
        getPointLabelFormatBytes();

    /**
     * optional string x_tool_tip_pattern = 9;
     * @return Whether the xToolTipPattern field is set.
     */
    boolean hasXToolTipPattern();
    /**
     * optional string x_tool_tip_pattern = 9;
     * @return The xToolTipPattern.
     */
    java.lang.String getXToolTipPattern();
    /**
     * optional string x_tool_tip_pattern = 9;
     * @return The bytes for xToolTipPattern.
     */
    com.google.protobuf.ByteString
        getXToolTipPatternBytes();

    /**
     * optional string y_tool_tip_pattern = 10;
     * @return Whether the yToolTipPattern field is set.
     */
    boolean hasYToolTipPattern();
    /**
     * optional string y_tool_tip_pattern = 10;
     * @return The yToolTipPattern.
     */
    java.lang.String getYToolTipPattern();
    /**
     * optional string y_tool_tip_pattern = 10;
     * @return The bytes for yToolTipPattern.
     */
    com.google.protobuf.ByteString
        getYToolTipPatternBytes();

    /**
     * string shape_label = 11;
     * @return The shapeLabel.
     */
    java.lang.String getShapeLabel();
    /**
     * string shape_label = 11;
     * @return The bytes for shapeLabel.
     */
    com.google.protobuf.ByteString
        getShapeLabelBytes();

    /**
     * optional double shape_size = 12;
     * @return Whether the shapeSize field is set.
     */
    boolean hasShapeSize();
    /**
     * optional double shape_size = 12;
     * @return The shapeSize.
     */
    double getShapeSize();

    /**
     * string shape_color = 13;
     * @return The shapeColor.
     */
    java.lang.String getShapeColor();
    /**
     * string shape_color = 13;
     * @return The bytes for shapeColor.
     */
    com.google.protobuf.ByteString
        getShapeColorBytes();

    /**
     * string shape = 14;
     * @return The shape.
     */
    java.lang.String getShape();
    /**
     * string shape = 14;
     * @return The bytes for shape.
     */
    com.google.protobuf.ByteString
        getShapeBytes();

    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
     */
    java.util.List 
        getDataSourcesList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor getDataSources(int index);
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
     */
    int getDataSourcesCount();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
     */
    java.util.List 
        getDataSourcesOrBuilderList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptorOrBuilder getDataSourcesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor}
   */
  public static final class SeriesDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor)
      SeriesDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SeriesDescriptor.newBuilder() to construct.
    private SeriesDescriptor(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private SeriesDescriptor() {
      plotStyle_ = 0;
      name_ = "";
      lineColor_ = "";
      pointLabelFormat_ = "";
      xToolTipPattern_ = "";
      yToolTipPattern_ = "";
      shapeLabel_ = "";
      shapeColor_ = "";
      shape_ = "";
      dataSources_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_SeriesDescriptor_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_SeriesDescriptor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder.class);
    }

    private int bitField0_;
    public static final int PLOT_STYLE_FIELD_NUMBER = 1;
    private int plotStyle_ = 0;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
     * @return The enum numeric value on the wire for plotStyle.
     */
    @java.lang.Override public int getPlotStyleValue() {
      return plotStyle_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
     * @return The plotStyle.
     */
    @java.lang.Override public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle getPlotStyle() {
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.forNumber(plotStyle_);
      return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.UNRECOGNIZED : result;
    }

    public static final int NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object name_ = "";
    /**
     * string name = 2;
     * @return The name.
     */
    @java.lang.Override
    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;
      }
    }
    /**
     * string name = 2;
     * @return The bytes for name.
     */
    @java.lang.Override
    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 LINES_VISIBLE_FIELD_NUMBER = 3;
    private boolean linesVisible_ = false;
    /**
     * optional bool lines_visible = 3;
     * @return Whether the linesVisible field is set.
     */
    @java.lang.Override
    public boolean hasLinesVisible() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional bool lines_visible = 3;
     * @return The linesVisible.
     */
    @java.lang.Override
    public boolean getLinesVisible() {
      return linesVisible_;
    }

    public static final int SHAPES_VISIBLE_FIELD_NUMBER = 4;
    private boolean shapesVisible_ = false;
    /**
     * optional bool shapes_visible = 4;
     * @return Whether the shapesVisible field is set.
     */
    @java.lang.Override
    public boolean hasShapesVisible() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional bool shapes_visible = 4;
     * @return The shapesVisible.
     */
    @java.lang.Override
    public boolean getShapesVisible() {
      return shapesVisible_;
    }

    public static final int GRADIENT_VISIBLE_FIELD_NUMBER = 5;
    private boolean gradientVisible_ = false;
    /**
     * bool gradient_visible = 5;
     * @return The gradientVisible.
     */
    @java.lang.Override
    public boolean getGradientVisible() {
      return gradientVisible_;
    }

    public static final int LINE_COLOR_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object lineColor_ = "";
    /**
     * string line_color = 6;
     * @return The lineColor.
     */
    @java.lang.Override
    public java.lang.String getLineColor() {
      java.lang.Object ref = lineColor_;
      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();
        lineColor_ = s;
        return s;
      }
    }
    /**
     * string line_color = 6;
     * @return The bytes for lineColor.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLineColorBytes() {
      java.lang.Object ref = lineColor_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        lineColor_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int POINT_LABEL_FORMAT_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object pointLabelFormat_ = "";
    /**
     * optional string point_label_format = 8;
     * @return Whether the pointLabelFormat field is set.
     */
    @java.lang.Override
    public boolean hasPointLabelFormat() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional string point_label_format = 8;
     * @return The pointLabelFormat.
     */
    @java.lang.Override
    public java.lang.String getPointLabelFormat() {
      java.lang.Object ref = pointLabelFormat_;
      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();
        pointLabelFormat_ = s;
        return s;
      }
    }
    /**
     * optional string point_label_format = 8;
     * @return The bytes for pointLabelFormat.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPointLabelFormatBytes() {
      java.lang.Object ref = pointLabelFormat_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        pointLabelFormat_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int X_TOOL_TIP_PATTERN_FIELD_NUMBER = 9;
    @SuppressWarnings("serial")
    private volatile java.lang.Object xToolTipPattern_ = "";
    /**
     * optional string x_tool_tip_pattern = 9;
     * @return Whether the xToolTipPattern field is set.
     */
    @java.lang.Override
    public boolean hasXToolTipPattern() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional string x_tool_tip_pattern = 9;
     * @return The xToolTipPattern.
     */
    @java.lang.Override
    public java.lang.String getXToolTipPattern() {
      java.lang.Object ref = xToolTipPattern_;
      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();
        xToolTipPattern_ = s;
        return s;
      }
    }
    /**
     * optional string x_tool_tip_pattern = 9;
     * @return The bytes for xToolTipPattern.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getXToolTipPatternBytes() {
      java.lang.Object ref = xToolTipPattern_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        xToolTipPattern_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int Y_TOOL_TIP_PATTERN_FIELD_NUMBER = 10;
    @SuppressWarnings("serial")
    private volatile java.lang.Object yToolTipPattern_ = "";
    /**
     * optional string y_tool_tip_pattern = 10;
     * @return Whether the yToolTipPattern field is set.
     */
    @java.lang.Override
    public boolean hasYToolTipPattern() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * optional string y_tool_tip_pattern = 10;
     * @return The yToolTipPattern.
     */
    @java.lang.Override
    public java.lang.String getYToolTipPattern() {
      java.lang.Object ref = yToolTipPattern_;
      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();
        yToolTipPattern_ = s;
        return s;
      }
    }
    /**
     * optional string y_tool_tip_pattern = 10;
     * @return The bytes for yToolTipPattern.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getYToolTipPatternBytes() {
      java.lang.Object ref = yToolTipPattern_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        yToolTipPattern_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SHAPE_LABEL_FIELD_NUMBER = 11;
    @SuppressWarnings("serial")
    private volatile java.lang.Object shapeLabel_ = "";
    /**
     * string shape_label = 11;
     * @return The shapeLabel.
     */
    @java.lang.Override
    public java.lang.String getShapeLabel() {
      java.lang.Object ref = shapeLabel_;
      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();
        shapeLabel_ = s;
        return s;
      }
    }
    /**
     * string shape_label = 11;
     * @return The bytes for shapeLabel.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getShapeLabelBytes() {
      java.lang.Object ref = shapeLabel_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shapeLabel_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SHAPE_SIZE_FIELD_NUMBER = 12;
    private double shapeSize_ = 0D;
    /**
     * optional double shape_size = 12;
     * @return Whether the shapeSize field is set.
     */
    @java.lang.Override
    public boolean hasShapeSize() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * optional double shape_size = 12;
     * @return The shapeSize.
     */
    @java.lang.Override
    public double getShapeSize() {
      return shapeSize_;
    }

    public static final int SHAPE_COLOR_FIELD_NUMBER = 13;
    @SuppressWarnings("serial")
    private volatile java.lang.Object shapeColor_ = "";
    /**
     * string shape_color = 13;
     * @return The shapeColor.
     */
    @java.lang.Override
    public java.lang.String getShapeColor() {
      java.lang.Object ref = shapeColor_;
      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();
        shapeColor_ = s;
        return s;
      }
    }
    /**
     * string shape_color = 13;
     * @return The bytes for shapeColor.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getShapeColorBytes() {
      java.lang.Object ref = shapeColor_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shapeColor_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SHAPE_FIELD_NUMBER = 14;
    @SuppressWarnings("serial")
    private volatile java.lang.Object shape_ = "";
    /**
     * string shape = 14;
     * @return The shape.
     */
    @java.lang.Override
    public java.lang.String getShape() {
      java.lang.Object ref = shape_;
      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();
        shape_ = s;
        return s;
      }
    }
    /**
     * string shape = 14;
     * @return The bytes for shape.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getShapeBytes() {
      java.lang.Object ref = shape_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shape_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATA_SOURCES_FIELD_NUMBER = 15;
    @SuppressWarnings("serial")
    private java.util.List dataSources_;
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
     */
    @java.lang.Override
    public java.util.List getDataSourcesList() {
      return dataSources_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
     */
    @java.lang.Override
    public java.util.List 
        getDataSourcesOrBuilderList() {
      return dataSources_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
     */
    @java.lang.Override
    public int getDataSourcesCount() {
      return dataSources_.size();
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor getDataSources(int index) {
      return dataSources_.get(index);
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptorOrBuilder getDataSourcesOrBuilder(
        int index) {
      return dataSources_.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 (plotStyle_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.BAR.getNumber()) {
        output.writeEnum(1, plotStyle_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBool(3, linesVisible_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(4, shapesVisible_);
      }
      if (gradientVisible_ != false) {
        output.writeBool(5, gradientVisible_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lineColor_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, lineColor_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, pointLabelFormat_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, xToolTipPattern_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, yToolTipPattern_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shapeLabel_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, shapeLabel_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeDouble(12, shapeSize_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shapeColor_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, shapeColor_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shape_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, shape_);
      }
      for (int i = 0; i < dataSources_.size(); i++) {
        output.writeMessage(15, dataSources_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (plotStyle_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.BAR.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, plotStyle_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, linesVisible_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, shapesVisible_);
      }
      if (gradientVisible_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, gradientVisible_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lineColor_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, lineColor_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, pointLabelFormat_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, xToolTipPattern_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, yToolTipPattern_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shapeLabel_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, shapeLabel_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(12, shapeSize_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shapeColor_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, shapeColor_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shape_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, shape_);
      }
      for (int i = 0; i < dataSources_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, dataSources_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor) obj;

      if (plotStyle_ != other.plotStyle_) return false;
      if (!getName()
          .equals(other.getName())) return false;
      if (hasLinesVisible() != other.hasLinesVisible()) return false;
      if (hasLinesVisible()) {
        if (getLinesVisible()
            != other.getLinesVisible()) return false;
      }
      if (hasShapesVisible() != other.hasShapesVisible()) return false;
      if (hasShapesVisible()) {
        if (getShapesVisible()
            != other.getShapesVisible()) return false;
      }
      if (getGradientVisible()
          != other.getGradientVisible()) return false;
      if (!getLineColor()
          .equals(other.getLineColor())) return false;
      if (hasPointLabelFormat() != other.hasPointLabelFormat()) return false;
      if (hasPointLabelFormat()) {
        if (!getPointLabelFormat()
            .equals(other.getPointLabelFormat())) return false;
      }
      if (hasXToolTipPattern() != other.hasXToolTipPattern()) return false;
      if (hasXToolTipPattern()) {
        if (!getXToolTipPattern()
            .equals(other.getXToolTipPattern())) return false;
      }
      if (hasYToolTipPattern() != other.hasYToolTipPattern()) return false;
      if (hasYToolTipPattern()) {
        if (!getYToolTipPattern()
            .equals(other.getYToolTipPattern())) return false;
      }
      if (!getShapeLabel()
          .equals(other.getShapeLabel())) return false;
      if (hasShapeSize() != other.hasShapeSize()) return false;
      if (hasShapeSize()) {
        if (java.lang.Double.doubleToLongBits(getShapeSize())
            != java.lang.Double.doubleToLongBits(
                other.getShapeSize())) return false;
      }
      if (!getShapeColor()
          .equals(other.getShapeColor())) return false;
      if (!getShape()
          .equals(other.getShape())) return false;
      if (!getDataSourcesList()
          .equals(other.getDataSourcesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) 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) + PLOT_STYLE_FIELD_NUMBER;
      hash = (53 * hash) + plotStyle_;
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      if (hasLinesVisible()) {
        hash = (37 * hash) + LINES_VISIBLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getLinesVisible());
      }
      if (hasShapesVisible()) {
        hash = (37 * hash) + SHAPES_VISIBLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getShapesVisible());
      }
      hash = (37 * hash) + GRADIENT_VISIBLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getGradientVisible());
      hash = (37 * hash) + LINE_COLOR_FIELD_NUMBER;
      hash = (53 * hash) + getLineColor().hashCode();
      if (hasPointLabelFormat()) {
        hash = (37 * hash) + POINT_LABEL_FORMAT_FIELD_NUMBER;
        hash = (53 * hash) + getPointLabelFormat().hashCode();
      }
      if (hasXToolTipPattern()) {
        hash = (37 * hash) + X_TOOL_TIP_PATTERN_FIELD_NUMBER;
        hash = (53 * hash) + getXToolTipPattern().hashCode();
      }
      if (hasYToolTipPattern()) {
        hash = (37 * hash) + Y_TOOL_TIP_PATTERN_FIELD_NUMBER;
        hash = (53 * hash) + getYToolTipPattern().hashCode();
      }
      hash = (37 * hash) + SHAPE_LABEL_FIELD_NUMBER;
      hash = (53 * hash) + getShapeLabel().hashCode();
      if (hasShapeSize()) {
        hash = (37 * hash) + SHAPE_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getShapeSize()));
      }
      hash = (37 * hash) + SHAPE_COLOR_FIELD_NUMBER;
      hash = (53 * hash) + getShapeColor().hashCode();
      hash = (37 * hash) + SHAPE_FIELD_NUMBER;
      hash = (53 * hash) + getShape().hashCode();
      if (getDataSourcesCount() > 0) {
        hash = (37 * hash) + DATA_SOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getDataSourcesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_SeriesDescriptor_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_SeriesDescriptor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        plotStyle_ = 0;
        name_ = "";
        linesVisible_ = false;
        shapesVisible_ = false;
        gradientVisible_ = false;
        lineColor_ = "";
        pointLabelFormat_ = "";
        xToolTipPattern_ = "";
        yToolTipPattern_ = "";
        shapeLabel_ = "";
        shapeSize_ = 0D;
        shapeColor_ = "";
        shape_ = "";
        if (dataSourcesBuilder_ == null) {
          dataSources_ = java.util.Collections.emptyList();
        } else {
          dataSources_ = null;
          dataSourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_SeriesDescriptor_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor result) {
        if (dataSourcesBuilder_ == null) {
          if (((bitField0_ & 0x00002000) != 0)) {
            dataSources_ = java.util.Collections.unmodifiableList(dataSources_);
            bitField0_ = (bitField0_ & ~0x00002000);
          }
          result.dataSources_ = dataSources_;
        } else {
          result.dataSources_ = dataSourcesBuilder_.build();
        }
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.plotStyle_ = plotStyle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.name_ = name_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.linesVisible_ = linesVisible_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.shapesVisible_ = shapesVisible_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.gradientVisible_ = gradientVisible_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.lineColor_ = lineColor_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.pointLabelFormat_ = pointLabelFormat_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.xToolTipPattern_ = xToolTipPattern_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.yToolTipPattern_ = yToolTipPattern_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.shapeLabel_ = shapeLabel_;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.shapeSize_ = shapeSize_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.shapeColor_ = shapeColor_;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.shape_ = shape_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor.getDefaultInstance()) return this;
        if (other.plotStyle_ != 0) {
          setPlotStyleValue(other.getPlotStyleValue());
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasLinesVisible()) {
          setLinesVisible(other.getLinesVisible());
        }
        if (other.hasShapesVisible()) {
          setShapesVisible(other.getShapesVisible());
        }
        if (other.getGradientVisible() != false) {
          setGradientVisible(other.getGradientVisible());
        }
        if (!other.getLineColor().isEmpty()) {
          lineColor_ = other.lineColor_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (other.hasPointLabelFormat()) {
          pointLabelFormat_ = other.pointLabelFormat_;
          bitField0_ |= 0x00000040;
          onChanged();
        }
        if (other.hasXToolTipPattern()) {
          xToolTipPattern_ = other.xToolTipPattern_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        if (other.hasYToolTipPattern()) {
          yToolTipPattern_ = other.yToolTipPattern_;
          bitField0_ |= 0x00000100;
          onChanged();
        }
        if (!other.getShapeLabel().isEmpty()) {
          shapeLabel_ = other.shapeLabel_;
          bitField0_ |= 0x00000200;
          onChanged();
        }
        if (other.hasShapeSize()) {
          setShapeSize(other.getShapeSize());
        }
        if (!other.getShapeColor().isEmpty()) {
          shapeColor_ = other.shapeColor_;
          bitField0_ |= 0x00000800;
          onChanged();
        }
        if (!other.getShape().isEmpty()) {
          shape_ = other.shape_;
          bitField0_ |= 0x00001000;
          onChanged();
        }
        if (dataSourcesBuilder_ == null) {
          if (!other.dataSources_.isEmpty()) {
            if (dataSources_.isEmpty()) {
              dataSources_ = other.dataSources_;
              bitField0_ = (bitField0_ & ~0x00002000);
            } else {
              ensureDataSourcesIsMutable();
              dataSources_.addAll(other.dataSources_);
            }
            onChanged();
          }
        } else {
          if (!other.dataSources_.isEmpty()) {
            if (dataSourcesBuilder_.isEmpty()) {
              dataSourcesBuilder_.dispose();
              dataSourcesBuilder_ = null;
              dataSources_ = other.dataSources_;
              bitField0_ = (bitField0_ & ~0x00002000);
              dataSourcesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDataSourcesFieldBuilder() : null;
            } else {
              dataSourcesBuilder_.addAllMessages(other.dataSources_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                plotStyle_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                name_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                linesVisible_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                shapesVisible_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                gradientVisible_ = input.readBool();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                lineColor_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 66: {
                pointLabelFormat_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000040;
                break;
              } // case 66
              case 74: {
                xToolTipPattern_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000080;
                break;
              } // case 74
              case 82: {
                yToolTipPattern_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000100;
                break;
              } // case 82
              case 90: {
                shapeLabel_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000200;
                break;
              } // case 90
              case 97: {
                shapeSize_ = input.readDouble();
                bitField0_ |= 0x00000400;
                break;
              } // case 97
              case 106: {
                shapeColor_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000800;
                break;
              } // case 106
              case 114: {
                shape_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00001000;
                break;
              } // case 114
              case 122: {
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor m =
                    input.readMessage(
                        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.parser(),
                        extensionRegistry);
                if (dataSourcesBuilder_ == null) {
                  ensureDataSourcesIsMutable();
                  dataSources_.add(m);
                } else {
                  dataSourcesBuilder_.addMessage(m);
                }
                break;
              } // case 122
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int plotStyle_ = 0;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
       * @return The enum numeric value on the wire for plotStyle.
       */
      @java.lang.Override public int getPlotStyleValue() {
        return plotStyle_;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
       * @param value The enum numeric value on the wire for plotStyle to set.
       * @return This builder for chaining.
       */
      public Builder setPlotStyleValue(int value) {
        plotStyle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
       * @return The plotStyle.
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle getPlotStyle() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.forNumber(plotStyle_);
        return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.UNRECOGNIZED : result;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
       * @param value The plotStyle to set.
       * @return This builder for chaining.
       */
      public Builder setPlotStyle(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        plotStyle_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
       * @return This builder for chaining.
       */
      public Builder clearPlotStyle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        plotStyle_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * string name = 2;
       * @return The name.
       */
      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;
        }
      }
      /**
       * string name = 2;
       * @return The bytes for name.
       */
      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;
        }
      }
      /**
       * string name = 2;
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        name_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * string name = 2;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        name_ = getDefaultInstance().getName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * string name = 2;
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        name_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private boolean linesVisible_ ;
      /**
       * optional bool lines_visible = 3;
       * @return Whether the linesVisible field is set.
       */
      @java.lang.Override
      public boolean hasLinesVisible() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional bool lines_visible = 3;
       * @return The linesVisible.
       */
      @java.lang.Override
      public boolean getLinesVisible() {
        return linesVisible_;
      }
      /**
       * optional bool lines_visible = 3;
       * @param value The linesVisible to set.
       * @return This builder for chaining.
       */
      public Builder setLinesVisible(boolean value) {

        linesVisible_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional bool lines_visible = 3;
       * @return This builder for chaining.
       */
      public Builder clearLinesVisible() {
        bitField0_ = (bitField0_ & ~0x00000004);
        linesVisible_ = false;
        onChanged();
        return this;
      }

      private boolean shapesVisible_ ;
      /**
       * optional bool shapes_visible = 4;
       * @return Whether the shapesVisible field is set.
       */
      @java.lang.Override
      public boolean hasShapesVisible() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional bool shapes_visible = 4;
       * @return The shapesVisible.
       */
      @java.lang.Override
      public boolean getShapesVisible() {
        return shapesVisible_;
      }
      /**
       * optional bool shapes_visible = 4;
       * @param value The shapesVisible to set.
       * @return This builder for chaining.
       */
      public Builder setShapesVisible(boolean value) {

        shapesVisible_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional bool shapes_visible = 4;
       * @return This builder for chaining.
       */
      public Builder clearShapesVisible() {
        bitField0_ = (bitField0_ & ~0x00000008);
        shapesVisible_ = false;
        onChanged();
        return this;
      }

      private boolean gradientVisible_ ;
      /**
       * bool gradient_visible = 5;
       * @return The gradientVisible.
       */
      @java.lang.Override
      public boolean getGradientVisible() {
        return gradientVisible_;
      }
      /**
       * bool gradient_visible = 5;
       * @param value The gradientVisible to set.
       * @return This builder for chaining.
       */
      public Builder setGradientVisible(boolean value) {

        gradientVisible_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * bool gradient_visible = 5;
       * @return This builder for chaining.
       */
      public Builder clearGradientVisible() {
        bitField0_ = (bitField0_ & ~0x00000010);
        gradientVisible_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object lineColor_ = "";
      /**
       * string line_color = 6;
       * @return The lineColor.
       */
      public java.lang.String getLineColor() {
        java.lang.Object ref = lineColor_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          lineColor_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string line_color = 6;
       * @return The bytes for lineColor.
       */
      public com.google.protobuf.ByteString
          getLineColorBytes() {
        java.lang.Object ref = lineColor_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          lineColor_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string line_color = 6;
       * @param value The lineColor to set.
       * @return This builder for chaining.
       */
      public Builder setLineColor(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        lineColor_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * string line_color = 6;
       * @return This builder for chaining.
       */
      public Builder clearLineColor() {
        lineColor_ = getDefaultInstance().getLineColor();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * string line_color = 6;
       * @param value The bytes for lineColor to set.
       * @return This builder for chaining.
       */
      public Builder setLineColorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        lineColor_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      private java.lang.Object pointLabelFormat_ = "";
      /**
       * optional string point_label_format = 8;
       * @return Whether the pointLabelFormat field is set.
       */
      public boolean hasPointLabelFormat() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * optional string point_label_format = 8;
       * @return The pointLabelFormat.
       */
      public java.lang.String getPointLabelFormat() {
        java.lang.Object ref = pointLabelFormat_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          pointLabelFormat_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string point_label_format = 8;
       * @return The bytes for pointLabelFormat.
       */
      public com.google.protobuf.ByteString
          getPointLabelFormatBytes() {
        java.lang.Object ref = pointLabelFormat_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          pointLabelFormat_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string point_label_format = 8;
       * @param value The pointLabelFormat to set.
       * @return This builder for chaining.
       */
      public Builder setPointLabelFormat(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        pointLabelFormat_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * optional string point_label_format = 8;
       * @return This builder for chaining.
       */
      public Builder clearPointLabelFormat() {
        pointLabelFormat_ = getDefaultInstance().getPointLabelFormat();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * optional string point_label_format = 8;
       * @param value The bytes for pointLabelFormat to set.
       * @return This builder for chaining.
       */
      public Builder setPointLabelFormatBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        pointLabelFormat_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      private java.lang.Object xToolTipPattern_ = "";
      /**
       * optional string x_tool_tip_pattern = 9;
       * @return Whether the xToolTipPattern field is set.
       */
      public boolean hasXToolTipPattern() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * optional string x_tool_tip_pattern = 9;
       * @return The xToolTipPattern.
       */
      public java.lang.String getXToolTipPattern() {
        java.lang.Object ref = xToolTipPattern_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          xToolTipPattern_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string x_tool_tip_pattern = 9;
       * @return The bytes for xToolTipPattern.
       */
      public com.google.protobuf.ByteString
          getXToolTipPatternBytes() {
        java.lang.Object ref = xToolTipPattern_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          xToolTipPattern_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string x_tool_tip_pattern = 9;
       * @param value The xToolTipPattern to set.
       * @return This builder for chaining.
       */
      public Builder setXToolTipPattern(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        xToolTipPattern_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * optional string x_tool_tip_pattern = 9;
       * @return This builder for chaining.
       */
      public Builder clearXToolTipPattern() {
        xToolTipPattern_ = getDefaultInstance().getXToolTipPattern();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * optional string x_tool_tip_pattern = 9;
       * @param value The bytes for xToolTipPattern to set.
       * @return This builder for chaining.
       */
      public Builder setXToolTipPatternBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        xToolTipPattern_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private java.lang.Object yToolTipPattern_ = "";
      /**
       * optional string y_tool_tip_pattern = 10;
       * @return Whether the yToolTipPattern field is set.
       */
      public boolean hasYToolTipPattern() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * optional string y_tool_tip_pattern = 10;
       * @return The yToolTipPattern.
       */
      public java.lang.String getYToolTipPattern() {
        java.lang.Object ref = yToolTipPattern_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          yToolTipPattern_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string y_tool_tip_pattern = 10;
       * @return The bytes for yToolTipPattern.
       */
      public com.google.protobuf.ByteString
          getYToolTipPatternBytes() {
        java.lang.Object ref = yToolTipPattern_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          yToolTipPattern_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string y_tool_tip_pattern = 10;
       * @param value The yToolTipPattern to set.
       * @return This builder for chaining.
       */
      public Builder setYToolTipPattern(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        yToolTipPattern_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * optional string y_tool_tip_pattern = 10;
       * @return This builder for chaining.
       */
      public Builder clearYToolTipPattern() {
        yToolTipPattern_ = getDefaultInstance().getYToolTipPattern();
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       * optional string y_tool_tip_pattern = 10;
       * @param value The bytes for yToolTipPattern to set.
       * @return This builder for chaining.
       */
      public Builder setYToolTipPatternBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        yToolTipPattern_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }

      private java.lang.Object shapeLabel_ = "";
      /**
       * string shape_label = 11;
       * @return The shapeLabel.
       */
      public java.lang.String getShapeLabel() {
        java.lang.Object ref = shapeLabel_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          shapeLabel_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string shape_label = 11;
       * @return The bytes for shapeLabel.
       */
      public com.google.protobuf.ByteString
          getShapeLabelBytes() {
        java.lang.Object ref = shapeLabel_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shapeLabel_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string shape_label = 11;
       * @param value The shapeLabel to set.
       * @return This builder for chaining.
       */
      public Builder setShapeLabel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        shapeLabel_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * string shape_label = 11;
       * @return This builder for chaining.
       */
      public Builder clearShapeLabel() {
        shapeLabel_ = getDefaultInstance().getShapeLabel();
        bitField0_ = (bitField0_ & ~0x00000200);
        onChanged();
        return this;
      }
      /**
       * string shape_label = 11;
       * @param value The bytes for shapeLabel to set.
       * @return This builder for chaining.
       */
      public Builder setShapeLabelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        shapeLabel_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }

      private double shapeSize_ ;
      /**
       * optional double shape_size = 12;
       * @return Whether the shapeSize field is set.
       */
      @java.lang.Override
      public boolean hasShapeSize() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * optional double shape_size = 12;
       * @return The shapeSize.
       */
      @java.lang.Override
      public double getShapeSize() {
        return shapeSize_;
      }
      /**
       * optional double shape_size = 12;
       * @param value The shapeSize to set.
       * @return This builder for chaining.
       */
      public Builder setShapeSize(double value) {

        shapeSize_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * optional double shape_size = 12;
       * @return This builder for chaining.
       */
      public Builder clearShapeSize() {
        bitField0_ = (bitField0_ & ~0x00000400);
        shapeSize_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object shapeColor_ = "";
      /**
       * string shape_color = 13;
       * @return The shapeColor.
       */
      public java.lang.String getShapeColor() {
        java.lang.Object ref = shapeColor_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          shapeColor_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string shape_color = 13;
       * @return The bytes for shapeColor.
       */
      public com.google.protobuf.ByteString
          getShapeColorBytes() {
        java.lang.Object ref = shapeColor_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shapeColor_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string shape_color = 13;
       * @param value The shapeColor to set.
       * @return This builder for chaining.
       */
      public Builder setShapeColor(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        shapeColor_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * string shape_color = 13;
       * @return This builder for chaining.
       */
      public Builder clearShapeColor() {
        shapeColor_ = getDefaultInstance().getShapeColor();
        bitField0_ = (bitField0_ & ~0x00000800);
        onChanged();
        return this;
      }
      /**
       * string shape_color = 13;
       * @param value The bytes for shapeColor to set.
       * @return This builder for chaining.
       */
      public Builder setShapeColorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        shapeColor_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }

      private java.lang.Object shape_ = "";
      /**
       * string shape = 14;
       * @return The shape.
       */
      public java.lang.String getShape() {
        java.lang.Object ref = shape_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          shape_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string shape = 14;
       * @return The bytes for shape.
       */
      public com.google.protobuf.ByteString
          getShapeBytes() {
        java.lang.Object ref = shape_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shape_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string shape = 14;
       * @param value The shape to set.
       * @return This builder for chaining.
       */
      public Builder setShape(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        shape_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * string shape = 14;
       * @return This builder for chaining.
       */
      public Builder clearShape() {
        shape_ = getDefaultInstance().getShape();
        bitField0_ = (bitField0_ & ~0x00001000);
        onChanged();
        return this;
      }
      /**
       * string shape = 14;
       * @param value The bytes for shape to set.
       * @return This builder for chaining.
       */
      public Builder setShapeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        shape_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }

      private java.util.List dataSources_ =
        java.util.Collections.emptyList();
      private void ensureDataSourcesIsMutable() {
        if (!((bitField0_ & 0x00002000) != 0)) {
          dataSources_ = new java.util.ArrayList(dataSources_);
          bitField0_ |= 0x00002000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptorOrBuilder> dataSourcesBuilder_;

      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public java.util.List getDataSourcesList() {
        if (dataSourcesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dataSources_);
        } else {
          return dataSourcesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public int getDataSourcesCount() {
        if (dataSourcesBuilder_ == null) {
          return dataSources_.size();
        } else {
          return dataSourcesBuilder_.getCount();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor getDataSources(int index) {
        if (dataSourcesBuilder_ == null) {
          return dataSources_.get(index);
        } else {
          return dataSourcesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public Builder setDataSources(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor value) {
        if (dataSourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataSourcesIsMutable();
          dataSources_.set(index, value);
          onChanged();
        } else {
          dataSourcesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public Builder setDataSources(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder builderForValue) {
        if (dataSourcesBuilder_ == null) {
          ensureDataSourcesIsMutable();
          dataSources_.set(index, builderForValue.build());
          onChanged();
        } else {
          dataSourcesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public Builder addDataSources(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor value) {
        if (dataSourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataSourcesIsMutable();
          dataSources_.add(value);
          onChanged();
        } else {
          dataSourcesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public Builder addDataSources(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor value) {
        if (dataSourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataSourcesIsMutable();
          dataSources_.add(index, value);
          onChanged();
        } else {
          dataSourcesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public Builder addDataSources(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder builderForValue) {
        if (dataSourcesBuilder_ == null) {
          ensureDataSourcesIsMutable();
          dataSources_.add(builderForValue.build());
          onChanged();
        } else {
          dataSourcesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public Builder addDataSources(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder builderForValue) {
        if (dataSourcesBuilder_ == null) {
          ensureDataSourcesIsMutable();
          dataSources_.add(index, builderForValue.build());
          onChanged();
        } else {
          dataSourcesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public Builder addAllDataSources(
          java.lang.Iterable values) {
        if (dataSourcesBuilder_ == null) {
          ensureDataSourcesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dataSources_);
          onChanged();
        } else {
          dataSourcesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public Builder clearDataSources() {
        if (dataSourcesBuilder_ == null) {
          dataSources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
          onChanged();
        } else {
          dataSourcesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public Builder removeDataSources(int index) {
        if (dataSourcesBuilder_ == null) {
          ensureDataSourcesIsMutable();
          dataSources_.remove(index);
          onChanged();
        } else {
          dataSourcesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder getDataSourcesBuilder(
          int index) {
        return getDataSourcesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptorOrBuilder getDataSourcesOrBuilder(
          int index) {
        if (dataSourcesBuilder_ == null) {
          return dataSources_.get(index);  } else {
          return dataSourcesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public java.util.List 
           getDataSourcesOrBuilderList() {
        if (dataSourcesBuilder_ != null) {
          return dataSourcesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dataSources_);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder addDataSourcesBuilder() {
        return getDataSourcesFieldBuilder().addBuilder(
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder addDataSourcesBuilder(
          int index) {
        return getDataSourcesFieldBuilder().addBuilder(
            index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor data_sources = 15;
       */
      public java.util.List 
           getDataSourcesBuilderList() {
        return getDataSourcesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptorOrBuilder> 
          getDataSourcesFieldBuilder() {
        if (dataSourcesBuilder_ == null) {
          dataSourcesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptorOrBuilder>(
                  dataSources_,
                  ((bitField0_ & 0x00002000) != 0),
                  getParentForChildren(),
                  isClean());
          dataSources_ = null;
        }
        return dataSourcesBuilder_;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public SeriesDescriptor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesDescriptor getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MultiSeriesDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
     * @return The enum numeric value on the wire for plotStyle.
     */
    int getPlotStyleValue();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
     * @return The plotStyle.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle getPlotStyle();

    /**
     * string name = 2;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * string name = 2;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
     * @return Whether the lineColor field is set.
     */
    boolean hasLineColor();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
     * @return The lineColor.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getLineColor();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getLineColorOrBuilder();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
     * @return Whether the pointColor field is set.
     */
    boolean hasPointColor();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
     * @return The pointColor.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointColor();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointColorOrBuilder();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
     * @return Whether the linesVisible field is set.
     */
    boolean hasLinesVisible();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
     * @return The linesVisible.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getLinesVisible();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder getLinesVisibleOrBuilder();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
     * @return Whether the pointsVisible field is set.
     */
    boolean hasPointsVisible();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
     * @return The pointsVisible.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getPointsVisible();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder getPointsVisibleOrBuilder();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
     * @return Whether the gradientVisible field is set.
     */
    boolean hasGradientVisible();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
     * @return The gradientVisible.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getGradientVisible();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder getGradientVisibleOrBuilder();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
     * @return Whether the pointLabelFormat field is set.
     */
    boolean hasPointLabelFormat();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
     * @return The pointLabelFormat.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointLabelFormat();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointLabelFormatOrBuilder();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
     * @return Whether the xToolTipPattern field is set.
     */
    boolean hasXToolTipPattern();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
     * @return The xToolTipPattern.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getXToolTipPattern();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getXToolTipPatternOrBuilder();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
     * @return Whether the yToolTipPattern field is set.
     */
    boolean hasYToolTipPattern();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
     * @return The yToolTipPattern.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getYToolTipPattern();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getYToolTipPatternOrBuilder();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
     * @return Whether the pointLabel field is set.
     */
    boolean hasPointLabel();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
     * @return The pointLabel.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointLabel();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointLabelOrBuilder();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
     * @return Whether the pointSize field is set.
     */
    boolean hasPointSize();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
     * @return The pointSize.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault getPointSize();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefaultOrBuilder getPointSizeOrBuilder();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
     * @return Whether the pointShape field is set.
     */
    boolean hasPointShape();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
     * @return The pointShape.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointShape();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointShapeOrBuilder();

    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
     */
    java.util.List 
        getDataSourcesList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor getDataSources(int index);
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
     */
    int getDataSourcesCount();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
     */
    java.util.List 
        getDataSourcesOrBuilderList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptorOrBuilder getDataSourcesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor}
   */
  public static final class MultiSeriesDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor)
      MultiSeriesDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MultiSeriesDescriptor.newBuilder() to construct.
    private MultiSeriesDescriptor(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MultiSeriesDescriptor() {
      plotStyle_ = 0;
      name_ = "";
      dataSources_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_MultiSeriesDescriptor_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_MultiSeriesDescriptor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder.class);
    }

    private int bitField0_;
    public static final int PLOT_STYLE_FIELD_NUMBER = 1;
    private int plotStyle_ = 0;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
     * @return The enum numeric value on the wire for plotStyle.
     */
    @java.lang.Override public int getPlotStyleValue() {
      return plotStyle_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
     * @return The plotStyle.
     */
    @java.lang.Override public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle getPlotStyle() {
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.forNumber(plotStyle_);
      return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.UNRECOGNIZED : result;
    }

    public static final int NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object name_ = "";
    /**
     * string name = 2;
     * @return The name.
     */
    @java.lang.Override
    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;
      }
    }
    /**
     * string name = 2;
     * @return The bytes for name.
     */
    @java.lang.Override
    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 LINE_COLOR_FIELD_NUMBER = 3;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault lineColor_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
     * @return Whether the lineColor field is set.
     */
    @java.lang.Override
    public boolean hasLineColor() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
     * @return The lineColor.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getLineColor() {
      return lineColor_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : lineColor_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getLineColorOrBuilder() {
      return lineColor_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : lineColor_;
    }

    public static final int POINT_COLOR_FIELD_NUMBER = 4;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault pointColor_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
     * @return Whether the pointColor field is set.
     */
    @java.lang.Override
    public boolean hasPointColor() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
     * @return The pointColor.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointColor() {
      return pointColor_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointColor_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointColorOrBuilder() {
      return pointColor_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointColor_;
    }

    public static final int LINES_VISIBLE_FIELD_NUMBER = 5;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault linesVisible_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
     * @return Whether the linesVisible field is set.
     */
    @java.lang.Override
    public boolean hasLinesVisible() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
     * @return The linesVisible.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getLinesVisible() {
      return linesVisible_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : linesVisible_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder getLinesVisibleOrBuilder() {
      return linesVisible_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : linesVisible_;
    }

    public static final int POINTS_VISIBLE_FIELD_NUMBER = 6;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault pointsVisible_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
     * @return Whether the pointsVisible field is set.
     */
    @java.lang.Override
    public boolean hasPointsVisible() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
     * @return The pointsVisible.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getPointsVisible() {
      return pointsVisible_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : pointsVisible_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder getPointsVisibleOrBuilder() {
      return pointsVisible_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : pointsVisible_;
    }

    public static final int GRADIENT_VISIBLE_FIELD_NUMBER = 7;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradientVisible_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
     * @return Whether the gradientVisible field is set.
     */
    @java.lang.Override
    public boolean hasGradientVisible() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
     * @return The gradientVisible.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getGradientVisible() {
      return gradientVisible_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : gradientVisible_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder getGradientVisibleOrBuilder() {
      return gradientVisible_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : gradientVisible_;
    }

    public static final int POINT_LABEL_FORMAT_FIELD_NUMBER = 8;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault pointLabelFormat_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
     * @return Whether the pointLabelFormat field is set.
     */
    @java.lang.Override
    public boolean hasPointLabelFormat() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
     * @return The pointLabelFormat.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointLabelFormat() {
      return pointLabelFormat_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointLabelFormat_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointLabelFormatOrBuilder() {
      return pointLabelFormat_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointLabelFormat_;
    }

    public static final int X_TOOL_TIP_PATTERN_FIELD_NUMBER = 9;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault xToolTipPattern_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
     * @return Whether the xToolTipPattern field is set.
     */
    @java.lang.Override
    public boolean hasXToolTipPattern() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
     * @return The xToolTipPattern.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getXToolTipPattern() {
      return xToolTipPattern_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : xToolTipPattern_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getXToolTipPatternOrBuilder() {
      return xToolTipPattern_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : xToolTipPattern_;
    }

    public static final int Y_TOOL_TIP_PATTERN_FIELD_NUMBER = 10;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault yToolTipPattern_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
     * @return Whether the yToolTipPattern field is set.
     */
    @java.lang.Override
    public boolean hasYToolTipPattern() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
     * @return The yToolTipPattern.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getYToolTipPattern() {
      return yToolTipPattern_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : yToolTipPattern_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getYToolTipPatternOrBuilder() {
      return yToolTipPattern_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : yToolTipPattern_;
    }

    public static final int POINT_LABEL_FIELD_NUMBER = 11;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault pointLabel_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
     * @return Whether the pointLabel field is set.
     */
    @java.lang.Override
    public boolean hasPointLabel() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
     * @return The pointLabel.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointLabel() {
      return pointLabel_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointLabel_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointLabelOrBuilder() {
      return pointLabel_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointLabel_;
    }

    public static final int POINT_SIZE_FIELD_NUMBER = 12;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault pointSize_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
     * @return Whether the pointSize field is set.
     */
    @java.lang.Override
    public boolean hasPointSize() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
     * @return The pointSize.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault getPointSize() {
      return pointSize_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.getDefaultInstance() : pointSize_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefaultOrBuilder getPointSizeOrBuilder() {
      return pointSize_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.getDefaultInstance() : pointSize_;
    }

    public static final int POINT_SHAPE_FIELD_NUMBER = 13;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault pointShape_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
     * @return Whether the pointShape field is set.
     */
    @java.lang.Override
    public boolean hasPointShape() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
     * @return The pointShape.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointShape() {
      return pointShape_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointShape_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointShapeOrBuilder() {
      return pointShape_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointShape_;
    }

    public static final int DATA_SOURCES_FIELD_NUMBER = 14;
    @SuppressWarnings("serial")
    private java.util.List dataSources_;
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
     */
    @java.lang.Override
    public java.util.List getDataSourcesList() {
      return dataSources_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
     */
    @java.lang.Override
    public java.util.List 
        getDataSourcesOrBuilderList() {
      return dataSources_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
     */
    @java.lang.Override
    public int getDataSourcesCount() {
      return dataSources_.size();
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor getDataSources(int index) {
      return dataSources_.get(index);
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptorOrBuilder getDataSourcesOrBuilder(
        int index) {
      return dataSources_.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 (plotStyle_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.BAR.getNumber()) {
        output.writeEnum(1, plotStyle_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getLineColor());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(4, getPointColor());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(5, getLinesVisible());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(6, getPointsVisible());
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeMessage(7, getGradientVisible());
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeMessage(8, getPointLabelFormat());
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeMessage(9, getXToolTipPattern());
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeMessage(10, getYToolTipPattern());
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeMessage(11, getPointLabel());
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeMessage(12, getPointSize());
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeMessage(13, getPointShape());
      }
      for (int i = 0; i < dataSources_.size(); i++) {
        output.writeMessage(14, dataSources_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (plotStyle_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.BAR.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, plotStyle_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getLineColor());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getPointColor());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getLinesVisible());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getPointsVisible());
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getGradientVisible());
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getPointLabelFormat());
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getXToolTipPattern());
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getYToolTipPattern());
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, getPointLabel());
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, getPointSize());
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, getPointShape());
      }
      for (int i = 0; i < dataSources_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, dataSources_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor) obj;

      if (plotStyle_ != other.plotStyle_) return false;
      if (!getName()
          .equals(other.getName())) return false;
      if (hasLineColor() != other.hasLineColor()) return false;
      if (hasLineColor()) {
        if (!getLineColor()
            .equals(other.getLineColor())) return false;
      }
      if (hasPointColor() != other.hasPointColor()) return false;
      if (hasPointColor()) {
        if (!getPointColor()
            .equals(other.getPointColor())) return false;
      }
      if (hasLinesVisible() != other.hasLinesVisible()) return false;
      if (hasLinesVisible()) {
        if (!getLinesVisible()
            .equals(other.getLinesVisible())) return false;
      }
      if (hasPointsVisible() != other.hasPointsVisible()) return false;
      if (hasPointsVisible()) {
        if (!getPointsVisible()
            .equals(other.getPointsVisible())) return false;
      }
      if (hasGradientVisible() != other.hasGradientVisible()) return false;
      if (hasGradientVisible()) {
        if (!getGradientVisible()
            .equals(other.getGradientVisible())) return false;
      }
      if (hasPointLabelFormat() != other.hasPointLabelFormat()) return false;
      if (hasPointLabelFormat()) {
        if (!getPointLabelFormat()
            .equals(other.getPointLabelFormat())) return false;
      }
      if (hasXToolTipPattern() != other.hasXToolTipPattern()) return false;
      if (hasXToolTipPattern()) {
        if (!getXToolTipPattern()
            .equals(other.getXToolTipPattern())) return false;
      }
      if (hasYToolTipPattern() != other.hasYToolTipPattern()) return false;
      if (hasYToolTipPattern()) {
        if (!getYToolTipPattern()
            .equals(other.getYToolTipPattern())) return false;
      }
      if (hasPointLabel() != other.hasPointLabel()) return false;
      if (hasPointLabel()) {
        if (!getPointLabel()
            .equals(other.getPointLabel())) return false;
      }
      if (hasPointSize() != other.hasPointSize()) return false;
      if (hasPointSize()) {
        if (!getPointSize()
            .equals(other.getPointSize())) return false;
      }
      if (hasPointShape() != other.hasPointShape()) return false;
      if (hasPointShape()) {
        if (!getPointShape()
            .equals(other.getPointShape())) return false;
      }
      if (!getDataSourcesList()
          .equals(other.getDataSourcesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) 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) + PLOT_STYLE_FIELD_NUMBER;
      hash = (53 * hash) + plotStyle_;
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      if (hasLineColor()) {
        hash = (37 * hash) + LINE_COLOR_FIELD_NUMBER;
        hash = (53 * hash) + getLineColor().hashCode();
      }
      if (hasPointColor()) {
        hash = (37 * hash) + POINT_COLOR_FIELD_NUMBER;
        hash = (53 * hash) + getPointColor().hashCode();
      }
      if (hasLinesVisible()) {
        hash = (37 * hash) + LINES_VISIBLE_FIELD_NUMBER;
        hash = (53 * hash) + getLinesVisible().hashCode();
      }
      if (hasPointsVisible()) {
        hash = (37 * hash) + POINTS_VISIBLE_FIELD_NUMBER;
        hash = (53 * hash) + getPointsVisible().hashCode();
      }
      if (hasGradientVisible()) {
        hash = (37 * hash) + GRADIENT_VISIBLE_FIELD_NUMBER;
        hash = (53 * hash) + getGradientVisible().hashCode();
      }
      if (hasPointLabelFormat()) {
        hash = (37 * hash) + POINT_LABEL_FORMAT_FIELD_NUMBER;
        hash = (53 * hash) + getPointLabelFormat().hashCode();
      }
      if (hasXToolTipPattern()) {
        hash = (37 * hash) + X_TOOL_TIP_PATTERN_FIELD_NUMBER;
        hash = (53 * hash) + getXToolTipPattern().hashCode();
      }
      if (hasYToolTipPattern()) {
        hash = (37 * hash) + Y_TOOL_TIP_PATTERN_FIELD_NUMBER;
        hash = (53 * hash) + getYToolTipPattern().hashCode();
      }
      if (hasPointLabel()) {
        hash = (37 * hash) + POINT_LABEL_FIELD_NUMBER;
        hash = (53 * hash) + getPointLabel().hashCode();
      }
      if (hasPointSize()) {
        hash = (37 * hash) + POINT_SIZE_FIELD_NUMBER;
        hash = (53 * hash) + getPointSize().hashCode();
      }
      if (hasPointShape()) {
        hash = (37 * hash) + POINT_SHAPE_FIELD_NUMBER;
        hash = (53 * hash) + getPointShape().hashCode();
      }
      if (getDataSourcesCount() > 0) {
        hash = (37 * hash) + DATA_SOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getDataSourcesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_MultiSeriesDescriptor_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_MultiSeriesDescriptor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getLineColorFieldBuilder();
          getPointColorFieldBuilder();
          getLinesVisibleFieldBuilder();
          getPointsVisibleFieldBuilder();
          getGradientVisibleFieldBuilder();
          getPointLabelFormatFieldBuilder();
          getXToolTipPatternFieldBuilder();
          getYToolTipPatternFieldBuilder();
          getPointLabelFieldBuilder();
          getPointSizeFieldBuilder();
          getPointShapeFieldBuilder();
          getDataSourcesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        plotStyle_ = 0;
        name_ = "";
        lineColor_ = null;
        if (lineColorBuilder_ != null) {
          lineColorBuilder_.dispose();
          lineColorBuilder_ = null;
        }
        pointColor_ = null;
        if (pointColorBuilder_ != null) {
          pointColorBuilder_.dispose();
          pointColorBuilder_ = null;
        }
        linesVisible_ = null;
        if (linesVisibleBuilder_ != null) {
          linesVisibleBuilder_.dispose();
          linesVisibleBuilder_ = null;
        }
        pointsVisible_ = null;
        if (pointsVisibleBuilder_ != null) {
          pointsVisibleBuilder_.dispose();
          pointsVisibleBuilder_ = null;
        }
        gradientVisible_ = null;
        if (gradientVisibleBuilder_ != null) {
          gradientVisibleBuilder_.dispose();
          gradientVisibleBuilder_ = null;
        }
        pointLabelFormat_ = null;
        if (pointLabelFormatBuilder_ != null) {
          pointLabelFormatBuilder_.dispose();
          pointLabelFormatBuilder_ = null;
        }
        xToolTipPattern_ = null;
        if (xToolTipPatternBuilder_ != null) {
          xToolTipPatternBuilder_.dispose();
          xToolTipPatternBuilder_ = null;
        }
        yToolTipPattern_ = null;
        if (yToolTipPatternBuilder_ != null) {
          yToolTipPatternBuilder_.dispose();
          yToolTipPatternBuilder_ = null;
        }
        pointLabel_ = null;
        if (pointLabelBuilder_ != null) {
          pointLabelBuilder_.dispose();
          pointLabelBuilder_ = null;
        }
        pointSize_ = null;
        if (pointSizeBuilder_ != null) {
          pointSizeBuilder_.dispose();
          pointSizeBuilder_ = null;
        }
        pointShape_ = null;
        if (pointShapeBuilder_ != null) {
          pointShapeBuilder_.dispose();
          pointShapeBuilder_ = null;
        }
        if (dataSourcesBuilder_ == null) {
          dataSources_ = java.util.Collections.emptyList();
        } else {
          dataSources_ = null;
          dataSourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_MultiSeriesDescriptor_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor result) {
        if (dataSourcesBuilder_ == null) {
          if (((bitField0_ & 0x00002000) != 0)) {
            dataSources_ = java.util.Collections.unmodifiableList(dataSources_);
            bitField0_ = (bitField0_ & ~0x00002000);
          }
          result.dataSources_ = dataSources_;
        } else {
          result.dataSources_ = dataSourcesBuilder_.build();
        }
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.plotStyle_ = plotStyle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.name_ = name_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.lineColor_ = lineColorBuilder_ == null
              ? lineColor_
              : lineColorBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.pointColor_ = pointColorBuilder_ == null
              ? pointColor_
              : pointColorBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.linesVisible_ = linesVisibleBuilder_ == null
              ? linesVisible_
              : linesVisibleBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.pointsVisible_ = pointsVisibleBuilder_ == null
              ? pointsVisible_
              : pointsVisibleBuilder_.build();
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.gradientVisible_ = gradientVisibleBuilder_ == null
              ? gradientVisible_
              : gradientVisibleBuilder_.build();
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.pointLabelFormat_ = pointLabelFormatBuilder_ == null
              ? pointLabelFormat_
              : pointLabelFormatBuilder_.build();
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.xToolTipPattern_ = xToolTipPatternBuilder_ == null
              ? xToolTipPattern_
              : xToolTipPatternBuilder_.build();
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.yToolTipPattern_ = yToolTipPatternBuilder_ == null
              ? yToolTipPattern_
              : yToolTipPatternBuilder_.build();
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.pointLabel_ = pointLabelBuilder_ == null
              ? pointLabel_
              : pointLabelBuilder_.build();
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.pointSize_ = pointSizeBuilder_ == null
              ? pointSize_
              : pointSizeBuilder_.build();
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.pointShape_ = pointShapeBuilder_ == null
              ? pointShape_
              : pointShapeBuilder_.build();
          to_bitField0_ |= 0x00000400;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor.getDefaultInstance()) return this;
        if (other.plotStyle_ != 0) {
          setPlotStyleValue(other.getPlotStyleValue());
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasLineColor()) {
          mergeLineColor(other.getLineColor());
        }
        if (other.hasPointColor()) {
          mergePointColor(other.getPointColor());
        }
        if (other.hasLinesVisible()) {
          mergeLinesVisible(other.getLinesVisible());
        }
        if (other.hasPointsVisible()) {
          mergePointsVisible(other.getPointsVisible());
        }
        if (other.hasGradientVisible()) {
          mergeGradientVisible(other.getGradientVisible());
        }
        if (other.hasPointLabelFormat()) {
          mergePointLabelFormat(other.getPointLabelFormat());
        }
        if (other.hasXToolTipPattern()) {
          mergeXToolTipPattern(other.getXToolTipPattern());
        }
        if (other.hasYToolTipPattern()) {
          mergeYToolTipPattern(other.getYToolTipPattern());
        }
        if (other.hasPointLabel()) {
          mergePointLabel(other.getPointLabel());
        }
        if (other.hasPointSize()) {
          mergePointSize(other.getPointSize());
        }
        if (other.hasPointShape()) {
          mergePointShape(other.getPointShape());
        }
        if (dataSourcesBuilder_ == null) {
          if (!other.dataSources_.isEmpty()) {
            if (dataSources_.isEmpty()) {
              dataSources_ = other.dataSources_;
              bitField0_ = (bitField0_ & ~0x00002000);
            } else {
              ensureDataSourcesIsMutable();
              dataSources_.addAll(other.dataSources_);
            }
            onChanged();
          }
        } else {
          if (!other.dataSources_.isEmpty()) {
            if (dataSourcesBuilder_.isEmpty()) {
              dataSourcesBuilder_.dispose();
              dataSourcesBuilder_ = null;
              dataSources_ = other.dataSources_;
              bitField0_ = (bitField0_ & ~0x00002000);
              dataSourcesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDataSourcesFieldBuilder() : null;
            } else {
              dataSourcesBuilder_.addAllMessages(other.dataSources_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                plotStyle_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                name_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getLineColorFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getPointColorFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    getLinesVisibleFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    getPointsVisibleFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    getGradientVisibleFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getPointLabelFormatFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 74: {
                input.readMessage(
                    getXToolTipPatternFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 82: {
                input.readMessage(
                    getYToolTipPatternFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              case 90: {
                input.readMessage(
                    getPointLabelFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000400;
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    getPointSizeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 106: {
                input.readMessage(
                    getPointShapeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00001000;
                break;
              } // case 106
              case 114: {
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor m =
                    input.readMessage(
                        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.parser(),
                        extensionRegistry);
                if (dataSourcesBuilder_ == null) {
                  ensureDataSourcesIsMutable();
                  dataSources_.add(m);
                } else {
                  dataSourcesBuilder_.addMessage(m);
                }
                break;
              } // case 114
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int plotStyle_ = 0;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
       * @return The enum numeric value on the wire for plotStyle.
       */
      @java.lang.Override public int getPlotStyleValue() {
        return plotStyle_;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
       * @param value The enum numeric value on the wire for plotStyle to set.
       * @return This builder for chaining.
       */
      public Builder setPlotStyleValue(int value) {
        plotStyle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
       * @return The plotStyle.
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle getPlotStyle() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.forNumber(plotStyle_);
        return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle.UNRECOGNIZED : result;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
       * @param value The plotStyle to set.
       * @return This builder for chaining.
       */
      public Builder setPlotStyle(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        plotStyle_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SeriesPlotStyle plot_style = 1;
       * @return This builder for chaining.
       */
      public Builder clearPlotStyle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        plotStyle_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * string name = 2;
       * @return The name.
       */
      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;
        }
      }
      /**
       * string name = 2;
       * @return The bytes for name.
       */
      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;
        }
      }
      /**
       * string name = 2;
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        name_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * string name = 2;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        name_ = getDefaultInstance().getName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * string name = 2;
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        name_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault lineColor_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> lineColorBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
       * @return Whether the lineColor field is set.
       */
      public boolean hasLineColor() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
       * @return The lineColor.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getLineColor() {
        if (lineColorBuilder_ == null) {
          return lineColor_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : lineColor_;
        } else {
          return lineColorBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
       */
      public Builder setLineColor(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (lineColorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lineColor_ = value;
        } else {
          lineColorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
       */
      public Builder setLineColor(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder builderForValue) {
        if (lineColorBuilder_ == null) {
          lineColor_ = builderForValue.build();
        } else {
          lineColorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
       */
      public Builder mergeLineColor(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (lineColorBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            lineColor_ != null &&
            lineColor_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance()) {
            getLineColorBuilder().mergeFrom(value);
          } else {
            lineColor_ = value;
          }
        } else {
          lineColorBuilder_.mergeFrom(value);
        }
        if (lineColor_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
       */
      public Builder clearLineColor() {
        bitField0_ = (bitField0_ & ~0x00000004);
        lineColor_ = null;
        if (lineColorBuilder_ != null) {
          lineColorBuilder_.dispose();
          lineColorBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder getLineColorBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLineColorFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getLineColorOrBuilder() {
        if (lineColorBuilder_ != null) {
          return lineColorBuilder_.getMessageOrBuilder();
        } else {
          return lineColor_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : lineColor_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault line_color = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> 
          getLineColorFieldBuilder() {
        if (lineColorBuilder_ == null) {
          lineColorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder>(
                  getLineColor(),
                  getParentForChildren(),
                  isClean());
          lineColor_ = null;
        }
        return lineColorBuilder_;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault pointColor_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> pointColorBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
       * @return Whether the pointColor field is set.
       */
      public boolean hasPointColor() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
       * @return The pointColor.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointColor() {
        if (pointColorBuilder_ == null) {
          return pointColor_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointColor_;
        } else {
          return pointColorBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
       */
      public Builder setPointColor(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (pointColorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pointColor_ = value;
        } else {
          pointColorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
       */
      public Builder setPointColor(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder builderForValue) {
        if (pointColorBuilder_ == null) {
          pointColor_ = builderForValue.build();
        } else {
          pointColorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
       */
      public Builder mergePointColor(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (pointColorBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            pointColor_ != null &&
            pointColor_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance()) {
            getPointColorBuilder().mergeFrom(value);
          } else {
            pointColor_ = value;
          }
        } else {
          pointColorBuilder_.mergeFrom(value);
        }
        if (pointColor_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
       */
      public Builder clearPointColor() {
        bitField0_ = (bitField0_ & ~0x00000008);
        pointColor_ = null;
        if (pointColorBuilder_ != null) {
          pointColorBuilder_.dispose();
          pointColorBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder getPointColorBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getPointColorFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointColorOrBuilder() {
        if (pointColorBuilder_ != null) {
          return pointColorBuilder_.getMessageOrBuilder();
        } else {
          return pointColor_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointColor_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_color = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> 
          getPointColorFieldBuilder() {
        if (pointColorBuilder_ == null) {
          pointColorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder>(
                  getPointColor(),
                  getParentForChildren(),
                  isClean());
          pointColor_ = null;
        }
        return pointColorBuilder_;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault linesVisible_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder> linesVisibleBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
       * @return Whether the linesVisible field is set.
       */
      public boolean hasLinesVisible() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
       * @return The linesVisible.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getLinesVisible() {
        if (linesVisibleBuilder_ == null) {
          return linesVisible_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : linesVisible_;
        } else {
          return linesVisibleBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
       */
      public Builder setLinesVisible(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault value) {
        if (linesVisibleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          linesVisible_ = value;
        } else {
          linesVisibleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
       */
      public Builder setLinesVisible(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder builderForValue) {
        if (linesVisibleBuilder_ == null) {
          linesVisible_ = builderForValue.build();
        } else {
          linesVisibleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
       */
      public Builder mergeLinesVisible(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault value) {
        if (linesVisibleBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            linesVisible_ != null &&
            linesVisible_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance()) {
            getLinesVisibleBuilder().mergeFrom(value);
          } else {
            linesVisible_ = value;
          }
        } else {
          linesVisibleBuilder_.mergeFrom(value);
        }
        if (linesVisible_ != null) {
          bitField0_ |= 0x00000010;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
       */
      public Builder clearLinesVisible() {
        bitField0_ = (bitField0_ & ~0x00000010);
        linesVisible_ = null;
        if (linesVisibleBuilder_ != null) {
          linesVisibleBuilder_.dispose();
          linesVisibleBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder getLinesVisibleBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getLinesVisibleFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder getLinesVisibleOrBuilder() {
        if (linesVisibleBuilder_ != null) {
          return linesVisibleBuilder_.getMessageOrBuilder();
        } else {
          return linesVisible_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : linesVisible_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault lines_visible = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder> 
          getLinesVisibleFieldBuilder() {
        if (linesVisibleBuilder_ == null) {
          linesVisibleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder>(
                  getLinesVisible(),
                  getParentForChildren(),
                  isClean());
          linesVisible_ = null;
        }
        return linesVisibleBuilder_;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault pointsVisible_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder> pointsVisibleBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
       * @return Whether the pointsVisible field is set.
       */
      public boolean hasPointsVisible() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
       * @return The pointsVisible.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getPointsVisible() {
        if (pointsVisibleBuilder_ == null) {
          return pointsVisible_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : pointsVisible_;
        } else {
          return pointsVisibleBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
       */
      public Builder setPointsVisible(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault value) {
        if (pointsVisibleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pointsVisible_ = value;
        } else {
          pointsVisibleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
       */
      public Builder setPointsVisible(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder builderForValue) {
        if (pointsVisibleBuilder_ == null) {
          pointsVisible_ = builderForValue.build();
        } else {
          pointsVisibleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
       */
      public Builder mergePointsVisible(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault value) {
        if (pointsVisibleBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            pointsVisible_ != null &&
            pointsVisible_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance()) {
            getPointsVisibleBuilder().mergeFrom(value);
          } else {
            pointsVisible_ = value;
          }
        } else {
          pointsVisibleBuilder_.mergeFrom(value);
        }
        if (pointsVisible_ != null) {
          bitField0_ |= 0x00000020;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
       */
      public Builder clearPointsVisible() {
        bitField0_ = (bitField0_ & ~0x00000020);
        pointsVisible_ = null;
        if (pointsVisibleBuilder_ != null) {
          pointsVisibleBuilder_.dispose();
          pointsVisibleBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder getPointsVisibleBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getPointsVisibleFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder getPointsVisibleOrBuilder() {
        if (pointsVisibleBuilder_ != null) {
          return pointsVisibleBuilder_.getMessageOrBuilder();
        } else {
          return pointsVisible_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : pointsVisible_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault points_visible = 6;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder> 
          getPointsVisibleFieldBuilder() {
        if (pointsVisibleBuilder_ == null) {
          pointsVisibleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder>(
                  getPointsVisible(),
                  getParentForChildren(),
                  isClean());
          pointsVisible_ = null;
        }
        return pointsVisibleBuilder_;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradientVisible_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder> gradientVisibleBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
       * @return Whether the gradientVisible field is set.
       */
      public boolean hasGradientVisible() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
       * @return The gradientVisible.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getGradientVisible() {
        if (gradientVisibleBuilder_ == null) {
          return gradientVisible_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : gradientVisible_;
        } else {
          return gradientVisibleBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
       */
      public Builder setGradientVisible(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault value) {
        if (gradientVisibleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gradientVisible_ = value;
        } else {
          gradientVisibleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
       */
      public Builder setGradientVisible(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder builderForValue) {
        if (gradientVisibleBuilder_ == null) {
          gradientVisible_ = builderForValue.build();
        } else {
          gradientVisibleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
       */
      public Builder mergeGradientVisible(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault value) {
        if (gradientVisibleBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            gradientVisible_ != null &&
            gradientVisible_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance()) {
            getGradientVisibleBuilder().mergeFrom(value);
          } else {
            gradientVisible_ = value;
          }
        } else {
          gradientVisibleBuilder_.mergeFrom(value);
        }
        if (gradientVisible_ != null) {
          bitField0_ |= 0x00000040;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
       */
      public Builder clearGradientVisible() {
        bitField0_ = (bitField0_ & ~0x00000040);
        gradientVisible_ = null;
        if (gradientVisibleBuilder_ != null) {
          gradientVisibleBuilder_.dispose();
          gradientVisibleBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder getGradientVisibleBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getGradientVisibleFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder getGradientVisibleOrBuilder() {
        if (gradientVisibleBuilder_ != null) {
          return gradientVisibleBuilder_.getMessageOrBuilder();
        } else {
          return gradientVisible_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance() : gradientVisible_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault gradient_visible = 7;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder> 
          getGradientVisibleFieldBuilder() {
        if (gradientVisibleBuilder_ == null) {
          gradientVisibleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder>(
                  getGradientVisible(),
                  getParentForChildren(),
                  isClean());
          gradientVisible_ = null;
        }
        return gradientVisibleBuilder_;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault pointLabelFormat_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> pointLabelFormatBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
       * @return Whether the pointLabelFormat field is set.
       */
      public boolean hasPointLabelFormat() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
       * @return The pointLabelFormat.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointLabelFormat() {
        if (pointLabelFormatBuilder_ == null) {
          return pointLabelFormat_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointLabelFormat_;
        } else {
          return pointLabelFormatBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
       */
      public Builder setPointLabelFormat(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (pointLabelFormatBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pointLabelFormat_ = value;
        } else {
          pointLabelFormatBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
       */
      public Builder setPointLabelFormat(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder builderForValue) {
        if (pointLabelFormatBuilder_ == null) {
          pointLabelFormat_ = builderForValue.build();
        } else {
          pointLabelFormatBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
       */
      public Builder mergePointLabelFormat(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (pointLabelFormatBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
            pointLabelFormat_ != null &&
            pointLabelFormat_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance()) {
            getPointLabelFormatBuilder().mergeFrom(value);
          } else {
            pointLabelFormat_ = value;
          }
        } else {
          pointLabelFormatBuilder_.mergeFrom(value);
        }
        if (pointLabelFormat_ != null) {
          bitField0_ |= 0x00000080;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
       */
      public Builder clearPointLabelFormat() {
        bitField0_ = (bitField0_ & ~0x00000080);
        pointLabelFormat_ = null;
        if (pointLabelFormatBuilder_ != null) {
          pointLabelFormatBuilder_.dispose();
          pointLabelFormatBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder getPointLabelFormatBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getPointLabelFormatFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointLabelFormatOrBuilder() {
        if (pointLabelFormatBuilder_ != null) {
          return pointLabelFormatBuilder_.getMessageOrBuilder();
        } else {
          return pointLabelFormat_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointLabelFormat_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label_format = 8;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> 
          getPointLabelFormatFieldBuilder() {
        if (pointLabelFormatBuilder_ == null) {
          pointLabelFormatBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder>(
                  getPointLabelFormat(),
                  getParentForChildren(),
                  isClean());
          pointLabelFormat_ = null;
        }
        return pointLabelFormatBuilder_;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault xToolTipPattern_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> xToolTipPatternBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
       * @return Whether the xToolTipPattern field is set.
       */
      public boolean hasXToolTipPattern() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
       * @return The xToolTipPattern.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getXToolTipPattern() {
        if (xToolTipPatternBuilder_ == null) {
          return xToolTipPattern_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : xToolTipPattern_;
        } else {
          return xToolTipPatternBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
       */
      public Builder setXToolTipPattern(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (xToolTipPatternBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          xToolTipPattern_ = value;
        } else {
          xToolTipPatternBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
       */
      public Builder setXToolTipPattern(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder builderForValue) {
        if (xToolTipPatternBuilder_ == null) {
          xToolTipPattern_ = builderForValue.build();
        } else {
          xToolTipPatternBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
       */
      public Builder mergeXToolTipPattern(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (xToolTipPatternBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0) &&
            xToolTipPattern_ != null &&
            xToolTipPattern_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance()) {
            getXToolTipPatternBuilder().mergeFrom(value);
          } else {
            xToolTipPattern_ = value;
          }
        } else {
          xToolTipPatternBuilder_.mergeFrom(value);
        }
        if (xToolTipPattern_ != null) {
          bitField0_ |= 0x00000100;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
       */
      public Builder clearXToolTipPattern() {
        bitField0_ = (bitField0_ & ~0x00000100);
        xToolTipPattern_ = null;
        if (xToolTipPatternBuilder_ != null) {
          xToolTipPatternBuilder_.dispose();
          xToolTipPatternBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder getXToolTipPatternBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getXToolTipPatternFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getXToolTipPatternOrBuilder() {
        if (xToolTipPatternBuilder_ != null) {
          return xToolTipPatternBuilder_.getMessageOrBuilder();
        } else {
          return xToolTipPattern_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : xToolTipPattern_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault x_tool_tip_pattern = 9;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> 
          getXToolTipPatternFieldBuilder() {
        if (xToolTipPatternBuilder_ == null) {
          xToolTipPatternBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder>(
                  getXToolTipPattern(),
                  getParentForChildren(),
                  isClean());
          xToolTipPattern_ = null;
        }
        return xToolTipPatternBuilder_;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault yToolTipPattern_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> yToolTipPatternBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
       * @return Whether the yToolTipPattern field is set.
       */
      public boolean hasYToolTipPattern() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
       * @return The yToolTipPattern.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getYToolTipPattern() {
        if (yToolTipPatternBuilder_ == null) {
          return yToolTipPattern_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : yToolTipPattern_;
        } else {
          return yToolTipPatternBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
       */
      public Builder setYToolTipPattern(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (yToolTipPatternBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          yToolTipPattern_ = value;
        } else {
          yToolTipPatternBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
       */
      public Builder setYToolTipPattern(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder builderForValue) {
        if (yToolTipPatternBuilder_ == null) {
          yToolTipPattern_ = builderForValue.build();
        } else {
          yToolTipPatternBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
       */
      public Builder mergeYToolTipPattern(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (yToolTipPatternBuilder_ == null) {
          if (((bitField0_ & 0x00000200) != 0) &&
            yToolTipPattern_ != null &&
            yToolTipPattern_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance()) {
            getYToolTipPatternBuilder().mergeFrom(value);
          } else {
            yToolTipPattern_ = value;
          }
        } else {
          yToolTipPatternBuilder_.mergeFrom(value);
        }
        if (yToolTipPattern_ != null) {
          bitField0_ |= 0x00000200;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
       */
      public Builder clearYToolTipPattern() {
        bitField0_ = (bitField0_ & ~0x00000200);
        yToolTipPattern_ = null;
        if (yToolTipPatternBuilder_ != null) {
          yToolTipPatternBuilder_.dispose();
          yToolTipPatternBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder getYToolTipPatternBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getYToolTipPatternFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getYToolTipPatternOrBuilder() {
        if (yToolTipPatternBuilder_ != null) {
          return yToolTipPatternBuilder_.getMessageOrBuilder();
        } else {
          return yToolTipPattern_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : yToolTipPattern_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault y_tool_tip_pattern = 10;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> 
          getYToolTipPatternFieldBuilder() {
        if (yToolTipPatternBuilder_ == null) {
          yToolTipPatternBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder>(
                  getYToolTipPattern(),
                  getParentForChildren(),
                  isClean());
          yToolTipPattern_ = null;
        }
        return yToolTipPatternBuilder_;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault pointLabel_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> pointLabelBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
       * @return Whether the pointLabel field is set.
       */
      public boolean hasPointLabel() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
       * @return The pointLabel.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointLabel() {
        if (pointLabelBuilder_ == null) {
          return pointLabel_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointLabel_;
        } else {
          return pointLabelBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
       */
      public Builder setPointLabel(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (pointLabelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pointLabel_ = value;
        } else {
          pointLabelBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
       */
      public Builder setPointLabel(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder builderForValue) {
        if (pointLabelBuilder_ == null) {
          pointLabel_ = builderForValue.build();
        } else {
          pointLabelBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
       */
      public Builder mergePointLabel(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (pointLabelBuilder_ == null) {
          if (((bitField0_ & 0x00000400) != 0) &&
            pointLabel_ != null &&
            pointLabel_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance()) {
            getPointLabelBuilder().mergeFrom(value);
          } else {
            pointLabel_ = value;
          }
        } else {
          pointLabelBuilder_.mergeFrom(value);
        }
        if (pointLabel_ != null) {
          bitField0_ |= 0x00000400;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
       */
      public Builder clearPointLabel() {
        bitField0_ = (bitField0_ & ~0x00000400);
        pointLabel_ = null;
        if (pointLabelBuilder_ != null) {
          pointLabelBuilder_.dispose();
          pointLabelBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder getPointLabelBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getPointLabelFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointLabelOrBuilder() {
        if (pointLabelBuilder_ != null) {
          return pointLabelBuilder_.getMessageOrBuilder();
        } else {
          return pointLabel_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointLabel_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_label = 11;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> 
          getPointLabelFieldBuilder() {
        if (pointLabelBuilder_ == null) {
          pointLabelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder>(
                  getPointLabel(),
                  getParentForChildren(),
                  isClean());
          pointLabel_ = null;
        }
        return pointLabelBuilder_;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault pointSize_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefaultOrBuilder> pointSizeBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
       * @return Whether the pointSize field is set.
       */
      public boolean hasPointSize() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
       * @return The pointSize.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault getPointSize() {
        if (pointSizeBuilder_ == null) {
          return pointSize_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.getDefaultInstance() : pointSize_;
        } else {
          return pointSizeBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
       */
      public Builder setPointSize(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault value) {
        if (pointSizeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pointSize_ = value;
        } else {
          pointSizeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
       */
      public Builder setPointSize(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.Builder builderForValue) {
        if (pointSizeBuilder_ == null) {
          pointSize_ = builderForValue.build();
        } else {
          pointSizeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
       */
      public Builder mergePointSize(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault value) {
        if (pointSizeBuilder_ == null) {
          if (((bitField0_ & 0x00000800) != 0) &&
            pointSize_ != null &&
            pointSize_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.getDefaultInstance()) {
            getPointSizeBuilder().mergeFrom(value);
          } else {
            pointSize_ = value;
          }
        } else {
          pointSizeBuilder_.mergeFrom(value);
        }
        if (pointSize_ != null) {
          bitField0_ |= 0x00000800;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
       */
      public Builder clearPointSize() {
        bitField0_ = (bitField0_ & ~0x00000800);
        pointSize_ = null;
        if (pointSizeBuilder_ != null) {
          pointSizeBuilder_.dispose();
          pointSizeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.Builder getPointSizeBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getPointSizeFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefaultOrBuilder getPointSizeOrBuilder() {
        if (pointSizeBuilder_ != null) {
          return pointSizeBuilder_.getMessageOrBuilder();
        } else {
          return pointSize_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.getDefaultInstance() : pointSize_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault point_size = 12;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefaultOrBuilder> 
          getPointSizeFieldBuilder() {
        if (pointSizeBuilder_ == null) {
          pointSizeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefaultOrBuilder>(
                  getPointSize(),
                  getParentForChildren(),
                  isClean());
          pointSize_ = null;
        }
        return pointSizeBuilder_;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault pointShape_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> pointShapeBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
       * @return Whether the pointShape field is set.
       */
      public boolean hasPointShape() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
       * @return The pointShape.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getPointShape() {
        if (pointShapeBuilder_ == null) {
          return pointShape_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointShape_;
        } else {
          return pointShapeBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
       */
      public Builder setPointShape(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (pointShapeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pointShape_ = value;
        } else {
          pointShapeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
       */
      public Builder setPointShape(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder builderForValue) {
        if (pointShapeBuilder_ == null) {
          pointShape_ = builderForValue.build();
        } else {
          pointShapeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
       */
      public Builder mergePointShape(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault value) {
        if (pointShapeBuilder_ == null) {
          if (((bitField0_ & 0x00001000) != 0) &&
            pointShape_ != null &&
            pointShape_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance()) {
            getPointShapeBuilder().mergeFrom(value);
          } else {
            pointShape_ = value;
          }
        } else {
          pointShapeBuilder_.mergeFrom(value);
        }
        if (pointShape_ != null) {
          bitField0_ |= 0x00001000;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
       */
      public Builder clearPointShape() {
        bitField0_ = (bitField0_ & ~0x00001000);
        pointShape_ = null;
        if (pointShapeBuilder_ != null) {
          pointShapeBuilder_.dispose();
          pointShapeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder getPointShapeBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getPointShapeFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder getPointShapeOrBuilder() {
        if (pointShapeBuilder_ != null) {
          return pointShapeBuilder_.getMessageOrBuilder();
        } else {
          return pointShape_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance() : pointShape_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault point_shape = 13;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder> 
          getPointShapeFieldBuilder() {
        if (pointShapeBuilder_ == null) {
          pointShapeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder>(
                  getPointShape(),
                  getParentForChildren(),
                  isClean());
          pointShape_ = null;
        }
        return pointShapeBuilder_;
      }

      private java.util.List dataSources_ =
        java.util.Collections.emptyList();
      private void ensureDataSourcesIsMutable() {
        if (!((bitField0_ & 0x00002000) != 0)) {
          dataSources_ = new java.util.ArrayList(dataSources_);
          bitField0_ |= 0x00002000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptorOrBuilder> dataSourcesBuilder_;

      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public java.util.List getDataSourcesList() {
        if (dataSourcesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dataSources_);
        } else {
          return dataSourcesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public int getDataSourcesCount() {
        if (dataSourcesBuilder_ == null) {
          return dataSources_.size();
        } else {
          return dataSourcesBuilder_.getCount();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor getDataSources(int index) {
        if (dataSourcesBuilder_ == null) {
          return dataSources_.get(index);
        } else {
          return dataSourcesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public Builder setDataSources(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor value) {
        if (dataSourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataSourcesIsMutable();
          dataSources_.set(index, value);
          onChanged();
        } else {
          dataSourcesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public Builder setDataSources(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder builderForValue) {
        if (dataSourcesBuilder_ == null) {
          ensureDataSourcesIsMutable();
          dataSources_.set(index, builderForValue.build());
          onChanged();
        } else {
          dataSourcesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public Builder addDataSources(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor value) {
        if (dataSourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataSourcesIsMutable();
          dataSources_.add(value);
          onChanged();
        } else {
          dataSourcesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public Builder addDataSources(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor value) {
        if (dataSourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataSourcesIsMutable();
          dataSources_.add(index, value);
          onChanged();
        } else {
          dataSourcesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public Builder addDataSources(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder builderForValue) {
        if (dataSourcesBuilder_ == null) {
          ensureDataSourcesIsMutable();
          dataSources_.add(builderForValue.build());
          onChanged();
        } else {
          dataSourcesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public Builder addDataSources(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder builderForValue) {
        if (dataSourcesBuilder_ == null) {
          ensureDataSourcesIsMutable();
          dataSources_.add(index, builderForValue.build());
          onChanged();
        } else {
          dataSourcesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public Builder addAllDataSources(
          java.lang.Iterable values) {
        if (dataSourcesBuilder_ == null) {
          ensureDataSourcesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dataSources_);
          onChanged();
        } else {
          dataSourcesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public Builder clearDataSources() {
        if (dataSourcesBuilder_ == null) {
          dataSources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
          onChanged();
        } else {
          dataSourcesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public Builder removeDataSources(int index) {
        if (dataSourcesBuilder_ == null) {
          ensureDataSourcesIsMutable();
          dataSources_.remove(index);
          onChanged();
        } else {
          dataSourcesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder getDataSourcesBuilder(
          int index) {
        return getDataSourcesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptorOrBuilder getDataSourcesOrBuilder(
          int index) {
        if (dataSourcesBuilder_ == null) {
          return dataSources_.get(index);  } else {
          return dataSourcesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public java.util.List 
           getDataSourcesOrBuilderList() {
        if (dataSourcesBuilder_ != null) {
          return dataSourcesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dataSources_);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder addDataSourcesBuilder() {
        return getDataSourcesFieldBuilder().addBuilder(
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder addDataSourcesBuilder(
          int index) {
        return getDataSourcesFieldBuilder().addBuilder(
            index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor data_sources = 14;
       */
      public java.util.List 
           getDataSourcesBuilderList() {
        return getDataSourcesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptorOrBuilder> 
          getDataSourcesFieldBuilder() {
        if (dataSourcesBuilder_ == null) {
          dataSourcesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptorOrBuilder>(
                  dataSources_,
                  ((bitField0_ & 0x00002000) != 0),
                  getParentForChildren(),
                  isClean());
          dataSources_ = null;
        }
        return dataSourcesBuilder_;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public MultiSeriesDescriptor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesDescriptor getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StringMapWithDefaultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string default_string = 1;
     * @return Whether the defaultString field is set.
     */
    boolean hasDefaultString();
    /**
     * optional string default_string = 1;
     * @return The defaultString.
     */
    java.lang.String getDefaultString();
    /**
     * optional string default_string = 1;
     * @return The bytes for defaultString.
     */
    com.google.protobuf.ByteString
        getDefaultStringBytes();

    /**
     * repeated string keys = 2;
     * @return A list containing the keys.
     */
    java.util.List
        getKeysList();
    /**
     * repeated string keys = 2;
     * @return The count of keys.
     */
    int getKeysCount();
    /**
     * repeated string keys = 2;
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    java.lang.String getKeys(int index);
    /**
     * repeated string keys = 2;
     * @param index The index of the value to return.
     * @return The bytes of the keys at the given index.
     */
    com.google.protobuf.ByteString
        getKeysBytes(int index);

    /**
     * repeated string values = 3;
     * @return A list containing the values.
     */
    java.util.List
        getValuesList();
    /**
     * repeated string values = 3;
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * repeated string values = 3;
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    java.lang.String getValues(int index);
    /**
     * repeated string values = 3;
     * @param index The index of the value to return.
     * @return The bytes of the values at the given index.
     */
    com.google.protobuf.ByteString
        getValuesBytes(int index);
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault}
   */
  public static final class StringMapWithDefault extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault)
      StringMapWithDefaultOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StringMapWithDefault.newBuilder() to construct.
    private StringMapWithDefault(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private StringMapWithDefault() {
      defaultString_ = "";
      keys_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      values_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_StringMapWithDefault_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_StringMapWithDefault_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder.class);
    }

    private int bitField0_;
    public static final int DEFAULT_STRING_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object defaultString_ = "";
    /**
     * optional string default_string = 1;
     * @return Whether the defaultString field is set.
     */
    @java.lang.Override
    public boolean hasDefaultString() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string default_string = 1;
     * @return The defaultString.
     */
    @java.lang.Override
    public java.lang.String getDefaultString() {
      java.lang.Object ref = defaultString_;
      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();
        defaultString_ = s;
        return s;
      }
    }
    /**
     * optional string default_string = 1;
     * @return The bytes for defaultString.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDefaultStringBytes() {
      java.lang.Object ref = defaultString_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        defaultString_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KEYS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList keys_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string keys = 2;
     * @return A list containing the keys.
     */
    public com.google.protobuf.ProtocolStringList
        getKeysList() {
      return keys_;
    }
    /**
     * repeated string keys = 2;
     * @return The count of keys.
     */
    public int getKeysCount() {
      return keys_.size();
    }
    /**
     * repeated string keys = 2;
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    public java.lang.String getKeys(int index) {
      return keys_.get(index);
    }
    /**
     * repeated string keys = 2;
     * @param index The index of the value to return.
     * @return The bytes of the keys at the given index.
     */
    public com.google.protobuf.ByteString
        getKeysBytes(int index) {
      return keys_.getByteString(index);
    }

    public static final int VALUES_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList values_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string values = 3;
     * @return A list containing the values.
     */
    public com.google.protobuf.ProtocolStringList
        getValuesList() {
      return values_;
    }
    /**
     * repeated string values = 3;
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * repeated string values = 3;
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public java.lang.String getValues(int index) {
      return values_.get(index);
    }
    /**
     * repeated string values = 3;
     * @param index The index of the value to return.
     * @return The bytes of the values at the given index.
     */
    public com.google.protobuf.ByteString
        getValuesBytes(int index) {
      return values_.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 (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, defaultString_);
      }
      for (int i = 0; i < keys_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, keys_.getRaw(i));
      }
      for (int i = 0; i < values_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, values_.getRaw(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, defaultString_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < keys_.size(); i++) {
          dataSize += computeStringSizeNoTag(keys_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getKeysList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < values_.size(); i++) {
          dataSize += computeStringSizeNoTag(values_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getValuesList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault) obj;

      if (hasDefaultString() != other.hasDefaultString()) return false;
      if (hasDefaultString()) {
        if (!getDefaultString()
            .equals(other.getDefaultString())) return false;
      }
      if (!getKeysList()
          .equals(other.getKeysList())) return false;
      if (!getValuesList()
          .equals(other.getValuesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDefaultString()) {
        hash = (37 * hash) + DEFAULT_STRING_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultString().hashCode();
      }
      if (getKeysCount() > 0) {
        hash = (37 * hash) + KEYS_FIELD_NUMBER;
        hash = (53 * hash) + getKeysList().hashCode();
      }
      if (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefaultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_StringMapWithDefault_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_StringMapWithDefault_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        defaultString_ = "";
        keys_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        values_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_StringMapWithDefault_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.defaultString_ = defaultString_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          keys_.makeImmutable();
          result.keys_ = keys_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault.getDefaultInstance()) return this;
        if (other.hasDefaultString()) {
          defaultString_ = other.defaultString_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.keys_.isEmpty()) {
          if (keys_.isEmpty()) {
            keys_ = other.keys_;
            bitField0_ |= 0x00000002;
          } else {
            ensureKeysIsMutable();
            keys_.addAll(other.keys_);
          }
          onChanged();
        }
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            bitField0_ |= 0x00000004;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                defaultString_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureKeysIsMutable();
                keys_.add(s);
                break;
              } // case 18
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureValuesIsMutable();
                values_.add(s);
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object defaultString_ = "";
      /**
       * optional string default_string = 1;
       * @return Whether the defaultString field is set.
       */
      public boolean hasDefaultString() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional string default_string = 1;
       * @return The defaultString.
       */
      public java.lang.String getDefaultString() {
        java.lang.Object ref = defaultString_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          defaultString_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string default_string = 1;
       * @return The bytes for defaultString.
       */
      public com.google.protobuf.ByteString
          getDefaultStringBytes() {
        java.lang.Object ref = defaultString_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          defaultString_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string default_string = 1;
       * @param value The defaultString to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultString(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        defaultString_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional string default_string = 1;
       * @return This builder for chaining.
       */
      public Builder clearDefaultString() {
        defaultString_ = getDefaultInstance().getDefaultString();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * optional string default_string = 1;
       * @param value The bytes for defaultString to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultStringBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        defaultString_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList keys_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureKeysIsMutable() {
        if (!keys_.isModifiable()) {
          keys_ = new com.google.protobuf.LazyStringArrayList(keys_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * repeated string keys = 2;
       * @return A list containing the keys.
       */
      public com.google.protobuf.ProtocolStringList
          getKeysList() {
        keys_.makeImmutable();
        return keys_;
      }
      /**
       * repeated string keys = 2;
       * @return The count of keys.
       */
      public int getKeysCount() {
        return keys_.size();
      }
      /**
       * repeated string keys = 2;
       * @param index The index of the element to return.
       * @return The keys at the given index.
       */
      public java.lang.String getKeys(int index) {
        return keys_.get(index);
      }
      /**
       * repeated string keys = 2;
       * @param index The index of the value to return.
       * @return The bytes of the keys at the given index.
       */
      public com.google.protobuf.ByteString
          getKeysBytes(int index) {
        return keys_.getByteString(index);
      }
      /**
       * repeated string keys = 2;
       * @param index The index to set the value at.
       * @param value The keys to set.
       * @return This builder for chaining.
       */
      public Builder setKeys(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureKeysIsMutable();
        keys_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @param value The keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeys(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureKeysIsMutable();
        keys_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @param values The keys to add.
       * @return This builder for chaining.
       */
      public Builder addAllKeys(
          java.lang.Iterable values) {
        ensureKeysIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, keys_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @return This builder for chaining.
       */
      public Builder clearKeys() {
        keys_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @param value The bytes of the keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeysBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureKeysIsMutable();
        keys_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList values_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = new com.google.protobuf.LazyStringArrayList(values_);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * repeated string values = 3;
       * @return A list containing the values.
       */
      public com.google.protobuf.ProtocolStringList
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * repeated string values = 3;
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * repeated string values = 3;
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public java.lang.String getValues(int index) {
        return values_.get(index);
      }
      /**
       * repeated string values = 3;
       * @param index The index of the value to return.
       * @return The bytes of the values at the given index.
       */
      public com.google.protobuf.ByteString
          getValuesBytes(int index) {
        return values_.getByteString(index);
      }
      /**
       * repeated string values = 3;
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureValuesIsMutable();
        values_.set(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated string values = 3;
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureValuesIsMutable();
        values_.add(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated string values = 3;
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated string values = 3;
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);;
        onChanged();
        return this;
      }
      /**
       * repeated string values = 3;
       * @param value The bytes of the values to add.
       * @return This builder for chaining.
       */
      public Builder addValuesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureValuesIsMutable();
        values_.add(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public StringMapWithDefault parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.StringMapWithDefault getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DoubleMapWithDefaultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional double default_double = 1;
     * @return Whether the defaultDouble field is set.
     */
    boolean hasDefaultDouble();
    /**
     * optional double default_double = 1;
     * @return The defaultDouble.
     */
    double getDefaultDouble();

    /**
     * repeated string keys = 2;
     * @return A list containing the keys.
     */
    java.util.List
        getKeysList();
    /**
     * repeated string keys = 2;
     * @return The count of keys.
     */
    int getKeysCount();
    /**
     * repeated string keys = 2;
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    java.lang.String getKeys(int index);
    /**
     * repeated string keys = 2;
     * @param index The index of the value to return.
     * @return The bytes of the keys at the given index.
     */
    com.google.protobuf.ByteString
        getKeysBytes(int index);

    /**
     * repeated double values = 3;
     * @return A list containing the values.
     */
    java.util.List getValuesList();
    /**
     * repeated double values = 3;
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * repeated double values = 3;
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    double getValues(int index);
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault}
   */
  public static final class DoubleMapWithDefault extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault)
      DoubleMapWithDefaultOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DoubleMapWithDefault.newBuilder() to construct.
    private DoubleMapWithDefault(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private DoubleMapWithDefault() {
      keys_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      values_ = emptyDoubleList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_DoubleMapWithDefault_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_DoubleMapWithDefault_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.Builder.class);
    }

    private int bitField0_;
    public static final int DEFAULT_DOUBLE_FIELD_NUMBER = 1;
    private double defaultDouble_ = 0D;
    /**
     * optional double default_double = 1;
     * @return Whether the defaultDouble field is set.
     */
    @java.lang.Override
    public boolean hasDefaultDouble() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional double default_double = 1;
     * @return The defaultDouble.
     */
    @java.lang.Override
    public double getDefaultDouble() {
      return defaultDouble_;
    }

    public static final int KEYS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList keys_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string keys = 2;
     * @return A list containing the keys.
     */
    public com.google.protobuf.ProtocolStringList
        getKeysList() {
      return keys_;
    }
    /**
     * repeated string keys = 2;
     * @return The count of keys.
     */
    public int getKeysCount() {
      return keys_.size();
    }
    /**
     * repeated string keys = 2;
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    public java.lang.String getKeys(int index) {
      return keys_.get(index);
    }
    /**
     * repeated string keys = 2;
     * @param index The index of the value to return.
     * @return The bytes of the keys at the given index.
     */
    public com.google.protobuf.ByteString
        getKeysBytes(int index) {
      return keys_.getByteString(index);
    }

    public static final int VALUES_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.DoubleList values_ =
        emptyDoubleList();
    /**
     * repeated double values = 3;
     * @return A list containing the values.
     */
    @java.lang.Override
    public java.util.List
        getValuesList() {
      return values_;
    }
    /**
     * repeated double values = 3;
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * repeated double values = 3;
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public double getValues(int index) {
      return values_.getDouble(index);
    }
    private int valuesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeDouble(1, defaultDouble_);
      }
      for (int i = 0; i < keys_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, keys_.getRaw(i));
      }
      if (getValuesList().size() > 0) {
        output.writeUInt32NoTag(26);
        output.writeUInt32NoTag(valuesMemoizedSerializedSize);
      }
      for (int i = 0; i < values_.size(); i++) {
        output.writeDoubleNoTag(values_.getDouble(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, defaultDouble_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < keys_.size(); i++) {
          dataSize += computeStringSizeNoTag(keys_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getKeysList().size();
      }
      {
        int dataSize = 0;
        dataSize = 8 * getValuesList().size();
        size += dataSize;
        if (!getValuesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        valuesMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault) obj;

      if (hasDefaultDouble() != other.hasDefaultDouble()) return false;
      if (hasDefaultDouble()) {
        if (java.lang.Double.doubleToLongBits(getDefaultDouble())
            != java.lang.Double.doubleToLongBits(
                other.getDefaultDouble())) return false;
      }
      if (!getKeysList()
          .equals(other.getKeysList())) return false;
      if (!getValuesList()
          .equals(other.getValuesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDefaultDouble()) {
        hash = (37 * hash) + DEFAULT_DOUBLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getDefaultDouble()));
      }
      if (getKeysCount() > 0) {
        hash = (37 * hash) + KEYS_FIELD_NUMBER;
        hash = (53 * hash) + getKeysList().hashCode();
      }
      if (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefaultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_DoubleMapWithDefault_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_DoubleMapWithDefault_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        defaultDouble_ = 0D;
        keys_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        values_ = emptyDoubleList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_DoubleMapWithDefault_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.defaultDouble_ = defaultDouble_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          keys_.makeImmutable();
          result.keys_ = keys_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault.getDefaultInstance()) return this;
        if (other.hasDefaultDouble()) {
          setDefaultDouble(other.getDefaultDouble());
        }
        if (!other.keys_.isEmpty()) {
          if (keys_.isEmpty()) {
            keys_ = other.keys_;
            bitField0_ |= 0x00000002;
          } else {
            ensureKeysIsMutable();
            keys_.addAll(other.keys_);
          }
          onChanged();
        }
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            values_.makeImmutable();
            bitField0_ |= 0x00000004;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                defaultDouble_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureKeysIsMutable();
                keys_.add(s);
                break;
              } // case 18
              case 25: {
                double v = input.readDouble();
                ensureValuesIsMutable();
                values_.addDouble(v);
                break;
              } // case 25
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureValuesIsMutable(alloc / 8);
                while (input.getBytesUntilLimit() > 0) {
                  values_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private double defaultDouble_ ;
      /**
       * optional double default_double = 1;
       * @return Whether the defaultDouble field is set.
       */
      @java.lang.Override
      public boolean hasDefaultDouble() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional double default_double = 1;
       * @return The defaultDouble.
       */
      @java.lang.Override
      public double getDefaultDouble() {
        return defaultDouble_;
      }
      /**
       * optional double default_double = 1;
       * @param value The defaultDouble to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultDouble(double value) {

        defaultDouble_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional double default_double = 1;
       * @return This builder for chaining.
       */
      public Builder clearDefaultDouble() {
        bitField0_ = (bitField0_ & ~0x00000001);
        defaultDouble_ = 0D;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList keys_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureKeysIsMutable() {
        if (!keys_.isModifiable()) {
          keys_ = new com.google.protobuf.LazyStringArrayList(keys_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * repeated string keys = 2;
       * @return A list containing the keys.
       */
      public com.google.protobuf.ProtocolStringList
          getKeysList() {
        keys_.makeImmutable();
        return keys_;
      }
      /**
       * repeated string keys = 2;
       * @return The count of keys.
       */
      public int getKeysCount() {
        return keys_.size();
      }
      /**
       * repeated string keys = 2;
       * @param index The index of the element to return.
       * @return The keys at the given index.
       */
      public java.lang.String getKeys(int index) {
        return keys_.get(index);
      }
      /**
       * repeated string keys = 2;
       * @param index The index of the value to return.
       * @return The bytes of the keys at the given index.
       */
      public com.google.protobuf.ByteString
          getKeysBytes(int index) {
        return keys_.getByteString(index);
      }
      /**
       * repeated string keys = 2;
       * @param index The index to set the value at.
       * @param value The keys to set.
       * @return This builder for chaining.
       */
      public Builder setKeys(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureKeysIsMutable();
        keys_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @param value The keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeys(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureKeysIsMutable();
        keys_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @param values The keys to add.
       * @return This builder for chaining.
       */
      public Builder addAllKeys(
          java.lang.Iterable values) {
        ensureKeysIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, keys_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @return This builder for chaining.
       */
      public Builder clearKeys() {
        keys_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @param value The bytes of the keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeysBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureKeysIsMutable();
        keys_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.DoubleList values_ = emptyDoubleList();
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_);
        }
        bitField0_ |= 0x00000004;
      }
      private void ensureValuesIsMutable(int capacity) {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_, capacity);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * repeated double values = 3;
       * @return A list containing the values.
       */
      public java.util.List
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * repeated double values = 3;
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * repeated double values = 3;
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public double getValues(int index) {
        return values_.getDouble(index);
      }
      /**
       * repeated double values = 3;
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, double value) {

        ensureValuesIsMutable();
        values_.setDouble(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated double values = 3;
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(double value) {

        ensureValuesIsMutable();
        values_.addDouble(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated double values = 3;
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated double values = 3;
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public DoubleMapWithDefault parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.DoubleMapWithDefault getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BoolMapWithDefaultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional bool default_bool = 1;
     * @return Whether the defaultBool field is set.
     */
    boolean hasDefaultBool();
    /**
     * optional bool default_bool = 1;
     * @return The defaultBool.
     */
    boolean getDefaultBool();

    /**
     * repeated string keys = 2;
     * @return A list containing the keys.
     */
    java.util.List
        getKeysList();
    /**
     * repeated string keys = 2;
     * @return The count of keys.
     */
    int getKeysCount();
    /**
     * repeated string keys = 2;
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    java.lang.String getKeys(int index);
    /**
     * repeated string keys = 2;
     * @param index The index of the value to return.
     * @return The bytes of the keys at the given index.
     */
    com.google.protobuf.ByteString
        getKeysBytes(int index);

    /**
     * repeated bool values = 3;
     * @return A list containing the values.
     */
    java.util.List getValuesList();
    /**
     * repeated bool values = 3;
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * repeated bool values = 3;
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    boolean getValues(int index);
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault}
   */
  public static final class BoolMapWithDefault extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault)
      BoolMapWithDefaultOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BoolMapWithDefault.newBuilder() to construct.
    private BoolMapWithDefault(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private BoolMapWithDefault() {
      keys_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      values_ = emptyBooleanList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BoolMapWithDefault_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BoolMapWithDefault_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder.class);
    }

    private int bitField0_;
    public static final int DEFAULT_BOOL_FIELD_NUMBER = 1;
    private boolean defaultBool_ = false;
    /**
     * optional bool default_bool = 1;
     * @return Whether the defaultBool field is set.
     */
    @java.lang.Override
    public boolean hasDefaultBool() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional bool default_bool = 1;
     * @return The defaultBool.
     */
    @java.lang.Override
    public boolean getDefaultBool() {
      return defaultBool_;
    }

    public static final int KEYS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList keys_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string keys = 2;
     * @return A list containing the keys.
     */
    public com.google.protobuf.ProtocolStringList
        getKeysList() {
      return keys_;
    }
    /**
     * repeated string keys = 2;
     * @return The count of keys.
     */
    public int getKeysCount() {
      return keys_.size();
    }
    /**
     * repeated string keys = 2;
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    public java.lang.String getKeys(int index) {
      return keys_.get(index);
    }
    /**
     * repeated string keys = 2;
     * @param index The index of the value to return.
     * @return The bytes of the keys at the given index.
     */
    public com.google.protobuf.ByteString
        getKeysBytes(int index) {
      return keys_.getByteString(index);
    }

    public static final int VALUES_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.BooleanList values_ =
        emptyBooleanList();
    /**
     * repeated bool values = 3;
     * @return A list containing the values.
     */
    @java.lang.Override
    public java.util.List
        getValuesList() {
      return values_;
    }
    /**
     * repeated bool values = 3;
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * repeated bool values = 3;
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public boolean getValues(int index) {
      return values_.getBoolean(index);
    }
    private int valuesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBool(1, defaultBool_);
      }
      for (int i = 0; i < keys_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, keys_.getRaw(i));
      }
      if (getValuesList().size() > 0) {
        output.writeUInt32NoTag(26);
        output.writeUInt32NoTag(valuesMemoizedSerializedSize);
      }
      for (int i = 0; i < values_.size(); i++) {
        output.writeBoolNoTag(values_.getBoolean(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, defaultBool_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < keys_.size(); i++) {
          dataSize += computeStringSizeNoTag(keys_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getKeysList().size();
      }
      {
        int dataSize = 0;
        dataSize = 1 * getValuesList().size();
        size += dataSize;
        if (!getValuesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        valuesMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault) obj;

      if (hasDefaultBool() != other.hasDefaultBool()) return false;
      if (hasDefaultBool()) {
        if (getDefaultBool()
            != other.getDefaultBool()) return false;
      }
      if (!getKeysList()
          .equals(other.getKeysList())) return false;
      if (!getValuesList()
          .equals(other.getValuesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDefaultBool()) {
        hash = (37 * hash) + DEFAULT_BOOL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getDefaultBool());
      }
      if (getKeysCount() > 0) {
        hash = (37 * hash) + KEYS_FIELD_NUMBER;
        hash = (53 * hash) + getKeysList().hashCode();
      }
      if (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefaultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BoolMapWithDefault_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BoolMapWithDefault_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        defaultBool_ = false;
        keys_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        values_ = emptyBooleanList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BoolMapWithDefault_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.defaultBool_ = defaultBool_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          keys_.makeImmutable();
          result.keys_ = keys_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault.getDefaultInstance()) return this;
        if (other.hasDefaultBool()) {
          setDefaultBool(other.getDefaultBool());
        }
        if (!other.keys_.isEmpty()) {
          if (keys_.isEmpty()) {
            keys_ = other.keys_;
            bitField0_ |= 0x00000002;
          } else {
            ensureKeysIsMutable();
            keys_.addAll(other.keys_);
          }
          onChanged();
        }
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            values_.makeImmutable();
            bitField0_ |= 0x00000004;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                defaultBool_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureKeysIsMutable();
                keys_.add(s);
                break;
              } // case 18
              case 24: {
                boolean v = input.readBool();
                ensureValuesIsMutable();
                values_.addBoolean(v);
                break;
              } // case 24
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureValuesIsMutable(alloc / 1);
                while (input.getBytesUntilLimit() > 0) {
                  values_.addBoolean(input.readBool());
                }
                input.popLimit(limit);
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private boolean defaultBool_ ;
      /**
       * optional bool default_bool = 1;
       * @return Whether the defaultBool field is set.
       */
      @java.lang.Override
      public boolean hasDefaultBool() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional bool default_bool = 1;
       * @return The defaultBool.
       */
      @java.lang.Override
      public boolean getDefaultBool() {
        return defaultBool_;
      }
      /**
       * optional bool default_bool = 1;
       * @param value The defaultBool to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultBool(boolean value) {

        defaultBool_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional bool default_bool = 1;
       * @return This builder for chaining.
       */
      public Builder clearDefaultBool() {
        bitField0_ = (bitField0_ & ~0x00000001);
        defaultBool_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList keys_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureKeysIsMutable() {
        if (!keys_.isModifiable()) {
          keys_ = new com.google.protobuf.LazyStringArrayList(keys_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * repeated string keys = 2;
       * @return A list containing the keys.
       */
      public com.google.protobuf.ProtocolStringList
          getKeysList() {
        keys_.makeImmutable();
        return keys_;
      }
      /**
       * repeated string keys = 2;
       * @return The count of keys.
       */
      public int getKeysCount() {
        return keys_.size();
      }
      /**
       * repeated string keys = 2;
       * @param index The index of the element to return.
       * @return The keys at the given index.
       */
      public java.lang.String getKeys(int index) {
        return keys_.get(index);
      }
      /**
       * repeated string keys = 2;
       * @param index The index of the value to return.
       * @return The bytes of the keys at the given index.
       */
      public com.google.protobuf.ByteString
          getKeysBytes(int index) {
        return keys_.getByteString(index);
      }
      /**
       * repeated string keys = 2;
       * @param index The index to set the value at.
       * @param value The keys to set.
       * @return This builder for chaining.
       */
      public Builder setKeys(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureKeysIsMutable();
        keys_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @param value The keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeys(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureKeysIsMutable();
        keys_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @param values The keys to add.
       * @return This builder for chaining.
       */
      public Builder addAllKeys(
          java.lang.Iterable values) {
        ensureKeysIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, keys_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @return This builder for chaining.
       */
      public Builder clearKeys() {
        keys_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * repeated string keys = 2;
       * @param value The bytes of the keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeysBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureKeysIsMutable();
        keys_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.BooleanList values_ = emptyBooleanList();
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_);
        }
        bitField0_ |= 0x00000004;
      }
      private void ensureValuesIsMutable(int capacity) {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_, capacity);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * repeated bool values = 3;
       * @return A list containing the values.
       */
      public java.util.List
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * repeated bool values = 3;
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * repeated bool values = 3;
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public boolean getValues(int index) {
        return values_.getBoolean(index);
      }
      /**
       * repeated bool values = 3;
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, boolean value) {

        ensureValuesIsMutable();
        values_.setBoolean(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated bool values = 3;
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(boolean value) {

        ensureValuesIsMutable();
        values_.addBoolean(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated bool values = 3;
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * repeated bool values = 3;
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ = emptyBooleanList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public BoolMapWithDefault parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BoolMapWithDefault getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AxisDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string id = 1;
     * @return The id.
     */
    java.lang.String getId();
    /**
     * string id = 1;
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType format_type = 2;
     * @return The enum numeric value on the wire for formatType.
     */
    int getFormatTypeValue();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType format_type = 2;
     * @return The formatType.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType getFormatType();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType type = 3;
     * @return The enum numeric value on the wire for type.
     */
    int getTypeValue();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType type = 3;
     * @return The type.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType getType();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition position = 4;
     * @return The enum numeric value on the wire for position.
     */
    int getPositionValue();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition position = 4;
     * @return The position.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition getPosition();

    /**
     * bool log = 5;
     * @return The log.
     */
    boolean getLog();

    /**
     * string label = 6;
     * @return The label.
     */
    java.lang.String getLabel();
    /**
     * string label = 6;
     * @return The bytes for label.
     */
    com.google.protobuf.ByteString
        getLabelBytes();

    /**
     * string label_font = 7;
     * @return The labelFont.
     */
    java.lang.String getLabelFont();
    /**
     * string label_font = 7;
     * @return The bytes for labelFont.
     */
    com.google.protobuf.ByteString
        getLabelFontBytes();

    /**
     * string ticks_font = 8;
     * @return The ticksFont.
     */
    java.lang.String getTicksFont();
    /**
     * string ticks_font = 8;
     * @return The bytes for ticksFont.
     */
    com.google.protobuf.ByteString
        getTicksFontBytes();

    /**
     * optional string format_pattern = 9;
     * @return Whether the formatPattern field is set.
     */
    boolean hasFormatPattern();
    /**
     * optional string format_pattern = 9;
     * @return The formatPattern.
     */
    java.lang.String getFormatPattern();
    /**
     * optional string format_pattern = 9;
     * @return The bytes for formatPattern.
     */
    com.google.protobuf.ByteString
        getFormatPatternBytes();

    /**
     * string color = 10;
     * @return The color.
     */
    java.lang.String getColor();
    /**
     * string color = 10;
     * @return The bytes for color.
     */
    com.google.protobuf.ByteString
        getColorBytes();

    /**
     * double min_range = 11;
     * @return The minRange.
     */
    double getMinRange();

    /**
     * double max_range = 12;
     * @return The maxRange.
     */
    double getMaxRange();

    /**
     * bool minor_ticks_visible = 13;
     * @return The minorTicksVisible.
     */
    boolean getMinorTicksVisible();

    /**
     * bool major_ticks_visible = 14;
     * @return The majorTicksVisible.
     */
    boolean getMajorTicksVisible();

    /**
     * int32 minor_tick_count = 15;
     * @return The minorTickCount.
     */
    int getMinorTickCount();

    /**
     * optional double gap_between_major_ticks = 16;
     * @return Whether the gapBetweenMajorTicks field is set.
     */
    boolean hasGapBetweenMajorTicks();
    /**
     * optional double gap_between_major_ticks = 16;
     * @return The gapBetweenMajorTicks.
     */
    double getGapBetweenMajorTicks();

    /**
     * repeated double major_tick_locations = 17;
     * @return A list containing the majorTickLocations.
     */
    java.util.List getMajorTickLocationsList();
    /**
     * repeated double major_tick_locations = 17;
     * @return The count of majorTickLocations.
     */
    int getMajorTickLocationsCount();
    /**
     * repeated double major_tick_locations = 17;
     * @param index The index of the element to return.
     * @return The majorTickLocations at the given index.
     */
    double getMajorTickLocations(int index);

    /**
     * double tick_label_angle = 18;
     * @return The tickLabelAngle.
     */
    double getTickLabelAngle();

    /**
     * bool invert = 19;
     * @return The invert.
     */
    boolean getInvert();

    /**
     * bool is_time_axis = 20;
     * @return The isTimeAxis.
     */
    boolean getIsTimeAxis();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
     * @return Whether the businessCalendarDescriptor field is set.
     */
    boolean hasBusinessCalendarDescriptor();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
     * @return The businessCalendarDescriptor.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor getBusinessCalendarDescriptor();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptorOrBuilder getBusinessCalendarDescriptorOrBuilder();
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor}
   */
  public static final class AxisDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor)
      AxisDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AxisDescriptor.newBuilder() to construct.
    private AxisDescriptor(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private AxisDescriptor() {
      id_ = "";
      formatType_ = 0;
      type_ = 0;
      position_ = 0;
      label_ = "";
      labelFont_ = "";
      ticksFont_ = "";
      formatPattern_ = "";
      color_ = "";
      majorTickLocations_ = emptyDoubleList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_AxisDescriptor_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_AxisDescriptor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder.class);
    }

    /**
     * Protobuf enum {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType}
     */
    public enum AxisFormatType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * CATEGORY = 0;
       */
      CATEGORY(0),
      /**
       * NUMBER = 1;
       */
      NUMBER(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * CATEGORY = 0;
       */
      public static final int CATEGORY_VALUE = 0;
      /**
       * NUMBER = 1;
       */
      public static final int NUMBER_VALUE = 1;


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

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static AxisFormatType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static AxisFormatType forNumber(int value) {
        switch (value) {
          case 0: return CATEGORY;
          case 1: return NUMBER;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.getDescriptor().getEnumTypes().get(0);
      }

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

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

      // @@protoc_insertion_point(enum_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType)
    }

    /**
     * Protobuf enum {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType}
     */
    public enum AxisType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * X = 0;
       */
      X(0),
      /**
       * Y = 1;
       */
      Y(1),
      /**
       * SHAPE = 2;
       */
      SHAPE(2),
      /**
       * SIZE = 3;
       */
      SIZE(3),
      /**
       * LABEL = 4;
       */
      LABEL(4),
      /**
       * COLOR = 5;
       */
      COLOR(5),
      UNRECOGNIZED(-1),
      ;

      /**
       * X = 0;
       */
      public static final int X_VALUE = 0;
      /**
       * Y = 1;
       */
      public static final int Y_VALUE = 1;
      /**
       * SHAPE = 2;
       */
      public static final int SHAPE_VALUE = 2;
      /**
       * SIZE = 3;
       */
      public static final int SIZE_VALUE = 3;
      /**
       * LABEL = 4;
       */
      public static final int LABEL_VALUE = 4;
      /**
       * COLOR = 5;
       */
      public static final int COLOR_VALUE = 5;


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

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static AxisType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static AxisType forNumber(int value) {
        switch (value) {
          case 0: return X;
          case 1: return Y;
          case 2: return SHAPE;
          case 3: return SIZE;
          case 4: return LABEL;
          case 5: return COLOR;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.getDescriptor().getEnumTypes().get(1);
      }

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

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

      // @@protoc_insertion_point(enum_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType)
    }

    /**
     * Protobuf enum {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition}
     */
    public enum AxisPosition
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * TOP = 0;
       */
      TOP(0),
      /**
       * BOTTOM = 1;
       */
      BOTTOM(1),
      /**
       * LEFT = 2;
       */
      LEFT(2),
      /**
       * RIGHT = 3;
       */
      RIGHT(3),
      /**
       * NONE = 4;
       */
      NONE(4),
      UNRECOGNIZED(-1),
      ;

      /**
       * TOP = 0;
       */
      public static final int TOP_VALUE = 0;
      /**
       * BOTTOM = 1;
       */
      public static final int BOTTOM_VALUE = 1;
      /**
       * LEFT = 2;
       */
      public static final int LEFT_VALUE = 2;
      /**
       * RIGHT = 3;
       */
      public static final int RIGHT_VALUE = 3;
      /**
       * NONE = 4;
       */
      public static final int NONE_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;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static AxisPosition valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static AxisPosition forNumber(int value) {
        switch (value) {
          case 0: return TOP;
          case 1: return BOTTOM;
          case 2: return LEFT;
          case 3: return RIGHT;
          case 4: return NONE;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.getDescriptor().getEnumTypes().get(2);
      }

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

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

      // @@protoc_insertion_point(enum_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition)
    }

    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object id_ = "";
    /**
     * string id = 1;
     * @return The id.
     */
    @java.lang.Override
    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;
      }
    }
    /**
     * string id = 1;
     * @return The bytes for id.
     */
    @java.lang.Override
    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;
      }
    }

    public static final int FORMAT_TYPE_FIELD_NUMBER = 2;
    private int formatType_ = 0;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType format_type = 2;
     * @return The enum numeric value on the wire for formatType.
     */
    @java.lang.Override public int getFormatTypeValue() {
      return formatType_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType format_type = 2;
     * @return The formatType.
     */
    @java.lang.Override public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType getFormatType() {
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType.forNumber(formatType_);
      return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType.UNRECOGNIZED : result;
    }

    public static final int TYPE_FIELD_NUMBER = 3;
    private int type_ = 0;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType type = 3;
     * @return The enum numeric value on the wire for type.
     */
    @java.lang.Override public int getTypeValue() {
      return type_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType type = 3;
     * @return The type.
     */
    @java.lang.Override public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType getType() {
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType.forNumber(type_);
      return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType.UNRECOGNIZED : result;
    }

    public static final int POSITION_FIELD_NUMBER = 4;
    private int position_ = 0;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition position = 4;
     * @return The enum numeric value on the wire for position.
     */
    @java.lang.Override public int getPositionValue() {
      return position_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition position = 4;
     * @return The position.
     */
    @java.lang.Override public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition getPosition() {
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition.forNumber(position_);
      return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition.UNRECOGNIZED : result;
    }

    public static final int LOG_FIELD_NUMBER = 5;
    private boolean log_ = false;
    /**
     * bool log = 5;
     * @return The log.
     */
    @java.lang.Override
    public boolean getLog() {
      return log_;
    }

    public static final int LABEL_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object label_ = "";
    /**
     * string label = 6;
     * @return The label.
     */
    @java.lang.Override
    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;
      }
    }
    /**
     * string label = 6;
     * @return The bytes for label.
     */
    @java.lang.Override
    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 LABEL_FONT_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private volatile java.lang.Object labelFont_ = "";
    /**
     * string label_font = 7;
     * @return The labelFont.
     */
    @java.lang.Override
    public java.lang.String getLabelFont() {
      java.lang.Object ref = labelFont_;
      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();
        labelFont_ = s;
        return s;
      }
    }
    /**
     * string label_font = 7;
     * @return The bytes for labelFont.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLabelFontBytes() {
      java.lang.Object ref = labelFont_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        labelFont_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TICKS_FONT_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object ticksFont_ = "";
    /**
     * string ticks_font = 8;
     * @return The ticksFont.
     */
    @java.lang.Override
    public java.lang.String getTicksFont() {
      java.lang.Object ref = ticksFont_;
      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();
        ticksFont_ = s;
        return s;
      }
    }
    /**
     * string ticks_font = 8;
     * @return The bytes for ticksFont.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTicksFontBytes() {
      java.lang.Object ref = ticksFont_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ticksFont_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FORMAT_PATTERN_FIELD_NUMBER = 9;
    @SuppressWarnings("serial")
    private volatile java.lang.Object formatPattern_ = "";
    /**
     * optional string format_pattern = 9;
     * @return Whether the formatPattern field is set.
     */
    @java.lang.Override
    public boolean hasFormatPattern() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string format_pattern = 9;
     * @return The formatPattern.
     */
    @java.lang.Override
    public java.lang.String getFormatPattern() {
      java.lang.Object ref = formatPattern_;
      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();
        formatPattern_ = s;
        return s;
      }
    }
    /**
     * optional string format_pattern = 9;
     * @return The bytes for formatPattern.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFormatPatternBytes() {
      java.lang.Object ref = formatPattern_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        formatPattern_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COLOR_FIELD_NUMBER = 10;
    @SuppressWarnings("serial")
    private volatile java.lang.Object color_ = "";
    /**
     * string color = 10;
     * @return The color.
     */
    @java.lang.Override
    public java.lang.String getColor() {
      java.lang.Object ref = color_;
      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();
        color_ = s;
        return s;
      }
    }
    /**
     * string color = 10;
     * @return The bytes for color.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getColorBytes() {
      java.lang.Object ref = color_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        color_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MIN_RANGE_FIELD_NUMBER = 11;
    private double minRange_ = 0D;
    /**
     * double min_range = 11;
     * @return The minRange.
     */
    @java.lang.Override
    public double getMinRange() {
      return minRange_;
    }

    public static final int MAX_RANGE_FIELD_NUMBER = 12;
    private double maxRange_ = 0D;
    /**
     * double max_range = 12;
     * @return The maxRange.
     */
    @java.lang.Override
    public double getMaxRange() {
      return maxRange_;
    }

    public static final int MINOR_TICKS_VISIBLE_FIELD_NUMBER = 13;
    private boolean minorTicksVisible_ = false;
    /**
     * bool minor_ticks_visible = 13;
     * @return The minorTicksVisible.
     */
    @java.lang.Override
    public boolean getMinorTicksVisible() {
      return minorTicksVisible_;
    }

    public static final int MAJOR_TICKS_VISIBLE_FIELD_NUMBER = 14;
    private boolean majorTicksVisible_ = false;
    /**
     * bool major_ticks_visible = 14;
     * @return The majorTicksVisible.
     */
    @java.lang.Override
    public boolean getMajorTicksVisible() {
      return majorTicksVisible_;
    }

    public static final int MINOR_TICK_COUNT_FIELD_NUMBER = 15;
    private int minorTickCount_ = 0;
    /**
     * int32 minor_tick_count = 15;
     * @return The minorTickCount.
     */
    @java.lang.Override
    public int getMinorTickCount() {
      return minorTickCount_;
    }

    public static final int GAP_BETWEEN_MAJOR_TICKS_FIELD_NUMBER = 16;
    private double gapBetweenMajorTicks_ = 0D;
    /**
     * optional double gap_between_major_ticks = 16;
     * @return Whether the gapBetweenMajorTicks field is set.
     */
    @java.lang.Override
    public boolean hasGapBetweenMajorTicks() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional double gap_between_major_ticks = 16;
     * @return The gapBetweenMajorTicks.
     */
    @java.lang.Override
    public double getGapBetweenMajorTicks() {
      return gapBetweenMajorTicks_;
    }

    public static final int MAJOR_TICK_LOCATIONS_FIELD_NUMBER = 17;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.DoubleList majorTickLocations_ =
        emptyDoubleList();
    /**
     * repeated double major_tick_locations = 17;
     * @return A list containing the majorTickLocations.
     */
    @java.lang.Override
    public java.util.List
        getMajorTickLocationsList() {
      return majorTickLocations_;
    }
    /**
     * repeated double major_tick_locations = 17;
     * @return The count of majorTickLocations.
     */
    public int getMajorTickLocationsCount() {
      return majorTickLocations_.size();
    }
    /**
     * repeated double major_tick_locations = 17;
     * @param index The index of the element to return.
     * @return The majorTickLocations at the given index.
     */
    public double getMajorTickLocations(int index) {
      return majorTickLocations_.getDouble(index);
    }
    private int majorTickLocationsMemoizedSerializedSize = -1;

    public static final int TICK_LABEL_ANGLE_FIELD_NUMBER = 18;
    private double tickLabelAngle_ = 0D;
    /**
     * double tick_label_angle = 18;
     * @return The tickLabelAngle.
     */
    @java.lang.Override
    public double getTickLabelAngle() {
      return tickLabelAngle_;
    }

    public static final int INVERT_FIELD_NUMBER = 19;
    private boolean invert_ = false;
    /**
     * bool invert = 19;
     * @return The invert.
     */
    @java.lang.Override
    public boolean getInvert() {
      return invert_;
    }

    public static final int IS_TIME_AXIS_FIELD_NUMBER = 20;
    private boolean isTimeAxis_ = false;
    /**
     * bool is_time_axis = 20;
     * @return The isTimeAxis.
     */
    @java.lang.Override
    public boolean getIsTimeAxis() {
      return isTimeAxis_;
    }

    public static final int BUSINESS_CALENDAR_DESCRIPTOR_FIELD_NUMBER = 21;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor businessCalendarDescriptor_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
     * @return Whether the businessCalendarDescriptor field is set.
     */
    @java.lang.Override
    public boolean hasBusinessCalendarDescriptor() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
     * @return The businessCalendarDescriptor.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor getBusinessCalendarDescriptor() {
      return businessCalendarDescriptor_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.getDefaultInstance() : businessCalendarDescriptor_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptorOrBuilder getBusinessCalendarDescriptorOrBuilder() {
      return businessCalendarDescriptor_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.getDefaultInstance() : businessCalendarDescriptor_;
    }

    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 {
      getSerializedSize();
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (formatType_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType.CATEGORY.getNumber()) {
        output.writeEnum(2, formatType_);
      }
      if (type_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType.X.getNumber()) {
        output.writeEnum(3, type_);
      }
      if (position_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition.TOP.getNumber()) {
        output.writeEnum(4, position_);
      }
      if (log_ != false) {
        output.writeBool(5, log_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(label_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, label_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(labelFont_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, labelFont_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ticksFont_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, ticksFont_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, formatPattern_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, color_);
      }
      if (java.lang.Double.doubleToRawLongBits(minRange_) != 0) {
        output.writeDouble(11, minRange_);
      }
      if (java.lang.Double.doubleToRawLongBits(maxRange_) != 0) {
        output.writeDouble(12, maxRange_);
      }
      if (minorTicksVisible_ != false) {
        output.writeBool(13, minorTicksVisible_);
      }
      if (majorTicksVisible_ != false) {
        output.writeBool(14, majorTicksVisible_);
      }
      if (minorTickCount_ != 0) {
        output.writeInt32(15, minorTickCount_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeDouble(16, gapBetweenMajorTicks_);
      }
      if (getMajorTickLocationsList().size() > 0) {
        output.writeUInt32NoTag(138);
        output.writeUInt32NoTag(majorTickLocationsMemoizedSerializedSize);
      }
      for (int i = 0; i < majorTickLocations_.size(); i++) {
        output.writeDoubleNoTag(majorTickLocations_.getDouble(i));
      }
      if (java.lang.Double.doubleToRawLongBits(tickLabelAngle_) != 0) {
        output.writeDouble(18, tickLabelAngle_);
      }
      if (invert_ != false) {
        output.writeBool(19, invert_);
      }
      if (isTimeAxis_ != false) {
        output.writeBool(20, isTimeAxis_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(21, getBusinessCalendarDescriptor());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (formatType_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType.CATEGORY.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, formatType_);
      }
      if (type_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType.X.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, type_);
      }
      if (position_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition.TOP.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, position_);
      }
      if (log_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, log_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(label_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, label_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(labelFont_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, labelFont_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ticksFont_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, ticksFont_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, formatPattern_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, color_);
      }
      if (java.lang.Double.doubleToRawLongBits(minRange_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(11, minRange_);
      }
      if (java.lang.Double.doubleToRawLongBits(maxRange_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(12, maxRange_);
      }
      if (minorTicksVisible_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(13, minorTicksVisible_);
      }
      if (majorTicksVisible_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(14, majorTicksVisible_);
      }
      if (minorTickCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(15, minorTickCount_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(16, gapBetweenMajorTicks_);
      }
      {
        int dataSize = 0;
        dataSize = 8 * getMajorTickLocationsList().size();
        size += dataSize;
        if (!getMajorTickLocationsList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        majorTickLocationsMemoizedSerializedSize = dataSize;
      }
      if (java.lang.Double.doubleToRawLongBits(tickLabelAngle_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(18, tickLabelAngle_);
      }
      if (invert_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, invert_);
      }
      if (isTimeAxis_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(20, isTimeAxis_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, getBusinessCalendarDescriptor());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor) obj;

      if (!getId()
          .equals(other.getId())) return false;
      if (formatType_ != other.formatType_) return false;
      if (type_ != other.type_) return false;
      if (position_ != other.position_) return false;
      if (getLog()
          != other.getLog()) return false;
      if (!getLabel()
          .equals(other.getLabel())) return false;
      if (!getLabelFont()
          .equals(other.getLabelFont())) return false;
      if (!getTicksFont()
          .equals(other.getTicksFont())) return false;
      if (hasFormatPattern() != other.hasFormatPattern()) return false;
      if (hasFormatPattern()) {
        if (!getFormatPattern()
            .equals(other.getFormatPattern())) return false;
      }
      if (!getColor()
          .equals(other.getColor())) return false;
      if (java.lang.Double.doubleToLongBits(getMinRange())
          != java.lang.Double.doubleToLongBits(
              other.getMinRange())) return false;
      if (java.lang.Double.doubleToLongBits(getMaxRange())
          != java.lang.Double.doubleToLongBits(
              other.getMaxRange())) return false;
      if (getMinorTicksVisible()
          != other.getMinorTicksVisible()) return false;
      if (getMajorTicksVisible()
          != other.getMajorTicksVisible()) return false;
      if (getMinorTickCount()
          != other.getMinorTickCount()) return false;
      if (hasGapBetweenMajorTicks() != other.hasGapBetweenMajorTicks()) return false;
      if (hasGapBetweenMajorTicks()) {
        if (java.lang.Double.doubleToLongBits(getGapBetweenMajorTicks())
            != java.lang.Double.doubleToLongBits(
                other.getGapBetweenMajorTicks())) return false;
      }
      if (!getMajorTickLocationsList()
          .equals(other.getMajorTickLocationsList())) return false;
      if (java.lang.Double.doubleToLongBits(getTickLabelAngle())
          != java.lang.Double.doubleToLongBits(
              other.getTickLabelAngle())) return false;
      if (getInvert()
          != other.getInvert()) return false;
      if (getIsTimeAxis()
          != other.getIsTimeAxis()) return false;
      if (hasBusinessCalendarDescriptor() != other.hasBusinessCalendarDescriptor()) return false;
      if (hasBusinessCalendarDescriptor()) {
        if (!getBusinessCalendarDescriptor()
            .equals(other.getBusinessCalendarDescriptor())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) 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) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      hash = (37 * hash) + FORMAT_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + formatType_;
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + type_;
      hash = (37 * hash) + POSITION_FIELD_NUMBER;
      hash = (53 * hash) + position_;
      hash = (37 * hash) + LOG_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getLog());
      hash = (37 * hash) + LABEL_FIELD_NUMBER;
      hash = (53 * hash) + getLabel().hashCode();
      hash = (37 * hash) + LABEL_FONT_FIELD_NUMBER;
      hash = (53 * hash) + getLabelFont().hashCode();
      hash = (37 * hash) + TICKS_FONT_FIELD_NUMBER;
      hash = (53 * hash) + getTicksFont().hashCode();
      if (hasFormatPattern()) {
        hash = (37 * hash) + FORMAT_PATTERN_FIELD_NUMBER;
        hash = (53 * hash) + getFormatPattern().hashCode();
      }
      hash = (37 * hash) + COLOR_FIELD_NUMBER;
      hash = (53 * hash) + getColor().hashCode();
      hash = (37 * hash) + MIN_RANGE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getMinRange()));
      hash = (37 * hash) + MAX_RANGE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getMaxRange()));
      hash = (37 * hash) + MINOR_TICKS_VISIBLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getMinorTicksVisible());
      hash = (37 * hash) + MAJOR_TICKS_VISIBLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getMajorTicksVisible());
      hash = (37 * hash) + MINOR_TICK_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getMinorTickCount();
      if (hasGapBetweenMajorTicks()) {
        hash = (37 * hash) + GAP_BETWEEN_MAJOR_TICKS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getGapBetweenMajorTicks()));
      }
      if (getMajorTickLocationsCount() > 0) {
        hash = (37 * hash) + MAJOR_TICK_LOCATIONS_FIELD_NUMBER;
        hash = (53 * hash) + getMajorTickLocationsList().hashCode();
      }
      hash = (37 * hash) + TICK_LABEL_ANGLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getTickLabelAngle()));
      hash = (37 * hash) + INVERT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getInvert());
      hash = (37 * hash) + IS_TIME_AXIS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsTimeAxis());
      if (hasBusinessCalendarDescriptor()) {
        hash = (37 * hash) + BUSINESS_CALENDAR_DESCRIPTOR_FIELD_NUMBER;
        hash = (53 * hash) + getBusinessCalendarDescriptor().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_AxisDescriptor_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_AxisDescriptor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getBusinessCalendarDescriptorFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = "";
        formatType_ = 0;
        type_ = 0;
        position_ = 0;
        log_ = false;
        label_ = "";
        labelFont_ = "";
        ticksFont_ = "";
        formatPattern_ = "";
        color_ = "";
        minRange_ = 0D;
        maxRange_ = 0D;
        minorTicksVisible_ = false;
        majorTicksVisible_ = false;
        minorTickCount_ = 0;
        gapBetweenMajorTicks_ = 0D;
        majorTickLocations_ = emptyDoubleList();
        tickLabelAngle_ = 0D;
        invert_ = false;
        isTimeAxis_ = false;
        businessCalendarDescriptor_ = null;
        if (businessCalendarDescriptorBuilder_ != null) {
          businessCalendarDescriptorBuilder_.dispose();
          businessCalendarDescriptorBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_AxisDescriptor_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.formatType_ = formatType_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.type_ = type_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.position_ = position_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.log_ = log_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.label_ = label_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.labelFont_ = labelFont_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.ticksFont_ = ticksFont_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.formatPattern_ = formatPattern_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.color_ = color_;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.minRange_ = minRange_;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.maxRange_ = maxRange_;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.minorTicksVisible_ = minorTicksVisible_;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.majorTicksVisible_ = majorTicksVisible_;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.minorTickCount_ = minorTickCount_;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.gapBetweenMajorTicks_ = gapBetweenMajorTicks_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          majorTickLocations_.makeImmutable();
          result.majorTickLocations_ = majorTickLocations_;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.tickLabelAngle_ = tickLabelAngle_;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.invert_ = invert_;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.isTimeAxis_ = isTimeAxis_;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.businessCalendarDescriptor_ = businessCalendarDescriptorBuilder_ == null
              ? businessCalendarDescriptor_
              : businessCalendarDescriptorBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.formatType_ != 0) {
          setFormatTypeValue(other.getFormatTypeValue());
        }
        if (other.type_ != 0) {
          setTypeValue(other.getTypeValue());
        }
        if (other.position_ != 0) {
          setPositionValue(other.getPositionValue());
        }
        if (other.getLog() != false) {
          setLog(other.getLog());
        }
        if (!other.getLabel().isEmpty()) {
          label_ = other.label_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (!other.getLabelFont().isEmpty()) {
          labelFont_ = other.labelFont_;
          bitField0_ |= 0x00000040;
          onChanged();
        }
        if (!other.getTicksFont().isEmpty()) {
          ticksFont_ = other.ticksFont_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        if (other.hasFormatPattern()) {
          formatPattern_ = other.formatPattern_;
          bitField0_ |= 0x00000100;
          onChanged();
        }
        if (!other.getColor().isEmpty()) {
          color_ = other.color_;
          bitField0_ |= 0x00000200;
          onChanged();
        }
        if (other.getMinRange() != 0D) {
          setMinRange(other.getMinRange());
        }
        if (other.getMaxRange() != 0D) {
          setMaxRange(other.getMaxRange());
        }
        if (other.getMinorTicksVisible() != false) {
          setMinorTicksVisible(other.getMinorTicksVisible());
        }
        if (other.getMajorTicksVisible() != false) {
          setMajorTicksVisible(other.getMajorTicksVisible());
        }
        if (other.getMinorTickCount() != 0) {
          setMinorTickCount(other.getMinorTickCount());
        }
        if (other.hasGapBetweenMajorTicks()) {
          setGapBetweenMajorTicks(other.getGapBetweenMajorTicks());
        }
        if (!other.majorTickLocations_.isEmpty()) {
          if (majorTickLocations_.isEmpty()) {
            majorTickLocations_ = other.majorTickLocations_;
            majorTickLocations_.makeImmutable();
            bitField0_ |= 0x00010000;
          } else {
            ensureMajorTickLocationsIsMutable();
            majorTickLocations_.addAll(other.majorTickLocations_);
          }
          onChanged();
        }
        if (other.getTickLabelAngle() != 0D) {
          setTickLabelAngle(other.getTickLabelAngle());
        }
        if (other.getInvert() != false) {
          setInvert(other.getInvert());
        }
        if (other.getIsTimeAxis() != false) {
          setIsTimeAxis(other.getIsTimeAxis());
        }
        if (other.hasBusinessCalendarDescriptor()) {
          mergeBusinessCalendarDescriptor(other.getBusinessCalendarDescriptor());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                id_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                formatType_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                type_ = input.readEnum();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                position_ = input.readEnum();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                log_ = input.readBool();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                label_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                labelFont_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                ticksFont_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 74: {
                formatPattern_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 82: {
                color_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              case 89: {
                minRange_ = input.readDouble();
                bitField0_ |= 0x00000400;
                break;
              } // case 89
              case 97: {
                maxRange_ = input.readDouble();
                bitField0_ |= 0x00000800;
                break;
              } // case 97
              case 104: {
                minorTicksVisible_ = input.readBool();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 112: {
                majorTicksVisible_ = input.readBool();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 120: {
                minorTickCount_ = input.readInt32();
                bitField0_ |= 0x00004000;
                break;
              } // case 120
              case 129: {
                gapBetweenMajorTicks_ = input.readDouble();
                bitField0_ |= 0x00008000;
                break;
              } // case 129
              case 137: {
                double v = input.readDouble();
                ensureMajorTickLocationsIsMutable();
                majorTickLocations_.addDouble(v);
                break;
              } // case 137
              case 138: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureMajorTickLocationsIsMutable(alloc / 8);
                while (input.getBytesUntilLimit() > 0) {
                  majorTickLocations_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              } // case 138
              case 145: {
                tickLabelAngle_ = input.readDouble();
                bitField0_ |= 0x00020000;
                break;
              } // case 145
              case 152: {
                invert_ = input.readBool();
                bitField0_ |= 0x00040000;
                break;
              } // case 152
              case 160: {
                isTimeAxis_ = input.readBool();
                bitField0_ |= 0x00080000;
                break;
              } // case 160
              case 170: {
                input.readMessage(
                    getBusinessCalendarDescriptorFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00100000;
                break;
              } // case 170
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object id_ = "";
      /**
       * string id = 1;
       * @return The id.
       */
      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;
        }
      }
      /**
       * string id = 1;
       * @return The bytes for id.
       */
      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;
        }
      }
      /**
       * string id = 1;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        id_ = getDefaultInstance().getId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int formatType_ = 0;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType format_type = 2;
       * @return The enum numeric value on the wire for formatType.
       */
      @java.lang.Override public int getFormatTypeValue() {
        return formatType_;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType format_type = 2;
       * @param value The enum numeric value on the wire for formatType to set.
       * @return This builder for chaining.
       */
      public Builder setFormatTypeValue(int value) {
        formatType_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType format_type = 2;
       * @return The formatType.
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType getFormatType() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType.forNumber(formatType_);
        return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType.UNRECOGNIZED : result;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType format_type = 2;
       * @param value The formatType to set.
       * @return This builder for chaining.
       */
      public Builder setFormatType(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        formatType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisFormatType format_type = 2;
       * @return This builder for chaining.
       */
      public Builder clearFormatType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        formatType_ = 0;
        onChanged();
        return this;
      }

      private int type_ = 0;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType type = 3;
       * @return The enum numeric value on the wire for type.
       */
      @java.lang.Override public int getTypeValue() {
        return type_;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType type = 3;
       * @param value The enum numeric value on the wire for type to set.
       * @return This builder for chaining.
       */
      public Builder setTypeValue(int value) {
        type_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType type = 3;
       * @return The type.
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType getType() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType.forNumber(type_);
        return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType.UNRECOGNIZED : result;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType type = 3;
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisType type = 3;
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = 0;
        onChanged();
        return this;
      }

      private int position_ = 0;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition position = 4;
       * @return The enum numeric value on the wire for position.
       */
      @java.lang.Override public int getPositionValue() {
        return position_;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition position = 4;
       * @param value The enum numeric value on the wire for position to set.
       * @return This builder for chaining.
       */
      public Builder setPositionValue(int value) {
        position_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition position = 4;
       * @return The position.
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition getPosition() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition.forNumber(position_);
        return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition.UNRECOGNIZED : result;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition position = 4;
       * @param value The position to set.
       * @return This builder for chaining.
       */
      public Builder setPosition(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        position_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor.AxisPosition position = 4;
       * @return This builder for chaining.
       */
      public Builder clearPosition() {
        bitField0_ = (bitField0_ & ~0x00000008);
        position_ = 0;
        onChanged();
        return this;
      }

      private boolean log_ ;
      /**
       * bool log = 5;
       * @return The log.
       */
      @java.lang.Override
      public boolean getLog() {
        return log_;
      }
      /**
       * bool log = 5;
       * @param value The log to set.
       * @return This builder for chaining.
       */
      public Builder setLog(boolean value) {

        log_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * bool log = 5;
       * @return This builder for chaining.
       */
      public Builder clearLog() {
        bitField0_ = (bitField0_ & ~0x00000010);
        log_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object label_ = "";
      /**
       * string label = 6;
       * @return The label.
       */
      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;
        }
      }
      /**
       * string label = 6;
       * @return The bytes for label.
       */
      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;
        }
      }
      /**
       * string label = 6;
       * @param value The label to set.
       * @return This builder for chaining.
       */
      public Builder setLabel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        label_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * string label = 6;
       * @return This builder for chaining.
       */
      public Builder clearLabel() {
        label_ = getDefaultInstance().getLabel();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * string label = 6;
       * @param value The bytes for label to set.
       * @return This builder for chaining.
       */
      public Builder setLabelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        label_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      private java.lang.Object labelFont_ = "";
      /**
       * string label_font = 7;
       * @return The labelFont.
       */
      public java.lang.String getLabelFont() {
        java.lang.Object ref = labelFont_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          labelFont_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string label_font = 7;
       * @return The bytes for labelFont.
       */
      public com.google.protobuf.ByteString
          getLabelFontBytes() {
        java.lang.Object ref = labelFont_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          labelFont_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string label_font = 7;
       * @param value The labelFont to set.
       * @return This builder for chaining.
       */
      public Builder setLabelFont(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        labelFont_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * string label_font = 7;
       * @return This builder for chaining.
       */
      public Builder clearLabelFont() {
        labelFont_ = getDefaultInstance().getLabelFont();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * string label_font = 7;
       * @param value The bytes for labelFont to set.
       * @return This builder for chaining.
       */
      public Builder setLabelFontBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        labelFont_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      private java.lang.Object ticksFont_ = "";
      /**
       * string ticks_font = 8;
       * @return The ticksFont.
       */
      public java.lang.String getTicksFont() {
        java.lang.Object ref = ticksFont_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          ticksFont_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string ticks_font = 8;
       * @return The bytes for ticksFont.
       */
      public com.google.protobuf.ByteString
          getTicksFontBytes() {
        java.lang.Object ref = ticksFont_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ticksFont_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string ticks_font = 8;
       * @param value The ticksFont to set.
       * @return This builder for chaining.
       */
      public Builder setTicksFont(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ticksFont_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * string ticks_font = 8;
       * @return This builder for chaining.
       */
      public Builder clearTicksFont() {
        ticksFont_ = getDefaultInstance().getTicksFont();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * string ticks_font = 8;
       * @param value The bytes for ticksFont to set.
       * @return This builder for chaining.
       */
      public Builder setTicksFontBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ticksFont_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private java.lang.Object formatPattern_ = "";
      /**
       * optional string format_pattern = 9;
       * @return Whether the formatPattern field is set.
       */
      public boolean hasFormatPattern() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * optional string format_pattern = 9;
       * @return The formatPattern.
       */
      public java.lang.String getFormatPattern() {
        java.lang.Object ref = formatPattern_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          formatPattern_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string format_pattern = 9;
       * @return The bytes for formatPattern.
       */
      public com.google.protobuf.ByteString
          getFormatPatternBytes() {
        java.lang.Object ref = formatPattern_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          formatPattern_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string format_pattern = 9;
       * @param value The formatPattern to set.
       * @return This builder for chaining.
       */
      public Builder setFormatPattern(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        formatPattern_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * optional string format_pattern = 9;
       * @return This builder for chaining.
       */
      public Builder clearFormatPattern() {
        formatPattern_ = getDefaultInstance().getFormatPattern();
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       * optional string format_pattern = 9;
       * @param value The bytes for formatPattern to set.
       * @return This builder for chaining.
       */
      public Builder setFormatPatternBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        formatPattern_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }

      private java.lang.Object color_ = "";
      /**
       * string color = 10;
       * @return The color.
       */
      public java.lang.String getColor() {
        java.lang.Object ref = color_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          color_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string color = 10;
       * @return The bytes for color.
       */
      public com.google.protobuf.ByteString
          getColorBytes() {
        java.lang.Object ref = color_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          color_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string color = 10;
       * @param value The color to set.
       * @return This builder for chaining.
       */
      public Builder setColor(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        color_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * string color = 10;
       * @return This builder for chaining.
       */
      public Builder clearColor() {
        color_ = getDefaultInstance().getColor();
        bitField0_ = (bitField0_ & ~0x00000200);
        onChanged();
        return this;
      }
      /**
       * string color = 10;
       * @param value The bytes for color to set.
       * @return This builder for chaining.
       */
      public Builder setColorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        color_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }

      private double minRange_ ;
      /**
       * double min_range = 11;
       * @return The minRange.
       */
      @java.lang.Override
      public double getMinRange() {
        return minRange_;
      }
      /**
       * double min_range = 11;
       * @param value The minRange to set.
       * @return This builder for chaining.
       */
      public Builder setMinRange(double value) {

        minRange_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * double min_range = 11;
       * @return This builder for chaining.
       */
      public Builder clearMinRange() {
        bitField0_ = (bitField0_ & ~0x00000400);
        minRange_ = 0D;
        onChanged();
        return this;
      }

      private double maxRange_ ;
      /**
       * double max_range = 12;
       * @return The maxRange.
       */
      @java.lang.Override
      public double getMaxRange() {
        return maxRange_;
      }
      /**
       * double max_range = 12;
       * @param value The maxRange to set.
       * @return This builder for chaining.
       */
      public Builder setMaxRange(double value) {

        maxRange_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * double max_range = 12;
       * @return This builder for chaining.
       */
      public Builder clearMaxRange() {
        bitField0_ = (bitField0_ & ~0x00000800);
        maxRange_ = 0D;
        onChanged();
        return this;
      }

      private boolean minorTicksVisible_ ;
      /**
       * bool minor_ticks_visible = 13;
       * @return The minorTicksVisible.
       */
      @java.lang.Override
      public boolean getMinorTicksVisible() {
        return minorTicksVisible_;
      }
      /**
       * bool minor_ticks_visible = 13;
       * @param value The minorTicksVisible to set.
       * @return This builder for chaining.
       */
      public Builder setMinorTicksVisible(boolean value) {

        minorTicksVisible_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * bool minor_ticks_visible = 13;
       * @return This builder for chaining.
       */
      public Builder clearMinorTicksVisible() {
        bitField0_ = (bitField0_ & ~0x00001000);
        minorTicksVisible_ = false;
        onChanged();
        return this;
      }

      private boolean majorTicksVisible_ ;
      /**
       * bool major_ticks_visible = 14;
       * @return The majorTicksVisible.
       */
      @java.lang.Override
      public boolean getMajorTicksVisible() {
        return majorTicksVisible_;
      }
      /**
       * bool major_ticks_visible = 14;
       * @param value The majorTicksVisible to set.
       * @return This builder for chaining.
       */
      public Builder setMajorTicksVisible(boolean value) {

        majorTicksVisible_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * bool major_ticks_visible = 14;
       * @return This builder for chaining.
       */
      public Builder clearMajorTicksVisible() {
        bitField0_ = (bitField0_ & ~0x00002000);
        majorTicksVisible_ = false;
        onChanged();
        return this;
      }

      private int minorTickCount_ ;
      /**
       * int32 minor_tick_count = 15;
       * @return The minorTickCount.
       */
      @java.lang.Override
      public int getMinorTickCount() {
        return minorTickCount_;
      }
      /**
       * int32 minor_tick_count = 15;
       * @param value The minorTickCount to set.
       * @return This builder for chaining.
       */
      public Builder setMinorTickCount(int value) {

        minorTickCount_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * int32 minor_tick_count = 15;
       * @return This builder for chaining.
       */
      public Builder clearMinorTickCount() {
        bitField0_ = (bitField0_ & ~0x00004000);
        minorTickCount_ = 0;
        onChanged();
        return this;
      }

      private double gapBetweenMajorTicks_ ;
      /**
       * optional double gap_between_major_ticks = 16;
       * @return Whether the gapBetweenMajorTicks field is set.
       */
      @java.lang.Override
      public boolean hasGapBetweenMajorTicks() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * optional double gap_between_major_ticks = 16;
       * @return The gapBetweenMajorTicks.
       */
      @java.lang.Override
      public double getGapBetweenMajorTicks() {
        return gapBetweenMajorTicks_;
      }
      /**
       * optional double gap_between_major_ticks = 16;
       * @param value The gapBetweenMajorTicks to set.
       * @return This builder for chaining.
       */
      public Builder setGapBetweenMajorTicks(double value) {

        gapBetweenMajorTicks_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * optional double gap_between_major_ticks = 16;
       * @return This builder for chaining.
       */
      public Builder clearGapBetweenMajorTicks() {
        bitField0_ = (bitField0_ & ~0x00008000);
        gapBetweenMajorTicks_ = 0D;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.DoubleList majorTickLocations_ = emptyDoubleList();
      private void ensureMajorTickLocationsIsMutable() {
        if (!majorTickLocations_.isModifiable()) {
          majorTickLocations_ = makeMutableCopy(majorTickLocations_);
        }
        bitField0_ |= 0x00010000;
      }
      private void ensureMajorTickLocationsIsMutable(int capacity) {
        if (!majorTickLocations_.isModifiable()) {
          majorTickLocations_ = makeMutableCopy(majorTickLocations_, capacity);
        }
        bitField0_ |= 0x00010000;
      }
      /**
       * repeated double major_tick_locations = 17;
       * @return A list containing the majorTickLocations.
       */
      public java.util.List
          getMajorTickLocationsList() {
        majorTickLocations_.makeImmutable();
        return majorTickLocations_;
      }
      /**
       * repeated double major_tick_locations = 17;
       * @return The count of majorTickLocations.
       */
      public int getMajorTickLocationsCount() {
        return majorTickLocations_.size();
      }
      /**
       * repeated double major_tick_locations = 17;
       * @param index The index of the element to return.
       * @return The majorTickLocations at the given index.
       */
      public double getMajorTickLocations(int index) {
        return majorTickLocations_.getDouble(index);
      }
      /**
       * repeated double major_tick_locations = 17;
       * @param index The index to set the value at.
       * @param value The majorTickLocations to set.
       * @return This builder for chaining.
       */
      public Builder setMajorTickLocations(
          int index, double value) {

        ensureMajorTickLocationsIsMutable();
        majorTickLocations_.setDouble(index, value);
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * repeated double major_tick_locations = 17;
       * @param value The majorTickLocations to add.
       * @return This builder for chaining.
       */
      public Builder addMajorTickLocations(double value) {

        ensureMajorTickLocationsIsMutable();
        majorTickLocations_.addDouble(value);
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * repeated double major_tick_locations = 17;
       * @param values The majorTickLocations to add.
       * @return This builder for chaining.
       */
      public Builder addAllMajorTickLocations(
          java.lang.Iterable values) {
        ensureMajorTickLocationsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, majorTickLocations_);
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * repeated double major_tick_locations = 17;
       * @return This builder for chaining.
       */
      public Builder clearMajorTickLocations() {
        majorTickLocations_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00010000);
        onChanged();
        return this;
      }

      private double tickLabelAngle_ ;
      /**
       * double tick_label_angle = 18;
       * @return The tickLabelAngle.
       */
      @java.lang.Override
      public double getTickLabelAngle() {
        return tickLabelAngle_;
      }
      /**
       * double tick_label_angle = 18;
       * @param value The tickLabelAngle to set.
       * @return This builder for chaining.
       */
      public Builder setTickLabelAngle(double value) {

        tickLabelAngle_ = value;
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * double tick_label_angle = 18;
       * @return This builder for chaining.
       */
      public Builder clearTickLabelAngle() {
        bitField0_ = (bitField0_ & ~0x00020000);
        tickLabelAngle_ = 0D;
        onChanged();
        return this;
      }

      private boolean invert_ ;
      /**
       * bool invert = 19;
       * @return The invert.
       */
      @java.lang.Override
      public boolean getInvert() {
        return invert_;
      }
      /**
       * bool invert = 19;
       * @param value The invert to set.
       * @return This builder for chaining.
       */
      public Builder setInvert(boolean value) {

        invert_ = value;
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * bool invert = 19;
       * @return This builder for chaining.
       */
      public Builder clearInvert() {
        bitField0_ = (bitField0_ & ~0x00040000);
        invert_ = false;
        onChanged();
        return this;
      }

      private boolean isTimeAxis_ ;
      /**
       * bool is_time_axis = 20;
       * @return The isTimeAxis.
       */
      @java.lang.Override
      public boolean getIsTimeAxis() {
        return isTimeAxis_;
      }
      /**
       * bool is_time_axis = 20;
       * @param value The isTimeAxis to set.
       * @return This builder for chaining.
       */
      public Builder setIsTimeAxis(boolean value) {

        isTimeAxis_ = value;
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * bool is_time_axis = 20;
       * @return This builder for chaining.
       */
      public Builder clearIsTimeAxis() {
        bitField0_ = (bitField0_ & ~0x00080000);
        isTimeAxis_ = false;
        onChanged();
        return this;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor businessCalendarDescriptor_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptorOrBuilder> businessCalendarDescriptorBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
       * @return Whether the businessCalendarDescriptor field is set.
       */
      public boolean hasBusinessCalendarDescriptor() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
       * @return The businessCalendarDescriptor.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor getBusinessCalendarDescriptor() {
        if (businessCalendarDescriptorBuilder_ == null) {
          return businessCalendarDescriptor_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.getDefaultInstance() : businessCalendarDescriptor_;
        } else {
          return businessCalendarDescriptorBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
       */
      public Builder setBusinessCalendarDescriptor(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor value) {
        if (businessCalendarDescriptorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          businessCalendarDescriptor_ = value;
        } else {
          businessCalendarDescriptorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
       */
      public Builder setBusinessCalendarDescriptor(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Builder builderForValue) {
        if (businessCalendarDescriptorBuilder_ == null) {
          businessCalendarDescriptor_ = builderForValue.build();
        } else {
          businessCalendarDescriptorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
       */
      public Builder mergeBusinessCalendarDescriptor(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor value) {
        if (businessCalendarDescriptorBuilder_ == null) {
          if (((bitField0_ & 0x00100000) != 0) &&
            businessCalendarDescriptor_ != null &&
            businessCalendarDescriptor_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.getDefaultInstance()) {
            getBusinessCalendarDescriptorBuilder().mergeFrom(value);
          } else {
            businessCalendarDescriptor_ = value;
          }
        } else {
          businessCalendarDescriptorBuilder_.mergeFrom(value);
        }
        if (businessCalendarDescriptor_ != null) {
          bitField0_ |= 0x00100000;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
       */
      public Builder clearBusinessCalendarDescriptor() {
        bitField0_ = (bitField0_ & ~0x00100000);
        businessCalendarDescriptor_ = null;
        if (businessCalendarDescriptorBuilder_ != null) {
          businessCalendarDescriptorBuilder_.dispose();
          businessCalendarDescriptorBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Builder getBusinessCalendarDescriptorBuilder() {
        bitField0_ |= 0x00100000;
        onChanged();
        return getBusinessCalendarDescriptorFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptorOrBuilder getBusinessCalendarDescriptorOrBuilder() {
        if (businessCalendarDescriptorBuilder_ != null) {
          return businessCalendarDescriptorBuilder_.getMessageOrBuilder();
        } else {
          return businessCalendarDescriptor_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.getDefaultInstance() : businessCalendarDescriptor_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor business_calendar_descriptor = 21;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptorOrBuilder> 
          getBusinessCalendarDescriptorFieldBuilder() {
        if (businessCalendarDescriptorBuilder_ == null) {
          businessCalendarDescriptorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptorOrBuilder>(
                  getBusinessCalendarDescriptor(),
                  getParentForChildren(),
                  isClean());
          businessCalendarDescriptor_ = null;
        }
        return businessCalendarDescriptorBuilder_;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public AxisDescriptor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.AxisDescriptor getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BusinessCalendarDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string name = 1;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * string name = 1;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * string time_zone = 2;
     * @return The timeZone.
     */
    java.lang.String getTimeZone();
    /**
     * string time_zone = 2;
     * @return The bytes for timeZone.
     */
    com.google.protobuf.ByteString
        getTimeZoneBytes();

    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
     * @return A list containing the businessDays.
     */
    java.util.List getBusinessDaysList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
     * @return The count of businessDays.
     */
    int getBusinessDaysCount();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
     * @param index The index of the element to return.
     * @return The businessDays at the given index.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek getBusinessDays(int index);
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
     * @return A list containing the enum numeric values on the wire for businessDays.
     */
    java.util.List
    getBusinessDaysValueList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of businessDays at the given index.
     */
    int getBusinessDaysValue(int index);

    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
     */
    java.util.List 
        getBusinessPeriodsList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod getBusinessPeriods(int index);
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
     */
    int getBusinessPeriodsCount();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
     */
    java.util.List 
        getBusinessPeriodsOrBuilderList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder getBusinessPeriodsOrBuilder(
        int index);

    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
     */
    java.util.List 
        getHolidaysList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday getHolidays(int index);
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
     */
    int getHolidaysCount();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
     */
    java.util.List 
        getHolidaysOrBuilderList();
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.HolidayOrBuilder getHolidaysOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor}
   */
  public static final class BusinessCalendarDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor)
      BusinessCalendarDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BusinessCalendarDescriptor.newBuilder() to construct.
    private BusinessCalendarDescriptor(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private BusinessCalendarDescriptor() {
      name_ = "";
      timeZone_ = "";
      businessDays_ = java.util.Collections.emptyList();
      businessPeriods_ = java.util.Collections.emptyList();
      holidays_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Builder.class);
    }

    /**
     * Protobuf enum {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek}
     */
    public enum DayOfWeek
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * SUNDAY = 0;
       */
      SUNDAY(0),
      /**
       * MONDAY = 1;
       */
      MONDAY(1),
      /**
       * TUESDAY = 2;
       */
      TUESDAY(2),
      /**
       * WEDNESDAY = 3;
       */
      WEDNESDAY(3),
      /**
       * THURSDAY = 4;
       */
      THURSDAY(4),
      /**
       * FRIDAY = 5;
       */
      FRIDAY(5),
      /**
       * SATURDAY = 6;
       */
      SATURDAY(6),
      UNRECOGNIZED(-1),
      ;

      /**
       * SUNDAY = 0;
       */
      public static final int SUNDAY_VALUE = 0;
      /**
       * MONDAY = 1;
       */
      public static final int MONDAY_VALUE = 1;
      /**
       * TUESDAY = 2;
       */
      public static final int TUESDAY_VALUE = 2;
      /**
       * WEDNESDAY = 3;
       */
      public static final int WEDNESDAY_VALUE = 3;
      /**
       * THURSDAY = 4;
       */
      public static final int THURSDAY_VALUE = 4;
      /**
       * FRIDAY = 5;
       */
      public static final int FRIDAY_VALUE = 5;
      /**
       * SATURDAY = 6;
       */
      public static final int SATURDAY_VALUE = 6;


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

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static DayOfWeek valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static DayOfWeek forNumber(int value) {
        switch (value) {
          case 0: return SUNDAY;
          case 1: return MONDAY;
          case 2: return TUESDAY;
          case 3: return WEDNESDAY;
          case 4: return THURSDAY;
          case 5: return FRIDAY;
          case 6: return SATURDAY;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.getDescriptor().getEnumTypes().get(0);
      }

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

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

      // @@protoc_insertion_point(enum_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek)
    }

    public interface BusinessPeriodOrBuilder extends
        // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod)
        com.google.protobuf.MessageOrBuilder {

      /**
       * string open = 1;
       * @return The open.
       */
      java.lang.String getOpen();
      /**
       * string open = 1;
       * @return The bytes for open.
       */
      com.google.protobuf.ByteString
          getOpenBytes();

      /**
       * string close = 2;
       * @return The close.
       */
      java.lang.String getClose();
      /**
       * string close = 2;
       * @return The bytes for close.
       */
      com.google.protobuf.ByteString
          getCloseBytes();
    }
    /**
     * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod}
     */
    public static final class BusinessPeriod extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod)
        BusinessPeriodOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use BusinessPeriod.newBuilder() to construct.
      private BusinessPeriod(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private BusinessPeriod() {
        open_ = "";
        close_ = "";
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_BusinessPeriod_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_BusinessPeriod_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder.class);
      }

      public static final int OPEN_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object open_ = "";
      /**
       * string open = 1;
       * @return The open.
       */
      @java.lang.Override
      public java.lang.String getOpen() {
        java.lang.Object ref = open_;
        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();
          open_ = s;
          return s;
        }
      }
      /**
       * string open = 1;
       * @return The bytes for open.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getOpenBytes() {
        java.lang.Object ref = open_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          open_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int CLOSE_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object close_ = "";
      /**
       * string close = 2;
       * @return The close.
       */
      @java.lang.Override
      public java.lang.String getClose() {
        java.lang.Object ref = close_;
        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();
          close_ = s;
          return s;
        }
      }
      /**
       * string close = 2;
       * @return The bytes for close.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getCloseBytes() {
        java.lang.Object ref = close_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          close_ = 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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(open_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, open_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(close_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, close_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(open_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, open_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(close_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, close_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod)) {
          return super.equals(obj);
        }
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod) obj;

        if (!getOpen()
            .equals(other.getOpen())) return false;
        if (!getClose()
            .equals(other.getClose())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) 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) + OPEN_FIELD_NUMBER;
        hash = (53 * hash) + getOpen().hashCode();
        hash = (37 * hash) + CLOSE_FIELD_NUMBER;
        hash = (53 * hash) + getClose().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod)
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_BusinessPeriod_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_BusinessPeriod_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder.class);
        }

        // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          open_ = "";
          close_ = "";
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_BusinessPeriod_descriptor;
        }

        @java.lang.Override
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod getDefaultInstanceForType() {
          return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.getDefaultInstance();
        }

        @java.lang.Override
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod build() {
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod buildPartial() {
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.open_ = open_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.close_ = close_;
          }
        }

        @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod) {
            return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod other) {
          if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.getDefaultInstance()) return this;
          if (!other.getOpen().isEmpty()) {
            open_ = other.open_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (!other.getClose().isEmpty()) {
            close_ = other.close_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  open_ = input.readStringRequireUtf8();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  close_ = input.readStringRequireUtf8();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private java.lang.Object open_ = "";
        /**
         * string open = 1;
         * @return The open.
         */
        public java.lang.String getOpen() {
          java.lang.Object ref = open_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            open_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string open = 1;
         * @return The bytes for open.
         */
        public com.google.protobuf.ByteString
            getOpenBytes() {
          java.lang.Object ref = open_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            open_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string open = 1;
         * @param value The open to set.
         * @return This builder for chaining.
         */
        public Builder setOpen(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          open_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * string open = 1;
         * @return This builder for chaining.
         */
        public Builder clearOpen() {
          open_ = getDefaultInstance().getOpen();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * string open = 1;
         * @param value The bytes for open to set.
         * @return This builder for chaining.
         */
        public Builder setOpenBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          open_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }

        private java.lang.Object close_ = "";
        /**
         * string close = 2;
         * @return The close.
         */
        public java.lang.String getClose() {
          java.lang.Object ref = close_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            close_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string close = 2;
         * @return The bytes for close.
         */
        public com.google.protobuf.ByteString
            getCloseBytes() {
          java.lang.Object ref = close_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            close_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string close = 2;
         * @param value The close to set.
         * @return This builder for chaining.
         */
        public Builder setClose(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          close_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * string close = 2;
         * @return This builder for chaining.
         */
        public Builder clearClose() {
          close_ = getDefaultInstance().getClose();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * string close = 2;
         * @param value The bytes for close to set.
         * @return This builder for chaining.
         */
        public Builder setCloseBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          close_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod)
      }

      // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod)
      private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod();
      }

      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public BusinessPeriod parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

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

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface HolidayOrBuilder extends
        // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday)
        com.google.protobuf.MessageOrBuilder {

      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
       * @return Whether the date field is set.
       */
      boolean hasDate();
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
       * @return The date.
       */
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate getDate();
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
       */
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDateOrBuilder getDateOrBuilder();

      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
       */
      java.util.List 
          getBusinessPeriodsList();
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
       */
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod getBusinessPeriods(int index);
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
       */
      int getBusinessPeriodsCount();
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
       */
      java.util.List 
          getBusinessPeriodsOrBuilderList();
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
       */
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder getBusinessPeriodsOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday}
     */
    public static final class Holiday extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday)
        HolidayOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Holiday.newBuilder() to construct.
      private Holiday(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private Holiday() {
        businessPeriods_ = java.util.Collections.emptyList();
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_Holiday_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_Holiday_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder.class);
      }

      private int bitField0_;
      public static final int DATE_FIELD_NUMBER = 1;
      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
       * @return Whether the date field is set.
       */
      @java.lang.Override
      public boolean hasDate() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
       * @return The date.
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate getDate() {
        return date_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.getDefaultInstance() : date_;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDateOrBuilder getDateOrBuilder() {
        return date_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.getDefaultInstance() : date_;
      }

      public static final int BUSINESS_PERIODS_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private java.util.List businessPeriods_;
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
       */
      @java.lang.Override
      public java.util.List getBusinessPeriodsList() {
        return businessPeriods_;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
       */
      @java.lang.Override
      public java.util.List 
          getBusinessPeriodsOrBuilderList() {
        return businessPeriods_;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
       */
      @java.lang.Override
      public int getBusinessPeriodsCount() {
        return businessPeriods_.size();
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod getBusinessPeriods(int index) {
        return businessPeriods_.get(index);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder getBusinessPeriodsOrBuilder(
          int index) {
        return businessPeriods_.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 (((bitField0_ & 0x00000001) != 0)) {
          output.writeMessage(1, getDate());
        }
        for (int i = 0; i < businessPeriods_.size(); i++) {
          output.writeMessage(2, businessPeriods_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getDate());
        }
        for (int i = 0; i < businessPeriods_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, businessPeriods_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday)) {
          return super.equals(obj);
        }
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday) obj;

        if (hasDate() != other.hasDate()) return false;
        if (hasDate()) {
          if (!getDate()
              .equals(other.getDate())) return false;
        }
        if (!getBusinessPeriodsList()
            .equals(other.getBusinessPeriodsList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasDate()) {
          hash = (37 * hash) + DATE_FIELD_NUMBER;
          hash = (53 * hash) + getDate().hashCode();
        }
        if (getBusinessPeriodsCount() > 0) {
          hash = (37 * hash) + BUSINESS_PERIODS_FIELD_NUMBER;
          hash = (53 * hash) + getBusinessPeriodsList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday)
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.HolidayOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_Holiday_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_Holiday_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder.class);
        }

        // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getDateFieldBuilder();
            getBusinessPeriodsFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          date_ = null;
          if (dateBuilder_ != null) {
            dateBuilder_.dispose();
            dateBuilder_ = null;
          }
          if (businessPeriodsBuilder_ == null) {
            businessPeriods_ = java.util.Collections.emptyList();
          } else {
            businessPeriods_ = null;
            businessPeriodsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_Holiday_descriptor;
        }

        @java.lang.Override
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday getDefaultInstanceForType() {
          return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.getDefaultInstance();
        }

        @java.lang.Override
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday build() {
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday buildPartial() {
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartialRepeatedFields(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday result) {
          if (businessPeriodsBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0)) {
              businessPeriods_ = java.util.Collections.unmodifiableList(businessPeriods_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.businessPeriods_ = businessPeriods_;
          } else {
            result.businessPeriods_ = businessPeriodsBuilder_.build();
          }
        }

        private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.date_ = dateBuilder_ == null
                ? date_
                : dateBuilder_.build();
            to_bitField0_ |= 0x00000001;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday) {
            return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday other) {
          if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.getDefaultInstance()) return this;
          if (other.hasDate()) {
            mergeDate(other.getDate());
          }
          if (businessPeriodsBuilder_ == null) {
            if (!other.businessPeriods_.isEmpty()) {
              if (businessPeriods_.isEmpty()) {
                businessPeriods_ = other.businessPeriods_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureBusinessPeriodsIsMutable();
                businessPeriods_.addAll(other.businessPeriods_);
              }
              onChanged();
            }
          } else {
            if (!other.businessPeriods_.isEmpty()) {
              if (businessPeriodsBuilder_.isEmpty()) {
                businessPeriodsBuilder_.dispose();
                businessPeriodsBuilder_ = null;
                businessPeriods_ = other.businessPeriods_;
                bitField0_ = (bitField0_ & ~0x00000002);
                businessPeriodsBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getBusinessPeriodsFieldBuilder() : null;
              } else {
                businessPeriodsBuilder_.addAllMessages(other.businessPeriods_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getDateFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod m =
                      input.readMessage(
                          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.parser(),
                          extensionRegistry);
                  if (businessPeriodsBuilder_ == null) {
                    ensureBusinessPeriodsIsMutable();
                    businessPeriods_.add(m);
                  } else {
                    businessPeriodsBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date_;
        private com.google.protobuf.SingleFieldBuilderV3<
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDateOrBuilder> dateBuilder_;
        /**
         * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
         * @return Whether the date field is set.
         */
        public boolean hasDate() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
         * @return The date.
         */
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate getDate() {
          if (dateBuilder_ == null) {
            return date_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.getDefaultInstance() : date_;
          } else {
            return dateBuilder_.getMessage();
          }
        }
        /**
         * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
         */
        public Builder setDate(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate value) {
          if (dateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            date_ = value;
          } else {
            dateBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
         */
        public Builder setDate(
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.Builder builderForValue) {
          if (dateBuilder_ == null) {
            date_ = builderForValue.build();
          } else {
            dateBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
         */
        public Builder mergeDate(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate value) {
          if (dateBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0) &&
              date_ != null &&
              date_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.getDefaultInstance()) {
              getDateBuilder().mergeFrom(value);
            } else {
              date_ = value;
            }
          } else {
            dateBuilder_.mergeFrom(value);
          }
          if (date_ != null) {
            bitField0_ |= 0x00000001;
            onChanged();
          }
          return this;
        }
        /**
         * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
         */
        public Builder clearDate() {
          bitField0_ = (bitField0_ & ~0x00000001);
          date_ = null;
          if (dateBuilder_ != null) {
            dateBuilder_.dispose();
            dateBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
         */
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.Builder getDateBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getDateFieldBuilder().getBuilder();
        }
        /**
         * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
         */
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDateOrBuilder getDateOrBuilder() {
          if (dateBuilder_ != null) {
            return dateBuilder_.getMessageOrBuilder();
          } else {
            return date_ == null ?
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.getDefaultInstance() : date_;
          }
        }
        /**
         * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate date = 1;
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDateOrBuilder> 
            getDateFieldBuilder() {
          if (dateBuilder_ == null) {
            dateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDateOrBuilder>(
                    getDate(),
                    getParentForChildren(),
                    isClean());
            date_ = null;
          }
          return dateBuilder_;
        }

        private java.util.List businessPeriods_ =
          java.util.Collections.emptyList();
        private void ensureBusinessPeriodsIsMutable() {
          if (!((bitField0_ & 0x00000002) != 0)) {
            businessPeriods_ = new java.util.ArrayList(businessPeriods_);
            bitField0_ |= 0x00000002;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder> businessPeriodsBuilder_;

        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public java.util.List getBusinessPeriodsList() {
          if (businessPeriodsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(businessPeriods_);
          } else {
            return businessPeriodsBuilder_.getMessageList();
          }
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public int getBusinessPeriodsCount() {
          if (businessPeriodsBuilder_ == null) {
            return businessPeriods_.size();
          } else {
            return businessPeriodsBuilder_.getCount();
          }
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod getBusinessPeriods(int index) {
          if (businessPeriodsBuilder_ == null) {
            return businessPeriods_.get(index);
          } else {
            return businessPeriodsBuilder_.getMessage(index);
          }
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public Builder setBusinessPeriods(
            int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod value) {
          if (businessPeriodsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureBusinessPeriodsIsMutable();
            businessPeriods_.set(index, value);
            onChanged();
          } else {
            businessPeriodsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public Builder setBusinessPeriods(
            int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder builderForValue) {
          if (businessPeriodsBuilder_ == null) {
            ensureBusinessPeriodsIsMutable();
            businessPeriods_.set(index, builderForValue.build());
            onChanged();
          } else {
            businessPeriodsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public Builder addBusinessPeriods(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod value) {
          if (businessPeriodsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureBusinessPeriodsIsMutable();
            businessPeriods_.add(value);
            onChanged();
          } else {
            businessPeriodsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public Builder addBusinessPeriods(
            int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod value) {
          if (businessPeriodsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureBusinessPeriodsIsMutable();
            businessPeriods_.add(index, value);
            onChanged();
          } else {
            businessPeriodsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public Builder addBusinessPeriods(
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder builderForValue) {
          if (businessPeriodsBuilder_ == null) {
            ensureBusinessPeriodsIsMutable();
            businessPeriods_.add(builderForValue.build());
            onChanged();
          } else {
            businessPeriodsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public Builder addBusinessPeriods(
            int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder builderForValue) {
          if (businessPeriodsBuilder_ == null) {
            ensureBusinessPeriodsIsMutable();
            businessPeriods_.add(index, builderForValue.build());
            onChanged();
          } else {
            businessPeriodsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public Builder addAllBusinessPeriods(
            java.lang.Iterable values) {
          if (businessPeriodsBuilder_ == null) {
            ensureBusinessPeriodsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, businessPeriods_);
            onChanged();
          } else {
            businessPeriodsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public Builder clearBusinessPeriods() {
          if (businessPeriodsBuilder_ == null) {
            businessPeriods_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            businessPeriodsBuilder_.clear();
          }
          return this;
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public Builder removeBusinessPeriods(int index) {
          if (businessPeriodsBuilder_ == null) {
            ensureBusinessPeriodsIsMutable();
            businessPeriods_.remove(index);
            onChanged();
          } else {
            businessPeriodsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder getBusinessPeriodsBuilder(
            int index) {
          return getBusinessPeriodsFieldBuilder().getBuilder(index);
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder getBusinessPeriodsOrBuilder(
            int index) {
          if (businessPeriodsBuilder_ == null) {
            return businessPeriods_.get(index);  } else {
            return businessPeriodsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public java.util.List 
             getBusinessPeriodsOrBuilderList() {
          if (businessPeriodsBuilder_ != null) {
            return businessPeriodsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(businessPeriods_);
          }
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder addBusinessPeriodsBuilder() {
          return getBusinessPeriodsFieldBuilder().addBuilder(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.getDefaultInstance());
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder addBusinessPeriodsBuilder(
            int index) {
          return getBusinessPeriodsFieldBuilder().addBuilder(
              index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.getDefaultInstance());
        }
        /**
         * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 2;
         */
        public java.util.List 
             getBusinessPeriodsBuilderList() {
          return getBusinessPeriodsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder> 
            getBusinessPeriodsFieldBuilder() {
          if (businessPeriodsBuilder_ == null) {
            businessPeriodsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder>(
                    businessPeriods_,
                    ((bitField0_ & 0x00000002) != 0),
                    getParentForChildren(),
                    isClean());
            businessPeriods_ = null;
          }
          return businessPeriodsBuilder_;
        }
        @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday)
      }

      // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday)
      private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday();
      }

      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public Holiday parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

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

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface LocalDateOrBuilder extends
        // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate)
        com.google.protobuf.MessageOrBuilder {

      /**
       * int32 year = 1;
       * @return The year.
       */
      int getYear();

      /**
       * int32 month = 2;
       * @return The month.
       */
      int getMonth();

      /**
       * int32 day = 3;
       * @return The day.
       */
      int getDay();
    }
    /**
     * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate}
     */
    public static final class LocalDate extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate)
        LocalDateOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use LocalDate.newBuilder() to construct.
      private LocalDate(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private LocalDate() {
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_LocalDate_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_LocalDate_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.Builder.class);
      }

      public static final int YEAR_FIELD_NUMBER = 1;
      private int year_ = 0;
      /**
       * int32 year = 1;
       * @return The year.
       */
      @java.lang.Override
      public int getYear() {
        return year_;
      }

      public static final int MONTH_FIELD_NUMBER = 2;
      private int month_ = 0;
      /**
       * int32 month = 2;
       * @return The month.
       */
      @java.lang.Override
      public int getMonth() {
        return month_;
      }

      public static final int DAY_FIELD_NUMBER = 3;
      private int day_ = 0;
      /**
       * int32 day = 3;
       * @return The day.
       */
      @java.lang.Override
      public int getDay() {
        return day_;
      }

      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 (year_ != 0) {
          output.writeInt32(1, year_);
        }
        if (month_ != 0) {
          output.writeInt32(2, month_);
        }
        if (day_ != 0) {
          output.writeInt32(3, day_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (year_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, year_);
        }
        if (month_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, month_);
        }
        if (day_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, day_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate)) {
          return super.equals(obj);
        }
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate) obj;

        if (getYear()
            != other.getYear()) return false;
        if (getMonth()
            != other.getMonth()) return false;
        if (getDay()
            != other.getDay()) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) 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) + YEAR_FIELD_NUMBER;
        hash = (53 * hash) + getYear();
        hash = (37 * hash) + MONTH_FIELD_NUMBER;
        hash = (53 * hash) + getMonth();
        hash = (37 * hash) + DAY_FIELD_NUMBER;
        hash = (53 * hash) + getDay();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate)
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDateOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_LocalDate_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_LocalDate_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.Builder.class);
        }

        // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          year_ = 0;
          month_ = 0;
          day_ = 0;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_LocalDate_descriptor;
        }

        @java.lang.Override
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate getDefaultInstanceForType() {
          return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.getDefaultInstance();
        }

        @java.lang.Override
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate build() {
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate buildPartial() {
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.year_ = year_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.month_ = month_;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.day_ = day_;
          }
        }

        @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate) {
            return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate other) {
          if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate.getDefaultInstance()) return this;
          if (other.getYear() != 0) {
            setYear(other.getYear());
          }
          if (other.getMonth() != 0) {
            setMonth(other.getMonth());
          }
          if (other.getDay() != 0) {
            setDay(other.getDay());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  year_ = input.readInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 16: {
                  month_ = input.readInt32();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                case 24: {
                  day_ = input.readInt32();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 24
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private int year_ ;
        /**
         * int32 year = 1;
         * @return The year.
         */
        @java.lang.Override
        public int getYear() {
          return year_;
        }
        /**
         * int32 year = 1;
         * @param value The year to set.
         * @return This builder for chaining.
         */
        public Builder setYear(int value) {

          year_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * int32 year = 1;
         * @return This builder for chaining.
         */
        public Builder clearYear() {
          bitField0_ = (bitField0_ & ~0x00000001);
          year_ = 0;
          onChanged();
          return this;
        }

        private int month_ ;
        /**
         * int32 month = 2;
         * @return The month.
         */
        @java.lang.Override
        public int getMonth() {
          return month_;
        }
        /**
         * int32 month = 2;
         * @param value The month to set.
         * @return This builder for chaining.
         */
        public Builder setMonth(int value) {

          month_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * int32 month = 2;
         * @return This builder for chaining.
         */
        public Builder clearMonth() {
          bitField0_ = (bitField0_ & ~0x00000002);
          month_ = 0;
          onChanged();
          return this;
        }

        private int day_ ;
        /**
         * int32 day = 3;
         * @return The day.
         */
        @java.lang.Override
        public int getDay() {
          return day_;
        }
        /**
         * int32 day = 3;
         * @param value The day to set.
         * @return This builder for chaining.
         */
        public Builder setDay(int value) {

          day_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * int32 day = 3;
         * @return This builder for chaining.
         */
        public Builder clearDay() {
          bitField0_ = (bitField0_ & ~0x00000004);
          day_ = 0;
          onChanged();
          return this;
        }
        @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate)
      }

      // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate)
      private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate();
      }

      public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public LocalDate parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

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

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.LocalDate getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object name_ = "";
    /**
     * string name = 1;
     * @return The name.
     */
    @java.lang.Override
    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;
      }
    }
    /**
     * string name = 1;
     * @return The bytes for name.
     */
    @java.lang.Override
    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_ZONE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object timeZone_ = "";
    /**
     * string time_zone = 2;
     * @return The timeZone.
     */
    @java.lang.Override
    public java.lang.String getTimeZone() {
      java.lang.Object ref = timeZone_;
      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();
        timeZone_ = s;
        return s;
      }
    }
    /**
     * string time_zone = 2;
     * @return The bytes for timeZone.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimeZoneBytes() {
      java.lang.Object ref = timeZone_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        timeZone_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BUSINESS_DAYS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List businessDays_;
    private static final com.google.protobuf.Internal.ListAdapter.Converter<
        java.lang.Integer, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek> businessDays_converter_ =
            new com.google.protobuf.Internal.ListAdapter.Converter<
                java.lang.Integer, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek>() {
              public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek convert(java.lang.Integer from) {
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek.forNumber(from);
                return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek.UNRECOGNIZED : result;
              }
            };
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
     * @return A list containing the businessDays.
     */
    @java.lang.Override
    public java.util.List getBusinessDaysList() {
      return new com.google.protobuf.Internal.ListAdapter<
          java.lang.Integer, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek>(businessDays_, businessDays_converter_);
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
     * @return The count of businessDays.
     */
    @java.lang.Override
    public int getBusinessDaysCount() {
      return businessDays_.size();
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
     * @param index The index of the element to return.
     * @return The businessDays at the given index.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek getBusinessDays(int index) {
      return businessDays_converter_.convert(businessDays_.get(index));
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
     * @return A list containing the enum numeric values on the wire for businessDays.
     */
    @java.lang.Override
    public java.util.List
    getBusinessDaysValueList() {
      return businessDays_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of businessDays at the given index.
     */
    @java.lang.Override
    public int getBusinessDaysValue(int index) {
      return businessDays_.get(index);
    }
    private int businessDaysMemoizedSerializedSize;

    public static final int BUSINESS_PERIODS_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private java.util.List businessPeriods_;
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
     */
    @java.lang.Override
    public java.util.List getBusinessPeriodsList() {
      return businessPeriods_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
     */
    @java.lang.Override
    public java.util.List 
        getBusinessPeriodsOrBuilderList() {
      return businessPeriods_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
     */
    @java.lang.Override
    public int getBusinessPeriodsCount() {
      return businessPeriods_.size();
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod getBusinessPeriods(int index) {
      return businessPeriods_.get(index);
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder getBusinessPeriodsOrBuilder(
        int index) {
      return businessPeriods_.get(index);
    }

    public static final int HOLIDAYS_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private java.util.List holidays_;
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
     */
    @java.lang.Override
    public java.util.List getHolidaysList() {
      return holidays_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
     */
    @java.lang.Override
    public java.util.List 
        getHolidaysOrBuilderList() {
      return holidays_;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
     */
    @java.lang.Override
    public int getHolidaysCount() {
      return holidays_.size();
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday getHolidays(int index) {
      return holidays_.get(index);
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.HolidayOrBuilder getHolidaysOrBuilder(
        int index) {
      return holidays_.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 {
      getSerializedSize();
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(timeZone_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, timeZone_);
      }
      if (getBusinessDaysList().size() > 0) {
        output.writeUInt32NoTag(26);
        output.writeUInt32NoTag(businessDaysMemoizedSerializedSize);
      }
      for (int i = 0; i < businessDays_.size(); i++) {
        output.writeEnumNoTag(businessDays_.get(i));
      }
      for (int i = 0; i < businessPeriods_.size(); i++) {
        output.writeMessage(4, businessPeriods_.get(i));
      }
      for (int i = 0; i < holidays_.size(); i++) {
        output.writeMessage(5, holidays_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(timeZone_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, timeZone_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < businessDays_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeEnumSizeNoTag(businessDays_.get(i));
        }
        size += dataSize;
        if (!getBusinessDaysList().isEmpty()) {  size += 1;
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(dataSize);
        }businessDaysMemoizedSerializedSize = dataSize;
      }
      for (int i = 0; i < businessPeriods_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, businessPeriods_.get(i));
      }
      for (int i = 0; i < holidays_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, holidays_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor) obj;

      if (!getName()
          .equals(other.getName())) return false;
      if (!getTimeZone()
          .equals(other.getTimeZone())) return false;
      if (!businessDays_.equals(other.businessDays_)) return false;
      if (!getBusinessPeriodsList()
          .equals(other.getBusinessPeriodsList())) return false;
      if (!getHolidaysList()
          .equals(other.getHolidaysList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) 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) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + TIME_ZONE_FIELD_NUMBER;
      hash = (53 * hash) + getTimeZone().hashCode();
      if (getBusinessDaysCount() > 0) {
        hash = (37 * hash) + BUSINESS_DAYS_FIELD_NUMBER;
        hash = (53 * hash) + businessDays_.hashCode();
      }
      if (getBusinessPeriodsCount() > 0) {
        hash = (37 * hash) + BUSINESS_PERIODS_FIELD_NUMBER;
        hash = (53 * hash) + getBusinessPeriodsList().hashCode();
      }
      if (getHolidaysCount() > 0) {
        hash = (37 * hash) + HOLIDAYS_FIELD_NUMBER;
        hash = (53 * hash) + getHolidaysList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        name_ = "";
        timeZone_ = "";
        businessDays_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        if (businessPeriodsBuilder_ == null) {
          businessPeriods_ = java.util.Collections.emptyList();
        } else {
          businessPeriods_ = null;
          businessPeriodsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (holidaysBuilder_ == null) {
          holidays_ = java.util.Collections.emptyList();
        } else {
          holidays_ = null;
          holidaysBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_BusinessCalendarDescriptor_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor result) {
        if (((bitField0_ & 0x00000004) != 0)) {
          businessDays_ = java.util.Collections.unmodifiableList(businessDays_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.businessDays_ = businessDays_;
        if (businessPeriodsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            businessPeriods_ = java.util.Collections.unmodifiableList(businessPeriods_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.businessPeriods_ = businessPeriods_;
        } else {
          result.businessPeriods_ = businessPeriodsBuilder_.build();
        }
        if (holidaysBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            holidays_ = java.util.Collections.unmodifiableList(holidays_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.holidays_ = holidays_;
        } else {
          result.holidays_ = holidaysBuilder_.build();
        }
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.name_ = name_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.timeZone_ = timeZone_;
        }
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getTimeZone().isEmpty()) {
          timeZone_ = other.timeZone_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.businessDays_.isEmpty()) {
          if (businessDays_.isEmpty()) {
            businessDays_ = other.businessDays_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureBusinessDaysIsMutable();
            businessDays_.addAll(other.businessDays_);
          }
          onChanged();
        }
        if (businessPeriodsBuilder_ == null) {
          if (!other.businessPeriods_.isEmpty()) {
            if (businessPeriods_.isEmpty()) {
              businessPeriods_ = other.businessPeriods_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureBusinessPeriodsIsMutable();
              businessPeriods_.addAll(other.businessPeriods_);
            }
            onChanged();
          }
        } else {
          if (!other.businessPeriods_.isEmpty()) {
            if (businessPeriodsBuilder_.isEmpty()) {
              businessPeriodsBuilder_.dispose();
              businessPeriodsBuilder_ = null;
              businessPeriods_ = other.businessPeriods_;
              bitField0_ = (bitField0_ & ~0x00000008);
              businessPeriodsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getBusinessPeriodsFieldBuilder() : null;
            } else {
              businessPeriodsBuilder_.addAllMessages(other.businessPeriods_);
            }
          }
        }
        if (holidaysBuilder_ == null) {
          if (!other.holidays_.isEmpty()) {
            if (holidays_.isEmpty()) {
              holidays_ = other.holidays_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureHolidaysIsMutable();
              holidays_.addAll(other.holidays_);
            }
            onChanged();
          }
        } else {
          if (!other.holidays_.isEmpty()) {
            if (holidaysBuilder_.isEmpty()) {
              holidaysBuilder_.dispose();
              holidaysBuilder_ = null;
              holidays_ = other.holidays_;
              bitField0_ = (bitField0_ & ~0x00000010);
              holidaysBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHolidaysFieldBuilder() : null;
            } else {
              holidaysBuilder_.addAllMessages(other.holidays_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                name_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                timeZone_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                int tmpRaw = input.readEnum();
                ensureBusinessDaysIsMutable();
                businessDays_.add(tmpRaw);
                break;
              } // case 24
              case 26: {
                int length = input.readRawVarint32();
                int oldLimit = input.pushLimit(length);
                while(input.getBytesUntilLimit() > 0) {
                  int tmpRaw = input.readEnum();
                  ensureBusinessDaysIsMutable();
                  businessDays_.add(tmpRaw);
                }
                input.popLimit(oldLimit);
                break;
              } // case 26
              case 34: {
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod m =
                    input.readMessage(
                        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.parser(),
                        extensionRegistry);
                if (businessPeriodsBuilder_ == null) {
                  ensureBusinessPeriodsIsMutable();
                  businessPeriods_.add(m);
                } else {
                  businessPeriodsBuilder_.addMessage(m);
                }
                break;
              } // case 34
              case 42: {
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday m =
                    input.readMessage(
                        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.parser(),
                        extensionRegistry);
                if (holidaysBuilder_ == null) {
                  ensureHolidaysIsMutable();
                  holidays_.add(m);
                } else {
                  holidaysBuilder_.addMessage(m);
                }
                break;
              } // case 42
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * string name = 1;
       * @return The name.
       */
      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;
        }
      }
      /**
       * string name = 1;
       * @return The bytes for name.
       */
      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;
        }
      }
      /**
       * string name = 1;
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        name_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string name = 1;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        name_ = getDefaultInstance().getName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string name = 1;
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        name_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object timeZone_ = "";
      /**
       * string time_zone = 2;
       * @return The timeZone.
       */
      public java.lang.String getTimeZone() {
        java.lang.Object ref = timeZone_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          timeZone_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string time_zone = 2;
       * @return The bytes for timeZone.
       */
      public com.google.protobuf.ByteString
          getTimeZoneBytes() {
        java.lang.Object ref = timeZone_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          timeZone_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string time_zone = 2;
       * @param value The timeZone to set.
       * @return This builder for chaining.
       */
      public Builder setTimeZone(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        timeZone_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * string time_zone = 2;
       * @return This builder for chaining.
       */
      public Builder clearTimeZone() {
        timeZone_ = getDefaultInstance().getTimeZone();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * string time_zone = 2;
       * @param value The bytes for timeZone to set.
       * @return This builder for chaining.
       */
      public Builder setTimeZoneBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        timeZone_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.util.List businessDays_ =
        java.util.Collections.emptyList();
      private void ensureBusinessDaysIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          businessDays_ = new java.util.ArrayList(businessDays_);
          bitField0_ |= 0x00000004;
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @return A list containing the businessDays.
       */
      public java.util.List getBusinessDaysList() {
        return new com.google.protobuf.Internal.ListAdapter<
            java.lang.Integer, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek>(businessDays_, businessDays_converter_);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @return The count of businessDays.
       */
      public int getBusinessDaysCount() {
        return businessDays_.size();
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @param index The index of the element to return.
       * @return The businessDays at the given index.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek getBusinessDays(int index) {
        return businessDays_converter_.convert(businessDays_.get(index));
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @param index The index to set the value at.
       * @param value The businessDays to set.
       * @return This builder for chaining.
       */
      public Builder setBusinessDays(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBusinessDaysIsMutable();
        businessDays_.set(index, value.getNumber());
        onChanged();
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @param value The businessDays to add.
       * @return This builder for chaining.
       */
      public Builder addBusinessDays(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBusinessDaysIsMutable();
        businessDays_.add(value.getNumber());
        onChanged();
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @param values The businessDays to add.
       * @return This builder for chaining.
       */
      public Builder addAllBusinessDays(
          java.lang.Iterable values) {
        ensureBusinessDaysIsMutable();
        for (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek value : values) {
          businessDays_.add(value.getNumber());
        }
        onChanged();
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @return This builder for chaining.
       */
      public Builder clearBusinessDays() {
        businessDays_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @return A list containing the enum numeric values on the wire for businessDays.
       */
      public java.util.List
      getBusinessDaysValueList() {
        return java.util.Collections.unmodifiableList(businessDays_);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @param index The index of the value to return.
       * @return The enum numeric value on the wire of businessDays at the given index.
       */
      public int getBusinessDaysValue(int index) {
        return businessDays_.get(index);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @param index The index to set the value at.
       * @param value The enum numeric value on the wire for businessDays to set.
       * @return This builder for chaining.
       */
      public Builder setBusinessDaysValue(
          int index, int value) {
        ensureBusinessDaysIsMutable();
        businessDays_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @param value The enum numeric value on the wire for businessDays to add.
       * @return This builder for chaining.
       */
      public Builder addBusinessDaysValue(int value) {
        ensureBusinessDaysIsMutable();
        businessDays_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.DayOfWeek business_days = 3;
       * @param values The enum numeric values on the wire for businessDays to add.
       * @return This builder for chaining.
       */
      public Builder addAllBusinessDaysValue(
          java.lang.Iterable values) {
        ensureBusinessDaysIsMutable();
        for (int value : values) {
          businessDays_.add(value);
        }
        onChanged();
        return this;
      }

      private java.util.List businessPeriods_ =
        java.util.Collections.emptyList();
      private void ensureBusinessPeriodsIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          businessPeriods_ = new java.util.ArrayList(businessPeriods_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder> businessPeriodsBuilder_;

      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public java.util.List getBusinessPeriodsList() {
        if (businessPeriodsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(businessPeriods_);
        } else {
          return businessPeriodsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public int getBusinessPeriodsCount() {
        if (businessPeriodsBuilder_ == null) {
          return businessPeriods_.size();
        } else {
          return businessPeriodsBuilder_.getCount();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod getBusinessPeriods(int index) {
        if (businessPeriodsBuilder_ == null) {
          return businessPeriods_.get(index);
        } else {
          return businessPeriodsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public Builder setBusinessPeriods(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod value) {
        if (businessPeriodsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBusinessPeriodsIsMutable();
          businessPeriods_.set(index, value);
          onChanged();
        } else {
          businessPeriodsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public Builder setBusinessPeriods(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder builderForValue) {
        if (businessPeriodsBuilder_ == null) {
          ensureBusinessPeriodsIsMutable();
          businessPeriods_.set(index, builderForValue.build());
          onChanged();
        } else {
          businessPeriodsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public Builder addBusinessPeriods(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod value) {
        if (businessPeriodsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBusinessPeriodsIsMutable();
          businessPeriods_.add(value);
          onChanged();
        } else {
          businessPeriodsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public Builder addBusinessPeriods(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod value) {
        if (businessPeriodsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBusinessPeriodsIsMutable();
          businessPeriods_.add(index, value);
          onChanged();
        } else {
          businessPeriodsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public Builder addBusinessPeriods(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder builderForValue) {
        if (businessPeriodsBuilder_ == null) {
          ensureBusinessPeriodsIsMutable();
          businessPeriods_.add(builderForValue.build());
          onChanged();
        } else {
          businessPeriodsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public Builder addBusinessPeriods(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder builderForValue) {
        if (businessPeriodsBuilder_ == null) {
          ensureBusinessPeriodsIsMutable();
          businessPeriods_.add(index, builderForValue.build());
          onChanged();
        } else {
          businessPeriodsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public Builder addAllBusinessPeriods(
          java.lang.Iterable values) {
        if (businessPeriodsBuilder_ == null) {
          ensureBusinessPeriodsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, businessPeriods_);
          onChanged();
        } else {
          businessPeriodsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public Builder clearBusinessPeriods() {
        if (businessPeriodsBuilder_ == null) {
          businessPeriods_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          businessPeriodsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public Builder removeBusinessPeriods(int index) {
        if (businessPeriodsBuilder_ == null) {
          ensureBusinessPeriodsIsMutable();
          businessPeriods_.remove(index);
          onChanged();
        } else {
          businessPeriodsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder getBusinessPeriodsBuilder(
          int index) {
        return getBusinessPeriodsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder getBusinessPeriodsOrBuilder(
          int index) {
        if (businessPeriodsBuilder_ == null) {
          return businessPeriods_.get(index);  } else {
          return businessPeriodsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public java.util.List 
           getBusinessPeriodsOrBuilderList() {
        if (businessPeriodsBuilder_ != null) {
          return businessPeriodsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(businessPeriods_);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder addBusinessPeriodsBuilder() {
        return getBusinessPeriodsFieldBuilder().addBuilder(
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder addBusinessPeriodsBuilder(
          int index) {
        return getBusinessPeriodsFieldBuilder().addBuilder(
            index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod business_periods = 4;
       */
      public java.util.List 
           getBusinessPeriodsBuilderList() {
        return getBusinessPeriodsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder> 
          getBusinessPeriodsFieldBuilder() {
        if (businessPeriodsBuilder_ == null) {
          businessPeriodsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriod.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.BusinessPeriodOrBuilder>(
                  businessPeriods_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          businessPeriods_ = null;
        }
        return businessPeriodsBuilder_;
      }

      private java.util.List holidays_ =
        java.util.Collections.emptyList();
      private void ensureHolidaysIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          holidays_ = new java.util.ArrayList(holidays_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.HolidayOrBuilder> holidaysBuilder_;

      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public java.util.List getHolidaysList() {
        if (holidaysBuilder_ == null) {
          return java.util.Collections.unmodifiableList(holidays_);
        } else {
          return holidaysBuilder_.getMessageList();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public int getHolidaysCount() {
        if (holidaysBuilder_ == null) {
          return holidays_.size();
        } else {
          return holidaysBuilder_.getCount();
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday getHolidays(int index) {
        if (holidaysBuilder_ == null) {
          return holidays_.get(index);
        } else {
          return holidaysBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public Builder setHolidays(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday value) {
        if (holidaysBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHolidaysIsMutable();
          holidays_.set(index, value);
          onChanged();
        } else {
          holidaysBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public Builder setHolidays(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder builderForValue) {
        if (holidaysBuilder_ == null) {
          ensureHolidaysIsMutable();
          holidays_.set(index, builderForValue.build());
          onChanged();
        } else {
          holidaysBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public Builder addHolidays(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday value) {
        if (holidaysBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHolidaysIsMutable();
          holidays_.add(value);
          onChanged();
        } else {
          holidaysBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public Builder addHolidays(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday value) {
        if (holidaysBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHolidaysIsMutable();
          holidays_.add(index, value);
          onChanged();
        } else {
          holidaysBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public Builder addHolidays(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder builderForValue) {
        if (holidaysBuilder_ == null) {
          ensureHolidaysIsMutable();
          holidays_.add(builderForValue.build());
          onChanged();
        } else {
          holidaysBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public Builder addHolidays(
          int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder builderForValue) {
        if (holidaysBuilder_ == null) {
          ensureHolidaysIsMutable();
          holidays_.add(index, builderForValue.build());
          onChanged();
        } else {
          holidaysBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public Builder addAllHolidays(
          java.lang.Iterable values) {
        if (holidaysBuilder_ == null) {
          ensureHolidaysIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, holidays_);
          onChanged();
        } else {
          holidaysBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public Builder clearHolidays() {
        if (holidaysBuilder_ == null) {
          holidays_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          holidaysBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public Builder removeHolidays(int index) {
        if (holidaysBuilder_ == null) {
          ensureHolidaysIsMutable();
          holidays_.remove(index);
          onChanged();
        } else {
          holidaysBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder getHolidaysBuilder(
          int index) {
        return getHolidaysFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.HolidayOrBuilder getHolidaysOrBuilder(
          int index) {
        if (holidaysBuilder_ == null) {
          return holidays_.get(index);  } else {
          return holidaysBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public java.util.List 
           getHolidaysOrBuilderList() {
        if (holidaysBuilder_ != null) {
          return holidaysBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(holidays_);
        }
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder addHolidaysBuilder() {
        return getHolidaysFieldBuilder().addBuilder(
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder addHolidaysBuilder(
          int index) {
        return getHolidaysFieldBuilder().addBuilder(
            index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.getDefaultInstance());
      }
      /**
       * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday holidays = 5;
       */
      public java.util.List 
           getHolidaysBuilderList() {
        return getHolidaysFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.HolidayOrBuilder> 
          getHolidaysFieldBuilder() {
        if (holidaysBuilder_ == null) {
          holidaysBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.Holiday.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor.HolidayOrBuilder>(
                  holidays_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          holidays_ = null;
        }
        return holidaysBuilder_;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public BusinessCalendarDescriptor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.BusinessCalendarDescriptor getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MultiSeriesSourceDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string axis_id = 1;
     * @return The axisId.
     */
    java.lang.String getAxisId();
    /**
     * string axis_id = 1;
     * @return The bytes for axisId.
     */
    com.google.protobuf.ByteString
        getAxisIdBytes();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
     * @return The enum numeric value on the wire for type.
     */
    int getTypeValue();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
     * @return The type.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType getType();

    /**
     * int32 partitioned_table_id = 3;
     * @return The partitionedTableId.
     */
    int getPartitionedTableId();

    /**
     * string column_name = 4;
     * @return The columnName.
     */
    java.lang.String getColumnName();
    /**
     * string column_name = 4;
     * @return The bytes for columnName.
     */
    com.google.protobuf.ByteString
        getColumnNameBytes();
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor}
   */
  public static final class MultiSeriesSourceDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor)
      MultiSeriesSourceDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MultiSeriesSourceDescriptor.newBuilder() to construct.
    private MultiSeriesSourceDescriptor(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MultiSeriesSourceDescriptor() {
      axisId_ = "";
      type_ = 0;
      columnName_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_MultiSeriesSourceDescriptor_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_MultiSeriesSourceDescriptor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder.class);
    }

    public static final int AXIS_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object axisId_ = "";
    /**
     * string axis_id = 1;
     * @return The axisId.
     */
    @java.lang.Override
    public java.lang.String getAxisId() {
      java.lang.Object ref = axisId_;
      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();
        axisId_ = s;
        return s;
      }
    }
    /**
     * string axis_id = 1;
     * @return The bytes for axisId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAxisIdBytes() {
      java.lang.Object ref = axisId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        axisId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_FIELD_NUMBER = 2;
    private int type_ = 0;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
     * @return The enum numeric value on the wire for type.
     */
    @java.lang.Override public int getTypeValue() {
      return type_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
     * @return The type.
     */
    @java.lang.Override public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType getType() {
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.forNumber(type_);
      return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.UNRECOGNIZED : result;
    }

    public static final int PARTITIONED_TABLE_ID_FIELD_NUMBER = 3;
    private int partitionedTableId_ = 0;
    /**
     * int32 partitioned_table_id = 3;
     * @return The partitionedTableId.
     */
    @java.lang.Override
    public int getPartitionedTableId() {
      return partitionedTableId_;
    }

    public static final int COLUMN_NAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object columnName_ = "";
    /**
     * string column_name = 4;
     * @return The columnName.
     */
    @java.lang.Override
    public java.lang.String getColumnName() {
      java.lang.Object ref = columnName_;
      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();
        columnName_ = s;
        return s;
      }
    }
    /**
     * string column_name = 4;
     * @return The bytes for columnName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getColumnNameBytes() {
      java.lang.Object ref = columnName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        columnName_ = 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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(axisId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, axisId_);
      }
      if (type_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.X.getNumber()) {
        output.writeEnum(2, type_);
      }
      if (partitionedTableId_ != 0) {
        output.writeInt32(3, partitionedTableId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, columnName_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(axisId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, axisId_);
      }
      if (type_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.X.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, type_);
      }
      if (partitionedTableId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, partitionedTableId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, columnName_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor) obj;

      if (!getAxisId()
          .equals(other.getAxisId())) return false;
      if (type_ != other.type_) return false;
      if (getPartitionedTableId()
          != other.getPartitionedTableId()) return false;
      if (!getColumnName()
          .equals(other.getColumnName())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) 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) + AXIS_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAxisId().hashCode();
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + type_;
      hash = (37 * hash) + PARTITIONED_TABLE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getPartitionedTableId();
      hash = (37 * hash) + COLUMN_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getColumnName().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_MultiSeriesSourceDescriptor_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_MultiSeriesSourceDescriptor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        axisId_ = "";
        type_ = 0;
        partitionedTableId_ = 0;
        columnName_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_MultiSeriesSourceDescriptor_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.axisId_ = axisId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.type_ = type_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.partitionedTableId_ = partitionedTableId_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.columnName_ = columnName_;
        }
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor.getDefaultInstance()) return this;
        if (!other.getAxisId().isEmpty()) {
          axisId_ = other.axisId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.type_ != 0) {
          setTypeValue(other.getTypeValue());
        }
        if (other.getPartitionedTableId() != 0) {
          setPartitionedTableId(other.getPartitionedTableId());
        }
        if (!other.getColumnName().isEmpty()) {
          columnName_ = other.columnName_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                axisId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                type_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                partitionedTableId_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                columnName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object axisId_ = "";
      /**
       * string axis_id = 1;
       * @return The axisId.
       */
      public java.lang.String getAxisId() {
        java.lang.Object ref = axisId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          axisId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string axis_id = 1;
       * @return The bytes for axisId.
       */
      public com.google.protobuf.ByteString
          getAxisIdBytes() {
        java.lang.Object ref = axisId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          axisId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string axis_id = 1;
       * @param value The axisId to set.
       * @return This builder for chaining.
       */
      public Builder setAxisId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        axisId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string axis_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearAxisId() {
        axisId_ = getDefaultInstance().getAxisId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string axis_id = 1;
       * @param value The bytes for axisId to set.
       * @return This builder for chaining.
       */
      public Builder setAxisIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        axisId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int type_ = 0;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
       * @return The enum numeric value on the wire for type.
       */
      @java.lang.Override public int getTypeValue() {
        return type_;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
       * @param value The enum numeric value on the wire for type to set.
       * @return This builder for chaining.
       */
      public Builder setTypeValue(int value) {
        type_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
       * @return The type.
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType getType() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.forNumber(type_);
        return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.UNRECOGNIZED : result;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = 0;
        onChanged();
        return this;
      }

      private int partitionedTableId_ ;
      /**
       * int32 partitioned_table_id = 3;
       * @return The partitionedTableId.
       */
      @java.lang.Override
      public int getPartitionedTableId() {
        return partitionedTableId_;
      }
      /**
       * int32 partitioned_table_id = 3;
       * @param value The partitionedTableId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionedTableId(int value) {

        partitionedTableId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * int32 partitioned_table_id = 3;
       * @return This builder for chaining.
       */
      public Builder clearPartitionedTableId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        partitionedTableId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object columnName_ = "";
      /**
       * string column_name = 4;
       * @return The columnName.
       */
      public java.lang.String getColumnName() {
        java.lang.Object ref = columnName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          columnName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string column_name = 4;
       * @return The bytes for columnName.
       */
      public com.google.protobuf.ByteString
          getColumnNameBytes() {
        java.lang.Object ref = columnName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          columnName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string column_name = 4;
       * @param value The columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        columnName_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * string column_name = 4;
       * @return This builder for chaining.
       */
      public Builder clearColumnName() {
        columnName_ = getDefaultInstance().getColumnName();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * string column_name = 4;
       * @param value The bytes for columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        columnName_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public MultiSeriesSourceDescriptor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.MultiSeriesSourceDescriptor getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SourceDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string axis_id = 1;
     * @return The axisId.
     */
    java.lang.String getAxisId();
    /**
     * string axis_id = 1;
     * @return The bytes for axisId.
     */
    com.google.protobuf.ByteString
        getAxisIdBytes();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
     * @return The enum numeric value on the wire for type.
     */
    int getTypeValue();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
     * @return The type.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType getType();

    /**
     * int32 table_id = 3;
     * @return The tableId.
     */
    int getTableId();

    /**
     * int32 partitioned_table_id = 4;
     * @return The partitionedTableId.
     */
    int getPartitionedTableId();

    /**
     * string column_name = 5;
     * @return The columnName.
     */
    java.lang.String getColumnName();
    /**
     * string column_name = 5;
     * @return The bytes for columnName.
     */
    com.google.protobuf.ByteString
        getColumnNameBytes();

    /**
     * string column_type = 6;
     * @return The columnType.
     */
    java.lang.String getColumnType();
    /**
     * string column_type = 6;
     * @return The bytes for columnType.
     */
    com.google.protobuf.ByteString
        getColumnTypeBytes();

    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
     * @return Whether the oneClick field is set.
     */
    boolean hasOneClick();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
     * @return The oneClick.
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor getOneClick();
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
     */
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptorOrBuilder getOneClickOrBuilder();
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor}
   */
  public static final class SourceDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor)
      SourceDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SourceDescriptor.newBuilder() to construct.
    private SourceDescriptor(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private SourceDescriptor() {
      axisId_ = "";
      type_ = 0;
      columnName_ = "";
      columnType_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_SourceDescriptor_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_SourceDescriptor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder.class);
    }

    private int bitField0_;
    public static final int AXIS_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object axisId_ = "";
    /**
     * string axis_id = 1;
     * @return The axisId.
     */
    @java.lang.Override
    public java.lang.String getAxisId() {
      java.lang.Object ref = axisId_;
      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();
        axisId_ = s;
        return s;
      }
    }
    /**
     * string axis_id = 1;
     * @return The bytes for axisId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAxisIdBytes() {
      java.lang.Object ref = axisId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        axisId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_FIELD_NUMBER = 2;
    private int type_ = 0;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
     * @return The enum numeric value on the wire for type.
     */
    @java.lang.Override public int getTypeValue() {
      return type_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
     * @return The type.
     */
    @java.lang.Override public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType getType() {
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.forNumber(type_);
      return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.UNRECOGNIZED : result;
    }

    public static final int TABLE_ID_FIELD_NUMBER = 3;
    private int tableId_ = 0;
    /**
     * int32 table_id = 3;
     * @return The tableId.
     */
    @java.lang.Override
    public int getTableId() {
      return tableId_;
    }

    public static final int PARTITIONED_TABLE_ID_FIELD_NUMBER = 4;
    private int partitionedTableId_ = 0;
    /**
     * int32 partitioned_table_id = 4;
     * @return The partitionedTableId.
     */
    @java.lang.Override
    public int getPartitionedTableId() {
      return partitionedTableId_;
    }

    public static final int COLUMN_NAME_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object columnName_ = "";
    /**
     * string column_name = 5;
     * @return The columnName.
     */
    @java.lang.Override
    public java.lang.String getColumnName() {
      java.lang.Object ref = columnName_;
      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();
        columnName_ = s;
        return s;
      }
    }
    /**
     * string column_name = 5;
     * @return The bytes for columnName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getColumnNameBytes() {
      java.lang.Object ref = columnName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        columnName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COLUMN_TYPE_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object columnType_ = "";
    /**
     * string column_type = 6;
     * @return The columnType.
     */
    @java.lang.Override
    public java.lang.String getColumnType() {
      java.lang.Object ref = columnType_;
      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();
        columnType_ = s;
        return s;
      }
    }
    /**
     * string column_type = 6;
     * @return The bytes for columnType.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getColumnTypeBytes() {
      java.lang.Object ref = columnType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        columnType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ONE_CLICK_FIELD_NUMBER = 7;
    private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor oneClick_;
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
     * @return Whether the oneClick field is set.
     */
    @java.lang.Override
    public boolean hasOneClick() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
     * @return The oneClick.
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor getOneClick() {
      return oneClick_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.getDefaultInstance() : oneClick_;
    }
    /**
     * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
     */
    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptorOrBuilder getOneClickOrBuilder() {
      return oneClick_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.getDefaultInstance() : oneClick_;
    }

    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(axisId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, axisId_);
      }
      if (type_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.X.getNumber()) {
        output.writeEnum(2, type_);
      }
      if (tableId_ != 0) {
        output.writeInt32(3, tableId_);
      }
      if (partitionedTableId_ != 0) {
        output.writeInt32(4, partitionedTableId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, columnName_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnType_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, columnType_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(7, getOneClick());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(axisId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, axisId_);
      }
      if (type_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.X.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, type_);
      }
      if (tableId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, tableId_);
      }
      if (partitionedTableId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, partitionedTableId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, columnName_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnType_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, columnType_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getOneClick());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor) obj;

      if (!getAxisId()
          .equals(other.getAxisId())) return false;
      if (type_ != other.type_) return false;
      if (getTableId()
          != other.getTableId()) return false;
      if (getPartitionedTableId()
          != other.getPartitionedTableId()) return false;
      if (!getColumnName()
          .equals(other.getColumnName())) return false;
      if (!getColumnType()
          .equals(other.getColumnType())) return false;
      if (hasOneClick() != other.hasOneClick()) return false;
      if (hasOneClick()) {
        if (!getOneClick()
            .equals(other.getOneClick())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) 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) + AXIS_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAxisId().hashCode();
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + type_;
      hash = (37 * hash) + TABLE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getTableId();
      hash = (37 * hash) + PARTITIONED_TABLE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getPartitionedTableId();
      hash = (37 * hash) + COLUMN_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getColumnName().hashCode();
      hash = (37 * hash) + COLUMN_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getColumnType().hashCode();
      if (hasOneClick()) {
        hash = (37 * hash) + ONE_CLICK_FIELD_NUMBER;
        hash = (53 * hash) + getOneClick().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_SourceDescriptor_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_SourceDescriptor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getOneClickFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        axisId_ = "";
        type_ = 0;
        tableId_ = 0;
        partitionedTableId_ = 0;
        columnName_ = "";
        columnType_ = "";
        oneClick_ = null;
        if (oneClickBuilder_ != null) {
          oneClickBuilder_.dispose();
          oneClickBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_SourceDescriptor_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.axisId_ = axisId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.type_ = type_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.tableId_ = tableId_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.partitionedTableId_ = partitionedTableId_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.columnName_ = columnName_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.columnType_ = columnType_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.oneClick_ = oneClickBuilder_ == null
              ? oneClick_
              : oneClickBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor.getDefaultInstance()) return this;
        if (!other.getAxisId().isEmpty()) {
          axisId_ = other.axisId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.type_ != 0) {
          setTypeValue(other.getTypeValue());
        }
        if (other.getTableId() != 0) {
          setTableId(other.getTableId());
        }
        if (other.getPartitionedTableId() != 0) {
          setPartitionedTableId(other.getPartitionedTableId());
        }
        if (!other.getColumnName().isEmpty()) {
          columnName_ = other.columnName_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (!other.getColumnType().isEmpty()) {
          columnType_ = other.columnType_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (other.hasOneClick()) {
          mergeOneClick(other.getOneClick());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                axisId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                type_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                tableId_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                partitionedTableId_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                columnName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                columnType_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    getOneClickFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object axisId_ = "";
      /**
       * string axis_id = 1;
       * @return The axisId.
       */
      public java.lang.String getAxisId() {
        java.lang.Object ref = axisId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          axisId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string axis_id = 1;
       * @return The bytes for axisId.
       */
      public com.google.protobuf.ByteString
          getAxisIdBytes() {
        java.lang.Object ref = axisId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          axisId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string axis_id = 1;
       * @param value The axisId to set.
       * @return This builder for chaining.
       */
      public Builder setAxisId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        axisId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string axis_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearAxisId() {
        axisId_ = getDefaultInstance().getAxisId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string axis_id = 1;
       * @param value The bytes for axisId to set.
       * @return This builder for chaining.
       */
      public Builder setAxisIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        axisId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int type_ = 0;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
       * @return The enum numeric value on the wire for type.
       */
      @java.lang.Override public int getTypeValue() {
        return type_;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
       * @param value The enum numeric value on the wire for type to set.
       * @return This builder for chaining.
       */
      public Builder setTypeValue(int value) {
        type_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
       * @return The type.
       */
      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType getType() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType result = io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.forNumber(type_);
        return result == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType.UNRECOGNIZED : result;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceType type = 2;
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = 0;
        onChanged();
        return this;
      }

      private int tableId_ ;
      /**
       * int32 table_id = 3;
       * @return The tableId.
       */
      @java.lang.Override
      public int getTableId() {
        return tableId_;
      }
      /**
       * int32 table_id = 3;
       * @param value The tableId to set.
       * @return This builder for chaining.
       */
      public Builder setTableId(int value) {

        tableId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * int32 table_id = 3;
       * @return This builder for chaining.
       */
      public Builder clearTableId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        tableId_ = 0;
        onChanged();
        return this;
      }

      private int partitionedTableId_ ;
      /**
       * int32 partitioned_table_id = 4;
       * @return The partitionedTableId.
       */
      @java.lang.Override
      public int getPartitionedTableId() {
        return partitionedTableId_;
      }
      /**
       * int32 partitioned_table_id = 4;
       * @param value The partitionedTableId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionedTableId(int value) {

        partitionedTableId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * int32 partitioned_table_id = 4;
       * @return This builder for chaining.
       */
      public Builder clearPartitionedTableId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        partitionedTableId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object columnName_ = "";
      /**
       * string column_name = 5;
       * @return The columnName.
       */
      public java.lang.String getColumnName() {
        java.lang.Object ref = columnName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          columnName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string column_name = 5;
       * @return The bytes for columnName.
       */
      public com.google.protobuf.ByteString
          getColumnNameBytes() {
        java.lang.Object ref = columnName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          columnName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string column_name = 5;
       * @param value The columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        columnName_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * string column_name = 5;
       * @return This builder for chaining.
       */
      public Builder clearColumnName() {
        columnName_ = getDefaultInstance().getColumnName();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * string column_name = 5;
       * @param value The bytes for columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        columnName_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private java.lang.Object columnType_ = "";
      /**
       * string column_type = 6;
       * @return The columnType.
       */
      public java.lang.String getColumnType() {
        java.lang.Object ref = columnType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          columnType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string column_type = 6;
       * @return The bytes for columnType.
       */
      public com.google.protobuf.ByteString
          getColumnTypeBytes() {
        java.lang.Object ref = columnType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          columnType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string column_type = 6;
       * @param value The columnType to set.
       * @return This builder for chaining.
       */
      public Builder setColumnType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        columnType_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * string column_type = 6;
       * @return This builder for chaining.
       */
      public Builder clearColumnType() {
        columnType_ = getDefaultInstance().getColumnType();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * string column_type = 6;
       * @param value The bytes for columnType to set.
       * @return This builder for chaining.
       */
      public Builder setColumnTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        columnType_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      private io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor oneClick_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptorOrBuilder> oneClickBuilder_;
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
       * @return Whether the oneClick field is set.
       */
      public boolean hasOneClick() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
       * @return The oneClick.
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor getOneClick() {
        if (oneClickBuilder_ == null) {
          return oneClick_ == null ? io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.getDefaultInstance() : oneClick_;
        } else {
          return oneClickBuilder_.getMessage();
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
       */
      public Builder setOneClick(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor value) {
        if (oneClickBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          oneClick_ = value;
        } else {
          oneClickBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
       */
      public Builder setOneClick(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.Builder builderForValue) {
        if (oneClickBuilder_ == null) {
          oneClick_ = builderForValue.build();
        } else {
          oneClickBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
       */
      public Builder mergeOneClick(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor value) {
        if (oneClickBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            oneClick_ != null &&
            oneClick_ != io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.getDefaultInstance()) {
            getOneClickBuilder().mergeFrom(value);
          } else {
            oneClick_ = value;
          }
        } else {
          oneClickBuilder_.mergeFrom(value);
        }
        if (oneClick_ != null) {
          bitField0_ |= 0x00000040;
          onChanged();
        }
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
       */
      public Builder clearOneClick() {
        bitField0_ = (bitField0_ & ~0x00000040);
        oneClick_ = null;
        if (oneClickBuilder_ != null) {
          oneClickBuilder_.dispose();
          oneClickBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.Builder getOneClickBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getOneClickFieldBuilder().getBuilder();
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
       */
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptorOrBuilder getOneClickOrBuilder() {
        if (oneClickBuilder_ != null) {
          return oneClickBuilder_.getMessageOrBuilder();
        } else {
          return oneClick_ == null ?
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.getDefaultInstance() : oneClick_;
        }
      }
      /**
       * .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor one_click = 7;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptorOrBuilder> 
          getOneClickFieldBuilder() {
        if (oneClickBuilder_ == null) {
          oneClickBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptorOrBuilder>(
                  getOneClick(),
                  getParentForChildren(),
                  isClean());
          oneClick_ = null;
        }
        return oneClickBuilder_;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public SourceDescriptor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.SourceDescriptor getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OneClickDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated string columns = 1;
     * @return A list containing the columns.
     */
    java.util.List
        getColumnsList();
    /**
     * repeated string columns = 1;
     * @return The count of columns.
     */
    int getColumnsCount();
    /**
     * repeated string columns = 1;
     * @param index The index of the element to return.
     * @return The columns at the given index.
     */
    java.lang.String getColumns(int index);
    /**
     * repeated string columns = 1;
     * @param index The index of the value to return.
     * @return The bytes of the columns at the given index.
     */
    com.google.protobuf.ByteString
        getColumnsBytes(int index);

    /**
     * repeated string column_types = 2;
     * @return A list containing the columnTypes.
     */
    java.util.List
        getColumnTypesList();
    /**
     * repeated string column_types = 2;
     * @return The count of columnTypes.
     */
    int getColumnTypesCount();
    /**
     * repeated string column_types = 2;
     * @param index The index of the element to return.
     * @return The columnTypes at the given index.
     */
    java.lang.String getColumnTypes(int index);
    /**
     * repeated string column_types = 2;
     * @param index The index of the value to return.
     * @return The bytes of the columnTypes at the given index.
     */
    com.google.protobuf.ByteString
        getColumnTypesBytes(int index);

    /**
     * bool require_all_filters_to_display = 3;
     * @return The requireAllFiltersToDisplay.
     */
    boolean getRequireAllFiltersToDisplay();
  }
  /**
   * Protobuf type {@code io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor}
   */
  public static final class OneClickDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor)
      OneClickDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OneClickDescriptor.newBuilder() to construct.
    private OneClickDescriptor(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private OneClickDescriptor() {
      columns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      columnTypes_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_OneClickDescriptor_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_OneClickDescriptor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.Builder.class);
    }

    public static final int COLUMNS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList columns_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string columns = 1;
     * @return A list containing the columns.
     */
    public com.google.protobuf.ProtocolStringList
        getColumnsList() {
      return columns_;
    }
    /**
     * repeated string columns = 1;
     * @return The count of columns.
     */
    public int getColumnsCount() {
      return columns_.size();
    }
    /**
     * repeated string columns = 1;
     * @param index The index of the element to return.
     * @return The columns at the given index.
     */
    public java.lang.String getColumns(int index) {
      return columns_.get(index);
    }
    /**
     * repeated string columns = 1;
     * @param index The index of the value to return.
     * @return The bytes of the columns at the given index.
     */
    public com.google.protobuf.ByteString
        getColumnsBytes(int index) {
      return columns_.getByteString(index);
    }

    public static final int COLUMN_TYPES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList columnTypes_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string column_types = 2;
     * @return A list containing the columnTypes.
     */
    public com.google.protobuf.ProtocolStringList
        getColumnTypesList() {
      return columnTypes_;
    }
    /**
     * repeated string column_types = 2;
     * @return The count of columnTypes.
     */
    public int getColumnTypesCount() {
      return columnTypes_.size();
    }
    /**
     * repeated string column_types = 2;
     * @param index The index of the element to return.
     * @return The columnTypes at the given index.
     */
    public java.lang.String getColumnTypes(int index) {
      return columnTypes_.get(index);
    }
    /**
     * repeated string column_types = 2;
     * @param index The index of the value to return.
     * @return The bytes of the columnTypes at the given index.
     */
    public com.google.protobuf.ByteString
        getColumnTypesBytes(int index) {
      return columnTypes_.getByteString(index);
    }

    public static final int REQUIRE_ALL_FILTERS_TO_DISPLAY_FIELD_NUMBER = 3;
    private boolean requireAllFiltersToDisplay_ = false;
    /**
     * bool require_all_filters_to_display = 3;
     * @return The requireAllFiltersToDisplay.
     */
    @java.lang.Override
    public boolean getRequireAllFiltersToDisplay() {
      return requireAllFiltersToDisplay_;
    }

    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 < columns_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, columns_.getRaw(i));
      }
      for (int i = 0; i < columnTypes_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, columnTypes_.getRaw(i));
      }
      if (requireAllFiltersToDisplay_ != false) {
        output.writeBool(3, requireAllFiltersToDisplay_);
      }
      getUnknownFields().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 < columns_.size(); i++) {
          dataSize += computeStringSizeNoTag(columns_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getColumnsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < columnTypes_.size(); i++) {
          dataSize += computeStringSizeNoTag(columnTypes_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getColumnTypesList().size();
      }
      if (requireAllFiltersToDisplay_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, requireAllFiltersToDisplay_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor)) {
        return super.equals(obj);
      }
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor) obj;

      if (!getColumnsList()
          .equals(other.getColumnsList())) return false;
      if (!getColumnTypesList()
          .equals(other.getColumnTypesList())) return false;
      if (getRequireAllFiltersToDisplay()
          != other.getRequireAllFiltersToDisplay()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getColumnsCount() > 0) {
        hash = (37 * hash) + COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getColumnsList().hashCode();
      }
      if (getColumnTypesCount() > 0) {
        hash = (37 * hash) + COLUMN_TYPES_FIELD_NUMBER;
        hash = (53 * hash) + getColumnTypesList().hashCode();
      }
      hash = (37 * hash) + REQUIRE_ALL_FILTERS_TO_DISPLAY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getRequireAllFiltersToDisplay());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor)
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_OneClickDescriptor_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_OneClickDescriptor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.Builder.class);
      }

      // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        columns_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        columnTypes_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        requireAllFiltersToDisplay_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_OneClickDescriptor_descriptor;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor getDefaultInstanceForType() {
        return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.getDefaultInstance();
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor build() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor buildPartial() {
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          columns_.makeImmutable();
          result.columns_ = columns_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          columnTypes_.makeImmutable();
          result.columnTypes_ = columnTypes_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.requireAllFiltersToDisplay_ = requireAllFiltersToDisplay_;
        }
      }

      @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor) {
          return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor other) {
        if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor.getDefaultInstance()) return this;
        if (!other.columns_.isEmpty()) {
          if (columns_.isEmpty()) {
            columns_ = other.columns_;
            bitField0_ |= 0x00000001;
          } else {
            ensureColumnsIsMutable();
            columns_.addAll(other.columns_);
          }
          onChanged();
        }
        if (!other.columnTypes_.isEmpty()) {
          if (columnTypes_.isEmpty()) {
            columnTypes_ = other.columnTypes_;
            bitField0_ |= 0x00000002;
          } else {
            ensureColumnTypesIsMutable();
            columnTypes_.addAll(other.columnTypes_);
          }
          onChanged();
        }
        if (other.getRequireAllFiltersToDisplay() != false) {
          setRequireAllFiltersToDisplay(other.getRequireAllFiltersToDisplay());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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();
                ensureColumnsIsMutable();
                columns_.add(s);
                break;
              } // case 10
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureColumnTypesIsMutable();
                columnTypes_.add(s);
                break;
              } // case 18
              case 24: {
                requireAllFiltersToDisplay_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringArrayList columns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureColumnsIsMutable() {
        if (!columns_.isModifiable()) {
          columns_ = new com.google.protobuf.LazyStringArrayList(columns_);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * repeated string columns = 1;
       * @return A list containing the columns.
       */
      public com.google.protobuf.ProtocolStringList
          getColumnsList() {
        columns_.makeImmutable();
        return columns_;
      }
      /**
       * repeated string columns = 1;
       * @return The count of columns.
       */
      public int getColumnsCount() {
        return columns_.size();
      }
      /**
       * repeated string columns = 1;
       * @param index The index of the element to return.
       * @return The columns at the given index.
       */
      public java.lang.String getColumns(int index) {
        return columns_.get(index);
      }
      /**
       * repeated string columns = 1;
       * @param index The index of the value to return.
       * @return The bytes of the columns at the given index.
       */
      public com.google.protobuf.ByteString
          getColumnsBytes(int index) {
        return columns_.getByteString(index);
      }
      /**
       * repeated string columns = 1;
       * @param index The index to set the value at.
       * @param value The columns to set.
       * @return This builder for chaining.
       */
      public Builder setColumns(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureColumnsIsMutable();
        columns_.set(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * repeated string columns = 1;
       * @param value The columns to add.
       * @return This builder for chaining.
       */
      public Builder addColumns(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureColumnsIsMutable();
        columns_.add(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * repeated string columns = 1;
       * @param values The columns to add.
       * @return This builder for chaining.
       */
      public Builder addAllColumns(
          java.lang.Iterable values) {
        ensureColumnsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, columns_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * repeated string columns = 1;
       * @return This builder for chaining.
       */
      public Builder clearColumns() {
        columns_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);;
        onChanged();
        return this;
      }
      /**
       * repeated string columns = 1;
       * @param value The bytes of the columns to add.
       * @return This builder for chaining.
       */
      public Builder addColumnsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureColumnsIsMutable();
        columns_.add(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList columnTypes_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureColumnTypesIsMutable() {
        if (!columnTypes_.isModifiable()) {
          columnTypes_ = new com.google.protobuf.LazyStringArrayList(columnTypes_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * repeated string column_types = 2;
       * @return A list containing the columnTypes.
       */
      public com.google.protobuf.ProtocolStringList
          getColumnTypesList() {
        columnTypes_.makeImmutable();
        return columnTypes_;
      }
      /**
       * repeated string column_types = 2;
       * @return The count of columnTypes.
       */
      public int getColumnTypesCount() {
        return columnTypes_.size();
      }
      /**
       * repeated string column_types = 2;
       * @param index The index of the element to return.
       * @return The columnTypes at the given index.
       */
      public java.lang.String getColumnTypes(int index) {
        return columnTypes_.get(index);
      }
      /**
       * repeated string column_types = 2;
       * @param index The index of the value to return.
       * @return The bytes of the columnTypes at the given index.
       */
      public com.google.protobuf.ByteString
          getColumnTypesBytes(int index) {
        return columnTypes_.getByteString(index);
      }
      /**
       * repeated string column_types = 2;
       * @param index The index to set the value at.
       * @param value The columnTypes to set.
       * @return This builder for chaining.
       */
      public Builder setColumnTypes(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureColumnTypesIsMutable();
        columnTypes_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string column_types = 2;
       * @param value The columnTypes to add.
       * @return This builder for chaining.
       */
      public Builder addColumnTypes(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureColumnTypesIsMutable();
        columnTypes_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string column_types = 2;
       * @param values The columnTypes to add.
       * @return This builder for chaining.
       */
      public Builder addAllColumnTypes(
          java.lang.Iterable values) {
        ensureColumnTypesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, columnTypes_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string column_types = 2;
       * @return This builder for chaining.
       */
      public Builder clearColumnTypes() {
        columnTypes_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * repeated string column_types = 2;
       * @param value The bytes of the columnTypes to add.
       * @return This builder for chaining.
       */
      public Builder addColumnTypesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureColumnTypesIsMutable();
        columnTypes_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private boolean requireAllFiltersToDisplay_ ;
      /**
       * bool require_all_filters_to_display = 3;
       * @return The requireAllFiltersToDisplay.
       */
      @java.lang.Override
      public boolean getRequireAllFiltersToDisplay() {
        return requireAllFiltersToDisplay_;
      }
      /**
       * bool require_all_filters_to_display = 3;
       * @param value The requireAllFiltersToDisplay to set.
       * @return This builder for chaining.
       */
      public Builder setRequireAllFiltersToDisplay(boolean value) {

        requireAllFiltersToDisplay_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * bool require_all_filters_to_display = 3;
       * @return This builder for chaining.
       */
      public Builder clearRequireAllFiltersToDisplay() {
        bitField0_ = (bitField0_ & ~0x00000004);
        requireAllFiltersToDisplay_ = false;
        onChanged();
        return this;
      }
      @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor)
    }

    // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor)
    private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor();
    }

    public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public OneClickDescriptor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.OneClickDescriptor getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private int bitField0_;
  public static final int TITLE_FIELD_NUMBER = 1;
  @SuppressWarnings("serial")
  private volatile java.lang.Object title_ = "";
  /**
   * optional string title = 1;
   * @return Whether the title field is set.
   */
  @java.lang.Override
  public boolean hasTitle() {
    return ((bitField0_ & 0x00000001) != 0);
  }
  /**
   * optional string title = 1;
   * @return The title.
   */
  @java.lang.Override
  public java.lang.String getTitle() {
    java.lang.Object ref = title_;
    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();
      title_ = s;
      return s;
    }
  }
  /**
   * optional string title = 1;
   * @return The bytes for title.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getTitleBytes() {
    java.lang.Object ref = title_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      title_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int TITLE_FONT_FIELD_NUMBER = 2;
  @SuppressWarnings("serial")
  private volatile java.lang.Object titleFont_ = "";
  /**
   * string title_font = 2;
   * @return The titleFont.
   */
  @java.lang.Override
  public java.lang.String getTitleFont() {
    java.lang.Object ref = titleFont_;
    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();
      titleFont_ = s;
      return s;
    }
  }
  /**
   * string title_font = 2;
   * @return The bytes for titleFont.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getTitleFontBytes() {
    java.lang.Object ref = titleFont_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      titleFont_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int TITLE_COLOR_FIELD_NUMBER = 3;
  @SuppressWarnings("serial")
  private volatile java.lang.Object titleColor_ = "";
  /**
   * string title_color = 3;
   * @return The titleColor.
   */
  @java.lang.Override
  public java.lang.String getTitleColor() {
    java.lang.Object ref = titleColor_;
    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();
      titleColor_ = s;
      return s;
    }
  }
  /**
   * string title_color = 3;
   * @return The bytes for titleColor.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getTitleColorBytes() {
    java.lang.Object ref = titleColor_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      titleColor_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int UPDATE_INTERVAL_FIELD_NUMBER = 7;
  private long updateInterval_ = 0L;
  /**
   * int64 update_interval = 7 [jstype = JS_STRING];
   * @return The updateInterval.
   */
  @java.lang.Override
  public long getUpdateInterval() {
    return updateInterval_;
  }

  public static final int COLS_FIELD_NUMBER = 8;
  private int cols_ = 0;
  /**
   * int32 cols = 8;
   * @return The cols.
   */
  @java.lang.Override
  public int getCols() {
    return cols_;
  }

  public static final int ROWS_FIELD_NUMBER = 9;
  private int rows_ = 0;
  /**
   * int32 rows = 9;
   * @return The rows.
   */
  @java.lang.Override
  public int getRows() {
    return rows_;
  }

  public static final int CHARTS_FIELD_NUMBER = 10;
  @SuppressWarnings("serial")
  private java.util.List charts_;
  /**
   * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
   */
  @java.lang.Override
  public java.util.List getChartsList() {
    return charts_;
  }
  /**
   * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
   */
  @java.lang.Override
  public java.util.List 
      getChartsOrBuilderList() {
    return charts_;
  }
  /**
   * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
   */
  @java.lang.Override
  public int getChartsCount() {
    return charts_.size();
  }
  /**
   * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
   */
  @java.lang.Override
  public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor getCharts(int index) {
    return charts_.get(index);
  }
  /**
   * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
   */
  @java.lang.Override
  public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptorOrBuilder getChartsOrBuilder(
      int index) {
    return charts_.get(index);
  }

  public static final int ERRORS_FIELD_NUMBER = 13;
  @SuppressWarnings("serial")
  private com.google.protobuf.LazyStringArrayList errors_ =
      com.google.protobuf.LazyStringArrayList.emptyList();
  /**
   * repeated string errors = 13;
   * @return A list containing the errors.
   */
  public com.google.protobuf.ProtocolStringList
      getErrorsList() {
    return errors_;
  }
  /**
   * repeated string errors = 13;
   * @return The count of errors.
   */
  public int getErrorsCount() {
    return errors_.size();
  }
  /**
   * repeated string errors = 13;
   * @param index The index of the element to return.
   * @return The errors at the given index.
   */
  public java.lang.String getErrors(int index) {
    return errors_.get(index);
  }
  /**
   * repeated string errors = 13;
   * @param index The index of the value to return.
   * @return The bytes of the errors at the given index.
   */
  public com.google.protobuf.ByteString
      getErrorsBytes(int index) {
    return errors_.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 (((bitField0_ & 0x00000001) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, title_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(titleFont_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, titleFont_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(titleColor_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, titleColor_);
    }
    if (updateInterval_ != 0L) {
      output.writeInt64(7, updateInterval_);
    }
    if (cols_ != 0) {
      output.writeInt32(8, cols_);
    }
    if (rows_ != 0) {
      output.writeInt32(9, rows_);
    }
    for (int i = 0; i < charts_.size(); i++) {
      output.writeMessage(10, charts_.get(i));
    }
    for (int i = 0; i < errors_.size(); i++) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 13, errors_.getRaw(i));
    }
    getUnknownFields().writeTo(output);
  }

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

    size = 0;
    if (((bitField0_ & 0x00000001) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, title_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(titleFont_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, titleFont_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(titleColor_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, titleColor_);
    }
    if (updateInterval_ != 0L) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt64Size(7, updateInterval_);
    }
    if (cols_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(8, cols_);
    }
    if (rows_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(9, rows_);
    }
    for (int i = 0; i < charts_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(10, charts_.get(i));
    }
    {
      int dataSize = 0;
      for (int i = 0; i < errors_.size(); i++) {
        dataSize += computeStringSizeNoTag(errors_.getRaw(i));
      }
      size += dataSize;
      size += 1 * getErrorsList().size();
    }
    size += getUnknownFields().getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
     return true;
    }
    if (!(obj instanceof io.deephaven.proto.backplane.script.grpc.FigureDescriptor)) {
      return super.equals(obj);
    }
    io.deephaven.proto.backplane.script.grpc.FigureDescriptor other = (io.deephaven.proto.backplane.script.grpc.FigureDescriptor) obj;

    if (hasTitle() != other.hasTitle()) return false;
    if (hasTitle()) {
      if (!getTitle()
          .equals(other.getTitle())) return false;
    }
    if (!getTitleFont()
        .equals(other.getTitleFont())) return false;
    if (!getTitleColor()
        .equals(other.getTitleColor())) return false;
    if (getUpdateInterval()
        != other.getUpdateInterval()) return false;
    if (getCols()
        != other.getCols()) return false;
    if (getRows()
        != other.getRows()) return false;
    if (!getChartsList()
        .equals(other.getChartsList())) return false;
    if (!getErrorsList()
        .equals(other.getErrorsList())) return false;
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasTitle()) {
      hash = (37 * hash) + TITLE_FIELD_NUMBER;
      hash = (53 * hash) + getTitle().hashCode();
    }
    hash = (37 * hash) + TITLE_FONT_FIELD_NUMBER;
    hash = (53 * hash) + getTitleFont().hashCode();
    hash = (37 * hash) + TITLE_COLOR_FIELD_NUMBER;
    hash = (53 * hash) + getTitleColor().hashCode();
    hash = (37 * hash) + UPDATE_INTERVAL_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        getUpdateInterval());
    hash = (37 * hash) + COLS_FIELD_NUMBER;
    hash = (53 * hash) + getCols();
    hash = (37 * hash) + ROWS_FIELD_NUMBER;
    hash = (53 * hash) + getRows();
    if (getChartsCount() > 0) {
      hash = (37 * hash) + CHARTS_FIELD_NUMBER;
      hash = (53 * hash) + getChartsList().hashCode();
    }
    if (getErrorsCount() > 0) {
      hash = (37 * hash) + ERRORS_FIELD_NUMBER;
      hash = (53 * hash) + getErrorsList().hashCode();
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input);
  }

  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor 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(io.deephaven.proto.backplane.script.grpc.FigureDescriptor 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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder implements
      // @@protoc_insertion_point(builder_implements:io.deephaven.proto.backplane.script.grpc.FigureDescriptor)
      io.deephaven.proto.backplane.script.grpc.FigureDescriptorOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.class, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.Builder.class);
    }

    // Construct using io.deephaven.proto.backplane.script.grpc.FigureDescriptor.newBuilder()
    private Builder() {

    }

    private Builder(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);

    }
    @java.lang.Override
    public Builder clear() {
      super.clear();
      bitField0_ = 0;
      title_ = "";
      titleFont_ = "";
      titleColor_ = "";
      updateInterval_ = 0L;
      cols_ = 0;
      rows_ = 0;
      if (chartsBuilder_ == null) {
        charts_ = java.util.Collections.emptyList();
      } else {
        charts_ = null;
        chartsBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000040);
      errors_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return io.deephaven.proto.backplane.script.grpc.Console.internal_static_io_deephaven_proto_backplane_script_grpc_FigureDescriptor_descriptor;
    }

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor getDefaultInstanceForType() {
      return io.deephaven.proto.backplane.script.grpc.FigureDescriptor.getDefaultInstance();
    }

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor build() {
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor buildPartial() {
      io.deephaven.proto.backplane.script.grpc.FigureDescriptor result = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor(this);
      buildPartialRepeatedFields(result);
      if (bitField0_ != 0) { buildPartial0(result); }
      onBuilt();
      return result;
    }

    private void buildPartialRepeatedFields(io.deephaven.proto.backplane.script.grpc.FigureDescriptor result) {
      if (chartsBuilder_ == null) {
        if (((bitField0_ & 0x00000040) != 0)) {
          charts_ = java.util.Collections.unmodifiableList(charts_);
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.charts_ = charts_;
      } else {
        result.charts_ = chartsBuilder_.build();
      }
    }

    private void buildPartial0(io.deephaven.proto.backplane.script.grpc.FigureDescriptor result) {
      int from_bitField0_ = bitField0_;
      int to_bitField0_ = 0;
      if (((from_bitField0_ & 0x00000001) != 0)) {
        result.title_ = title_;
        to_bitField0_ |= 0x00000001;
      }
      if (((from_bitField0_ & 0x00000002) != 0)) {
        result.titleFont_ = titleFont_;
      }
      if (((from_bitField0_ & 0x00000004) != 0)) {
        result.titleColor_ = titleColor_;
      }
      if (((from_bitField0_ & 0x00000008) != 0)) {
        result.updateInterval_ = updateInterval_;
      }
      if (((from_bitField0_ & 0x00000010) != 0)) {
        result.cols_ = cols_;
      }
      if (((from_bitField0_ & 0x00000020) != 0)) {
        result.rows_ = rows_;
      }
      if (((from_bitField0_ & 0x00000080) != 0)) {
        errors_.makeImmutable();
        result.errors_ = errors_;
      }
      result.bitField0_ |= to_bitField0_;
    }

    @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 io.deephaven.proto.backplane.script.grpc.FigureDescriptor) {
        return mergeFrom((io.deephaven.proto.backplane.script.grpc.FigureDescriptor)other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(io.deephaven.proto.backplane.script.grpc.FigureDescriptor other) {
      if (other == io.deephaven.proto.backplane.script.grpc.FigureDescriptor.getDefaultInstance()) return this;
      if (other.hasTitle()) {
        title_ = other.title_;
        bitField0_ |= 0x00000001;
        onChanged();
      }
      if (!other.getTitleFont().isEmpty()) {
        titleFont_ = other.titleFont_;
        bitField0_ |= 0x00000002;
        onChanged();
      }
      if (!other.getTitleColor().isEmpty()) {
        titleColor_ = other.titleColor_;
        bitField0_ |= 0x00000004;
        onChanged();
      }
      if (other.getUpdateInterval() != 0L) {
        setUpdateInterval(other.getUpdateInterval());
      }
      if (other.getCols() != 0) {
        setCols(other.getCols());
      }
      if (other.getRows() != 0) {
        setRows(other.getRows());
      }
      if (chartsBuilder_ == null) {
        if (!other.charts_.isEmpty()) {
          if (charts_.isEmpty()) {
            charts_ = other.charts_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureChartsIsMutable();
            charts_.addAll(other.charts_);
          }
          onChanged();
        }
      } else {
        if (!other.charts_.isEmpty()) {
          if (chartsBuilder_.isEmpty()) {
            chartsBuilder_.dispose();
            chartsBuilder_ = null;
            charts_ = other.charts_;
            bitField0_ = (bitField0_ & ~0x00000040);
            chartsBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getChartsFieldBuilder() : null;
          } else {
            chartsBuilder_.addAllMessages(other.charts_);
          }
        }
      }
      if (!other.errors_.isEmpty()) {
        if (errors_.isEmpty()) {
          errors_ = other.errors_;
          bitField0_ |= 0x00000080;
        } else {
          ensureErrorsIsMutable();
          errors_.addAll(other.errors_);
        }
        onChanged();
      }
      this.mergeUnknownFields(other.getUnknownFields());
      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 {
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              title_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000001;
              break;
            } // case 10
            case 18: {
              titleFont_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000002;
              break;
            } // case 18
            case 26: {
              titleColor_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000004;
              break;
            } // case 26
            case 56: {
              updateInterval_ = input.readInt64();
              bitField0_ |= 0x00000008;
              break;
            } // case 56
            case 64: {
              cols_ = input.readInt32();
              bitField0_ |= 0x00000010;
              break;
            } // case 64
            case 72: {
              rows_ = input.readInt32();
              bitField0_ |= 0x00000020;
              break;
            } // case 72
            case 82: {
              io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor m =
                  input.readMessage(
                      io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.parser(),
                      extensionRegistry);
              if (chartsBuilder_ == null) {
                ensureChartsIsMutable();
                charts_.add(m);
              } else {
                chartsBuilder_.addMessage(m);
              }
              break;
            } // case 82
            case 106: {
              java.lang.String s = input.readStringRequireUtf8();
              ensureErrorsIsMutable();
              errors_.add(s);
              break;
            } // case 106
            default: {
              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                done = true; // was an endgroup tag
              }
              break;
            } // default:
          } // switch (tag)
        } // while (!done)
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.unwrapIOException();
      } finally {
        onChanged();
      } // finally
      return this;
    }
    private int bitField0_;

    private java.lang.Object title_ = "";
    /**
     * optional string title = 1;
     * @return Whether the title field is set.
     */
    public boolean hasTitle() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string title = 1;
     * @return The title.
     */
    public java.lang.String getTitle() {
      java.lang.Object ref = title_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        title_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * optional string title = 1;
     * @return The bytes for title.
     */
    public com.google.protobuf.ByteString
        getTitleBytes() {
      java.lang.Object ref = title_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        title_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * optional string title = 1;
     * @param value The title to set.
     * @return This builder for chaining.
     */
    public Builder setTitle(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      title_ = value;
      bitField0_ |= 0x00000001;
      onChanged();
      return this;
    }
    /**
     * optional string title = 1;
     * @return This builder for chaining.
     */
    public Builder clearTitle() {
      title_ = getDefaultInstance().getTitle();
      bitField0_ = (bitField0_ & ~0x00000001);
      onChanged();
      return this;
    }
    /**
     * optional string title = 1;
     * @param value The bytes for title to set.
     * @return This builder for chaining.
     */
    public Builder setTitleBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      title_ = value;
      bitField0_ |= 0x00000001;
      onChanged();
      return this;
    }

    private java.lang.Object titleFont_ = "";
    /**
     * string title_font = 2;
     * @return The titleFont.
     */
    public java.lang.String getTitleFont() {
      java.lang.Object ref = titleFont_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        titleFont_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * string title_font = 2;
     * @return The bytes for titleFont.
     */
    public com.google.protobuf.ByteString
        getTitleFontBytes() {
      java.lang.Object ref = titleFont_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        titleFont_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * string title_font = 2;
     * @param value The titleFont to set.
     * @return This builder for chaining.
     */
    public Builder setTitleFont(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      titleFont_ = value;
      bitField0_ |= 0x00000002;
      onChanged();
      return this;
    }
    /**
     * string title_font = 2;
     * @return This builder for chaining.
     */
    public Builder clearTitleFont() {
      titleFont_ = getDefaultInstance().getTitleFont();
      bitField0_ = (bitField0_ & ~0x00000002);
      onChanged();
      return this;
    }
    /**
     * string title_font = 2;
     * @param value The bytes for titleFont to set.
     * @return This builder for chaining.
     */
    public Builder setTitleFontBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      titleFont_ = value;
      bitField0_ |= 0x00000002;
      onChanged();
      return this;
    }

    private java.lang.Object titleColor_ = "";
    /**
     * string title_color = 3;
     * @return The titleColor.
     */
    public java.lang.String getTitleColor() {
      java.lang.Object ref = titleColor_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        titleColor_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * string title_color = 3;
     * @return The bytes for titleColor.
     */
    public com.google.protobuf.ByteString
        getTitleColorBytes() {
      java.lang.Object ref = titleColor_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        titleColor_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * string title_color = 3;
     * @param value The titleColor to set.
     * @return This builder for chaining.
     */
    public Builder setTitleColor(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      titleColor_ = value;
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }
    /**
     * string title_color = 3;
     * @return This builder for chaining.
     */
    public Builder clearTitleColor() {
      titleColor_ = getDefaultInstance().getTitleColor();
      bitField0_ = (bitField0_ & ~0x00000004);
      onChanged();
      return this;
    }
    /**
     * string title_color = 3;
     * @param value The bytes for titleColor to set.
     * @return This builder for chaining.
     */
    public Builder setTitleColorBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      titleColor_ = value;
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }

    private long updateInterval_ ;
    /**
     * int64 update_interval = 7 [jstype = JS_STRING];
     * @return The updateInterval.
     */
    @java.lang.Override
    public long getUpdateInterval() {
      return updateInterval_;
    }
    /**
     * int64 update_interval = 7 [jstype = JS_STRING];
     * @param value The updateInterval to set.
     * @return This builder for chaining.
     */
    public Builder setUpdateInterval(long value) {

      updateInterval_ = value;
      bitField0_ |= 0x00000008;
      onChanged();
      return this;
    }
    /**
     * int64 update_interval = 7 [jstype = JS_STRING];
     * @return This builder for chaining.
     */
    public Builder clearUpdateInterval() {
      bitField0_ = (bitField0_ & ~0x00000008);
      updateInterval_ = 0L;
      onChanged();
      return this;
    }

    private int cols_ ;
    /**
     * int32 cols = 8;
     * @return The cols.
     */
    @java.lang.Override
    public int getCols() {
      return cols_;
    }
    /**
     * int32 cols = 8;
     * @param value The cols to set.
     * @return This builder for chaining.
     */
    public Builder setCols(int value) {

      cols_ = value;
      bitField0_ |= 0x00000010;
      onChanged();
      return this;
    }
    /**
     * int32 cols = 8;
     * @return This builder for chaining.
     */
    public Builder clearCols() {
      bitField0_ = (bitField0_ & ~0x00000010);
      cols_ = 0;
      onChanged();
      return this;
    }

    private int rows_ ;
    /**
     * int32 rows = 9;
     * @return The rows.
     */
    @java.lang.Override
    public int getRows() {
      return rows_;
    }
    /**
     * int32 rows = 9;
     * @param value The rows to set.
     * @return This builder for chaining.
     */
    public Builder setRows(int value) {

      rows_ = value;
      bitField0_ |= 0x00000020;
      onChanged();
      return this;
    }
    /**
     * int32 rows = 9;
     * @return This builder for chaining.
     */
    public Builder clearRows() {
      bitField0_ = (bitField0_ & ~0x00000020);
      rows_ = 0;
      onChanged();
      return this;
    }

    private java.util.List charts_ =
      java.util.Collections.emptyList();
    private void ensureChartsIsMutable() {
      if (!((bitField0_ & 0x00000040) != 0)) {
        charts_ = new java.util.ArrayList(charts_);
        bitField0_ |= 0x00000040;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptorOrBuilder> chartsBuilder_;

    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public java.util.List getChartsList() {
      if (chartsBuilder_ == null) {
        return java.util.Collections.unmodifiableList(charts_);
      } else {
        return chartsBuilder_.getMessageList();
      }
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public int getChartsCount() {
      if (chartsBuilder_ == null) {
        return charts_.size();
      } else {
        return chartsBuilder_.getCount();
      }
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor getCharts(int index) {
      if (chartsBuilder_ == null) {
        return charts_.get(index);
      } else {
        return chartsBuilder_.getMessage(index);
      }
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public Builder setCharts(
        int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor value) {
      if (chartsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureChartsIsMutable();
        charts_.set(index, value);
        onChanged();
      } else {
        chartsBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public Builder setCharts(
        int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder builderForValue) {
      if (chartsBuilder_ == null) {
        ensureChartsIsMutable();
        charts_.set(index, builderForValue.build());
        onChanged();
      } else {
        chartsBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public Builder addCharts(io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor value) {
      if (chartsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureChartsIsMutable();
        charts_.add(value);
        onChanged();
      } else {
        chartsBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public Builder addCharts(
        int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor value) {
      if (chartsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureChartsIsMutable();
        charts_.add(index, value);
        onChanged();
      } else {
        chartsBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public Builder addCharts(
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder builderForValue) {
      if (chartsBuilder_ == null) {
        ensureChartsIsMutable();
        charts_.add(builderForValue.build());
        onChanged();
      } else {
        chartsBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public Builder addCharts(
        int index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder builderForValue) {
      if (chartsBuilder_ == null) {
        ensureChartsIsMutable();
        charts_.add(index, builderForValue.build());
        onChanged();
      } else {
        chartsBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public Builder addAllCharts(
        java.lang.Iterable values) {
      if (chartsBuilder_ == null) {
        ensureChartsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, charts_);
        onChanged();
      } else {
        chartsBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public Builder clearCharts() {
      if (chartsBuilder_ == null) {
        charts_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
      } else {
        chartsBuilder_.clear();
      }
      return this;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public Builder removeCharts(int index) {
      if (chartsBuilder_ == null) {
        ensureChartsIsMutable();
        charts_.remove(index);
        onChanged();
      } else {
        chartsBuilder_.remove(index);
      }
      return this;
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder getChartsBuilder(
        int index) {
      return getChartsFieldBuilder().getBuilder(index);
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptorOrBuilder getChartsOrBuilder(
        int index) {
      if (chartsBuilder_ == null) {
        return charts_.get(index);  } else {
        return chartsBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public java.util.List 
         getChartsOrBuilderList() {
      if (chartsBuilder_ != null) {
        return chartsBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(charts_);
      }
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder addChartsBuilder() {
      return getChartsFieldBuilder().addBuilder(
          io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.getDefaultInstance());
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder addChartsBuilder(
        int index) {
      return getChartsFieldBuilder().addBuilder(
          index, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.getDefaultInstance());
    }
    /**
     * repeated .io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor charts = 10;
     */
    public java.util.List 
         getChartsBuilderList() {
      return getChartsFieldBuilder().getBuilderList();
    }
    private com.google.protobuf.RepeatedFieldBuilderV3<
        io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptorOrBuilder> 
        getChartsFieldBuilder() {
      if (chartsBuilder_ == null) {
        chartsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptor.Builder, io.deephaven.proto.backplane.script.grpc.FigureDescriptor.ChartDescriptorOrBuilder>(
                charts_,
                ((bitField0_ & 0x00000040) != 0),
                getParentForChildren(),
                isClean());
        charts_ = null;
      }
      return chartsBuilder_;
    }

    private com.google.protobuf.LazyStringArrayList errors_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    private void ensureErrorsIsMutable() {
      if (!errors_.isModifiable()) {
        errors_ = new com.google.protobuf.LazyStringArrayList(errors_);
      }
      bitField0_ |= 0x00000080;
    }
    /**
     * repeated string errors = 13;
     * @return A list containing the errors.
     */
    public com.google.protobuf.ProtocolStringList
        getErrorsList() {
      errors_.makeImmutable();
      return errors_;
    }
    /**
     * repeated string errors = 13;
     * @return The count of errors.
     */
    public int getErrorsCount() {
      return errors_.size();
    }
    /**
     * repeated string errors = 13;
     * @param index The index of the element to return.
     * @return The errors at the given index.
     */
    public java.lang.String getErrors(int index) {
      return errors_.get(index);
    }
    /**
     * repeated string errors = 13;
     * @param index The index of the value to return.
     * @return The bytes of the errors at the given index.
     */
    public com.google.protobuf.ByteString
        getErrorsBytes(int index) {
      return errors_.getByteString(index);
    }
    /**
     * repeated string errors = 13;
     * @param index The index to set the value at.
     * @param value The errors to set.
     * @return This builder for chaining.
     */
    public Builder setErrors(
        int index, java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      ensureErrorsIsMutable();
      errors_.set(index, value);
      bitField0_ |= 0x00000080;
      onChanged();
      return this;
    }
    /**
     * repeated string errors = 13;
     * @param value The errors to add.
     * @return This builder for chaining.
     */
    public Builder addErrors(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      ensureErrorsIsMutable();
      errors_.add(value);
      bitField0_ |= 0x00000080;
      onChanged();
      return this;
    }
    /**
     * repeated string errors = 13;
     * @param values The errors to add.
     * @return This builder for chaining.
     */
    public Builder addAllErrors(
        java.lang.Iterable values) {
      ensureErrorsIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, errors_);
      bitField0_ |= 0x00000080;
      onChanged();
      return this;
    }
    /**
     * repeated string errors = 13;
     * @return This builder for chaining.
     */
    public Builder clearErrors() {
      errors_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
      bitField0_ = (bitField0_ & ~0x00000080);;
      onChanged();
      return this;
    }
    /**
     * repeated string errors = 13;
     * @param value The bytes of the errors to add.
     * @return This builder for chaining.
     */
    public Builder addErrorsBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      ensureErrorsIsMutable();
      errors_.add(value);
      bitField0_ |= 0x00000080;
      onChanged();
      return this;
    }
    @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:io.deephaven.proto.backplane.script.grpc.FigureDescriptor)
  }

  // @@protoc_insertion_point(class_scope:io.deephaven.proto.backplane.script.grpc.FigureDescriptor)
  private static final io.deephaven.proto.backplane.script.grpc.FigureDescriptor DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new io.deephaven.proto.backplane.script.grpc.FigureDescriptor();
  }

  public static io.deephaven.proto.backplane.script.grpc.FigureDescriptor getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser
      PARSER = new com.google.protobuf.AbstractParser() {
    @java.lang.Override
    public FigureDescriptor parsePartialFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      Builder builder = newBuilder();
      try {
        builder.mergeFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(builder.buildPartial());
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e)
            .setUnfinishedMessage(builder.buildPartial());
      }
      return builder.buildPartial();
    }
  };

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

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

  @java.lang.Override
  public io.deephaven.proto.backplane.script.grpc.FigureDescriptor getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy