content: /*
   * Tencent is pleased to support the open source community by making Angel available.
   *
   * Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
   * compliance with the License. You may obtain a copy of the License at
   *
   * https://opensource.org/licenses/Apache-2.0
   *
   * Unless required by applicable law or agreed to in writing, software distributed under the License
   * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
   * or implied. See the License for the specific language governing permissions and limitations under
   * the License.
   *
   */
  // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: core/graph/attr_value.proto
  
  package com.tencent.angel.core.graph;
  
  public final class AttrValueProtos {
    private AttrValueProtos() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistryLite registry) {
    }
  
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
      registerAllExtensions(
          (com.google.protobuf.ExtensionRegistryLite) registry);
    }
    public interface AttrValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:angel.AttrValue)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <pre>
       * "string"
       * </pre>
       *
       * <code>bytes s = 2;</code>
       */
      com.google.protobuf.ByteString getS();
  
      /**
       * <pre>
       * "int"
       * </pre>
       *
       * <code>int64 i = 3;</code>
       */
      long getI();
  
      /**
       * <pre>
       * "float"
       * </pre>
       *
       * <code>float f = 4;</code>
       */
      float getF();
  
      /**
       * <pre>
       * "bool"
       * </pre>
       *
       * <code>bool b = 5;</code>
       */
      boolean getB();
  
      /**
       * <pre>
       * "type"
       * </pre>
       *
       * <code>.angel.DataType type = 6;</code>
       */
      int getTypeValue();
      /**
       * <pre>
       * "type"
       * </pre>
       *
       * <code>.angel.DataType type = 6;</code>
       */
      com.tencent.angel.serving.apis.common.TypesProtos.DataType getType();
  
      /**
       * <pre>
       * "shape"
       * </pre>
       *
       * <code>.angel.TensorShapeProto shape = 7;</code>
       */
      boolean hasShape();
      /**
       * <pre>
       * "shape"
       * </pre>
       *
       * <code>.angel.TensorShapeProto shape = 7;</code>
       */
      com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto getShape();
      /**
       * <pre>
       * "shape"
       * </pre>
       *
       * <code>.angel.TensorShapeProto shape = 7;</code>
       */
      com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder getShapeOrBuilder();
  
      /**
       * <pre>
       * "tensor"
       * </pre>
       *
       * <code>.angel.TensorProto tensor = 8;</code>
       */
      boolean hasTensor();
      /**
       * <pre>
       * "tensor"
       * </pre>
       *
       * <code>.angel.TensorProto tensor = 8;</code>
       */
      com.tencent.angel.core.graph.TensorProtos.TensorProto getTensor();
      /**
       * <pre>
       * "tensor"
       * </pre>
       *
       * <code>.angel.TensorProto tensor = 8;</code>
       */
      com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder getTensorOrBuilder();
  
      /**
       * <pre>
       * any "list(...)"
       * </pre>
       *
       * <code>.angel.AttrValue.ListValue list = 1;</code>
       */
      boolean hasList();
      /**
       * <pre>
       * any "list(...)"
       * </pre>
       *
       * <code>.angel.AttrValue.ListValue list = 1;</code>
       */
      com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue getList();
      /**
       * <pre>
       * any "list(...)"
       * </pre>
       *
       * <code>.angel.AttrValue.ListValue list = 1;</code>
       */
      com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValueOrBuilder getListOrBuilder();
  
      /**
       * <pre>
       * "func" represents a function. func.name is a function's name or
       * a primitive op's name. func.attr.first is the name of an attr
       * defined for that function. func.attr.second is the value for
       * that attr in the instantiation.
       * </pre>
       *
       * <code>.angel.NameAttrList func = 10;</code>
       */
      boolean hasFunc();
      /**
       * <pre>
       * "func" represents a function. func.name is a function's name or
       * a primitive op's name. func.attr.first is the name of an attr
       * defined for that function. func.attr.second is the value for
       * that attr in the instantiation.
       * </pre>
       *
       * <code>.angel.NameAttrList func = 10;</code>
       */
      com.tencent.angel.core.graph.AttrValueProtos.NameAttrList getFunc();
      /**
       * <pre>
       * "func" represents a function. func.name is a function's name or
       * a primitive op's name. func.attr.first is the name of an attr
       * defined for that function. func.attr.second is the value for
       * that attr in the instantiation.
       * </pre>
       *
       * <code>.angel.NameAttrList func = 10;</code>
       */
      com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder getFuncOrBuilder();
  
      /**
       * <pre>
       * This is a placeholder only used in nodes defined inside a
       * function.  It indicates the attr value will be supplied when
       * the function is instantiated.  For example, let us suppose a
       * node "N" in function "FN". "N" has an attr "A" with value
       * placeholder = "foo". When FN is instantiated with attr "foo"
       * set to "bar", the instantiated node N's attr A will have been
       * given the value "bar".
       * </pre>
       *
       * <code>string placeholder = 9;</code>
       */
      java.lang.String getPlaceholder();
      /**
       * <pre>
       * This is a placeholder only used in nodes defined inside a
       * function.  It indicates the attr value will be supplied when
       * the function is instantiated.  For example, let us suppose a
       * node "N" in function "FN". "N" has an attr "A" with value
       * placeholder = "foo". When FN is instantiated with attr "foo"
       * set to "bar", the instantiated node N's attr A will have been
       * given the value "bar".
       * </pre>
       *
       * <code>string placeholder = 9;</code>
       */
      com.google.protobuf.ByteString
          getPlaceholderBytes();
  
      public com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ValueCase getValueCase();
    }
    /**
     * <pre>
     * Protocol buffer representing the value for an attr used to configure an Op.
     * Comment indicates the corresponding attr type.  Only the field matching the
     * attr type may be filled.
     * </pre>
     *
     * Protobuf type {@code angel.AttrValue}
     */
    public  static final class AttrValue extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:angel.AttrValue)
        AttrValueOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use AttrValue.newBuilder() to construct.
      private AttrValue(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private AttrValue() {
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private AttrValue(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.Builder subBuilder = null;
                if (valueCase_ == 1) {
                  subBuilder = ((com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) value_).toBuilder();
                }
                value_ =
                    input.readMessage(com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom((com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) value_);
                  value_ = subBuilder.buildPartial();
                }
                valueCase_ = 1;
                break;
              }
              case 18: {
                valueCase_ = 2;
                value_ = input.readBytes();
                break;
              }
              case 24: {
                valueCase_ = 3;
                value_ = input.readInt64();
                break;
              }
              case 37: {
                valueCase_ = 4;
                value_ = input.readFloat();
                break;
              }
              case 40: {
                valueCase_ = 5;
                value_ = input.readBool();
                break;
              }
              case 48: {
                int rawValue = input.readEnum();
                valueCase_ = 6;
                value_ = rawValue;
                break;
              }
              case 58: {
                com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder subBuilder = null;
                if (valueCase_ == 7) {
                  subBuilder = ((com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto) value_).toBuilder();
                }
                value_ =
                    input.readMessage(com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom((com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto) value_);
                  value_ = subBuilder.buildPartial();
                }
                valueCase_ = 7;
                break;
              }
              case 66: {
                com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder subBuilder = null;
                if (valueCase_ == 8) {
                  subBuilder = ((com.tencent.angel.core.graph.TensorProtos.TensorProto) value_).toBuilder();
                }
                value_ =
                    input.readMessage(com.tencent.angel.core.graph.TensorProtos.TensorProto.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom((com.tencent.angel.core.graph.TensorProtos.TensorProto) value_);
                  value_ = subBuilder.buildPartial();
                }
                valueCase_ = 8;
                break;
              }
              case 74: {
                java.lang.String s = input.readStringRequireUtf8();
                valueCase_ = 9;
                value_ = s;
                break;
              }
              case 82: {
                com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder subBuilder = null;
                if (valueCase_ == 10) {
                  subBuilder = ((com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) value_).toBuilder();
                }
                value_ =
                    input.readMessage(com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom((com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) value_);
                  value_ = subBuilder.buildPartial();
                }
                valueCase_ = 10;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_AttrValue_descriptor;
      }
  
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_AttrValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.core.graph.AttrValueProtos.AttrValue.class, com.tencent.angel.core.graph.AttrValueProtos.AttrValue.Builder.class);
      }
  
      public interface ListValueOrBuilder extends
          // @@protoc_insertion_point(interface_extends:angel.AttrValue.ListValue)
          com.google.protobuf.MessageOrBuilder {
  
        /**
         * <pre>
         * "list(string)"
         * </pre>
         *
         * <code>repeated bytes s = 2;</code>
         */
        java.util.List<com.google.protobuf.ByteString> getSList();
        /**
         * <pre>
         * "list(string)"
         * </pre>
         *
         * <code>repeated bytes s = 2;</code>
         */
        int getSCount();
        /**
         * <pre>
         * "list(string)"
         * </pre>
         *
         * <code>repeated bytes s = 2;</code>
         */
        com.google.protobuf.ByteString getS(int index);
  
        /**
         * <pre>
         * "list(int)"
         * </pre>
         *
         * <code>repeated int64 i = 3 [packed = true];</code>
         */
        java.util.List<java.lang.Long> getIList();
        /**
         * <pre>
         * "list(int)"
         * </pre>
         *
         * <code>repeated int64 i = 3 [packed = true];</code>
         */
        int getICount();
        /**
         * <pre>
         * "list(int)"
         * </pre>
         *
         * <code>repeated int64 i = 3 [packed = true];</code>
         */
        long getI(int index);
  
        /**
         * <pre>
         * "list(float)"
         * </pre>
         *
         * <code>repeated float f = 4 [packed = true];</code>
         */
        java.util.List<java.lang.Float> getFList();
        /**
         * <pre>
         * "list(float)"
         * </pre>
         *
         * <code>repeated float f = 4 [packed = true];</code>
         */
        int getFCount();
        /**
         * <pre>
         * "list(float)"
         * </pre>
         *
         * <code>repeated float f = 4 [packed = true];</code>
         */
        float getF(int index);
  
        /**
         * <pre>
         * "list(bool)"
         * </pre>
         *
         * <code>repeated bool b = 5 [packed = true];</code>
         */
        java.util.List<java.lang.Boolean> getBList();
        /**
         * <pre>
         * "list(bool)"
         * </pre>
         *
         * <code>repeated bool b = 5 [packed = true];</code>
         */
        int getBCount();
        /**
         * <pre>
         * "list(bool)"
         * </pre>
         *
         * <code>repeated bool b = 5 [packed = true];</code>
         */
        boolean getB(int index);
  
        /**
         * <pre>
         * "list(type)"
         * </pre>
         *
         * <code>repeated .angel.DataType type = 6 [packed = true];</code>
         */
        java.util.List<com.tencent.angel.serving.apis.common.TypesProtos.DataType> getTypeList();
        /**
         * <pre>
         * "list(type)"
         * </pre>
         *
         * <code>repeated .angel.DataType type = 6 [packed = true];</code>
         */
        int getTypeCount();
        /**
         * <pre>
         * "list(type)"
         * </pre>
         *
         * <code>repeated .angel.DataType type = 6 [packed = true];</code>
         */
        com.tencent.angel.serving.apis.common.TypesProtos.DataType getType(int index);
        /**
         * <pre>
         * "list(type)"
         * </pre>
         *
         * <code>repeated .angel.DataType type = 6 [packed = true];</code>
         */
        java.util.List<java.lang.Integer>
        getTypeValueList();
        /**
         * <pre>
         * "list(type)"
         * </pre>
         *
         * <code>repeated .angel.DataType type = 6 [packed = true];</code>
         */
        int getTypeValue(int index);
  
        /**
         * <pre>
         * "list(shape)"
         * </pre>
         *
         * <code>repeated .angel.TensorShapeProto shape = 7;</code>
         */
        java.util.List<com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto> 
            getShapeList();
        /**
         * <pre>
         * "list(shape)"
         * </pre>
         *
         * <code>repeated .angel.TensorShapeProto shape = 7;</code>
         */
        com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto getShape(int index);
        /**
         * <pre>
         * "list(shape)"
         * </pre>
         *
         * <code>repeated .angel.TensorShapeProto shape = 7;</code>
         */
        int getShapeCount();
        /**
         * <pre>
         * "list(shape)"
         * </pre>
         *
         * <code>repeated .angel.TensorShapeProto shape = 7;</code>
         */
        java.util.List<? extends com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder> 
            getShapeOrBuilderList();
        /**
         * <pre>
         * "list(shape)"
         * </pre>
         *
         * <code>repeated .angel.TensorShapeProto shape = 7;</code>
         */
        com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder getShapeOrBuilder(
            int index);
  
        /**
         * <pre>
         * "list(tensor)"
         * </pre>
         *
         * <code>repeated .angel.TensorProto tensor = 8;</code>
         */
        java.util.List<com.tencent.angel.core.graph.TensorProtos.TensorProto> 
            getTensorList();
        /**
         * <pre>
         * "list(tensor)"
         * </pre>
         *
         * <code>repeated .angel.TensorProto tensor = 8;</code>
         */
        com.tencent.angel.core.graph.TensorProtos.TensorProto getTensor(int index);
        /**
         * <pre>
         * "list(tensor)"
         * </pre>
         *
         * <code>repeated .angel.TensorProto tensor = 8;</code>
         */
        int getTensorCount();
        /**
         * <pre>
         * "list(tensor)"
         * </pre>
         *
         * <code>repeated .angel.TensorProto tensor = 8;</code>
         */
        java.util.List<? extends com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder> 
            getTensorOrBuilderList();
        /**
         * <pre>
         * "list(tensor)"
         * </pre>
         *
         * <code>repeated .angel.TensorProto tensor = 8;</code>
         */
        com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder getTensorOrBuilder(
            int index);
  
        /**
         * <pre>
         * "list(attr)"
         * </pre>
         *
         * <code>repeated .angel.NameAttrList func = 9;</code>
         */
        java.util.List<com.tencent.angel.core.graph.AttrValueProtos.NameAttrList> 
            getFuncList();
        /**
         * <pre>
         * "list(attr)"
         * </pre>
         *
         * <code>repeated .angel.NameAttrList func = 9;</code>
         */
        com.tencent.angel.core.graph.AttrValueProtos.NameAttrList getFunc(int index);
        /**
         * <pre>
         * "list(attr)"
         * </pre>
         *
         * <code>repeated .angel.NameAttrList func = 9;</code>
         */
        int getFuncCount();
        /**
         * <pre>
         * "list(attr)"
         * </pre>
         *
         * <code>repeated .angel.NameAttrList func = 9;</code>
         */
        java.util.List<? extends com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder> 
            getFuncOrBuilderList();
        /**
         * <pre>
         * "list(attr)"
         * </pre>
         *
         * <code>repeated .angel.NameAttrList func = 9;</code>
         */
        com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder getFuncOrBuilder(
            int index);
      }
      /**
       * <pre>
       * LINT.IfChange
       * </pre>
       *
       * Protobuf type {@code angel.AttrValue.ListValue}
       */
      public  static final class ListValue extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:angel.AttrValue.ListValue)
          ListValueOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use ListValue.newBuilder() to construct.
        private ListValue(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private ListValue() {
          s_ = java.util.Collections.emptyList();
          i_ = java.util.Collections.emptyList();
          f_ = java.util.Collections.emptyList();
          b_ = java.util.Collections.emptyList();
          type_ = java.util.Collections.emptyList();
          shape_ = java.util.Collections.emptyList();
          tensor_ = java.util.Collections.emptyList();
          func_ = java.util.Collections.emptyList();
        }
  
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private ListValue(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownFieldProto3(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 18: {
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                    s_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  s_.add(input.readBytes());
                  break;
                }
                case 24: {
                  if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                    i_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  i_.add(input.readInt64());
                  break;
                }
                case 26: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                    i_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    i_.add(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 37: {
                  if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                    f_ = new java.util.ArrayList<java.lang.Float>();
                    mutable_bitField0_ |= 0x00000004;
                  }
                  f_.add(input.readFloat());
                  break;
                }
                case 34: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000004) == 0x00000004) && input.getBytesUntilLimit() > 0) {
                    f_ = new java.util.ArrayList<java.lang.Float>();
                    mutable_bitField0_ |= 0x00000004;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    f_.add(input.readFloat());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 40: {
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                    b_ = new java.util.ArrayList<java.lang.Boolean>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  b_.add(input.readBool());
                  break;
                }
                case 42: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008) && input.getBytesUntilLimit() > 0) {
                    b_ = new java.util.ArrayList<java.lang.Boolean>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    b_.add(input.readBool());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 48: {
                  int rawValue = input.readEnum();
                  if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                    type_ = new java.util.ArrayList<java.lang.Integer>();
                    mutable_bitField0_ |= 0x00000010;
                  }
                  type_.add(rawValue);
                  break;
                }
                case 50: {
                  int length = input.readRawVarint32();
                  int oldLimit = input.pushLimit(length);
                  while(input.getBytesUntilLimit() > 0) {
                    int rawValue = input.readEnum();
                    if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                      type_ = new java.util.ArrayList<java.lang.Integer>();
                      mutable_bitField0_ |= 0x00000010;
                    }
                    type_.add(rawValue);
                  }
                  input.popLimit(oldLimit);
                  break;
                }
                case 58: {
                  if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                    shape_ = new java.util.ArrayList<com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto>();
                    mutable_bitField0_ |= 0x00000020;
                  }
                  shape_.add(
                      input.readMessage(com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.parser(), extensionRegistry));
                  break;
                }
                case 66: {
                  if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                    tensor_ = new java.util.ArrayList<com.tencent.angel.core.graph.TensorProtos.TensorProto>();
                    mutable_bitField0_ |= 0x00000040;
                  }
                  tensor_.add(
                      input.readMessage(com.tencent.angel.core.graph.TensorProtos.TensorProto.parser(), extensionRegistry));
                  break;
                }
                case 74: {
                  if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                    func_ = new java.util.ArrayList<com.tencent.angel.core.graph.AttrValueProtos.NameAttrList>();
                    mutable_bitField0_ |= 0x00000080;
                  }
                  func_.add(
                      input.readMessage(com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.parser(), extensionRegistry));
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
              s_ = java.util.Collections.unmodifiableList(s_);
            }
            if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
              i_ = java.util.Collections.unmodifiableList(i_);
            }
            if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
              f_ = java.util.Collections.unmodifiableList(f_);
            }
            if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
              b_ = java.util.Collections.unmodifiableList(b_);
            }
            if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
              type_ = java.util.Collections.unmodifiableList(type_);
            }
            if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
              shape_ = java.util.Collections.unmodifiableList(shape_);
            }
            if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
              tensor_ = java.util.Collections.unmodifiableList(tensor_);
            }
            if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
              func_ = java.util.Collections.unmodifiableList(func_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_AttrValue_ListValue_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_AttrValue_ListValue_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.class, com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.Builder.class);
        }
  
        public static final int S_FIELD_NUMBER = 2;
        private java.util.List<com.google.protobuf.ByteString> s_;
        /**
         * <pre>
         * "list(string)"
         * </pre>
         *
         * <code>repeated bytes s = 2;</code>
         */
        public java.util.List<com.google.protobuf.ByteString>
            getSList() {
          return s_;
        }
        /**
         * <pre>
         * "list(string)"
         * </pre>
         *
         * <code>repeated bytes s = 2;</code>
         */
        public int getSCount() {
          return s_.size();
        }
        /**
         * <pre>
         * "list(string)"
         * </pre>
         *
         * <code>repeated bytes s = 2;</code>
         */
        public com.google.protobuf.ByteString getS(int index) {
          return s_.get(index);
        }
  
        public static final int I_FIELD_NUMBER = 3;
        private java.util.List<java.lang.Long> i_;
        /**
         * <pre>
         * "list(int)"
         * </pre>
         *
         * <code>repeated int64 i = 3 [packed = true];</code>
         */
        public java.util.List<java.lang.Long>
            getIList() {
          return i_;
        }
        /**
         * <pre>
         * "list(int)"
         * </pre>
         *
         * <code>repeated int64 i = 3 [packed = true];</code>
         */
        public int getICount() {
          return i_.size();
        }
        /**
         * <pre>
         * "list(int)"
         * </pre>
         *
         * <code>repeated int64 i = 3 [packed = true];</code>
         */
        public long getI(int index) {
          return i_.get(index);
        }
        private int iMemoizedSerializedSize = -1;
  
        public static final int F_FIELD_NUMBER = 4;
        private java.util.List<java.lang.Float> f_;
        /**
         * <pre>
         * "list(float)"
         * </pre>
         *
         * <code>repeated float f = 4 [packed = true];</code>
         */
        public java.util.List<java.lang.Float>
            getFList() {
          return f_;
        }
        /**
         * <pre>
         * "list(float)"
         * </pre>
         *
         * <code>repeated float f = 4 [packed = true];</code>
         */
        public int getFCount() {
          return f_.size();
        }
        /**
         * <pre>
         * "list(float)"
         * </pre>
         *
         * <code>repeated float f = 4 [packed = true];</code>
         */
        public float getF(int index) {
          return f_.get(index);
        }
        private int fMemoizedSerializedSize = -1;
  
        public static final int B_FIELD_NUMBER = 5;
        private java.util.List<java.lang.Boolean> b_;
        /**
         * <pre>
         * "list(bool)"
         * </pre>
         *
         * <code>repeated bool b = 5 [packed = true];</code>
         */
        public java.util.List<java.lang.Boolean>
            getBList() {
          return b_;
        }
        /**
         * <pre>
         * "list(bool)"
         * </pre>
         *
         * <code>repeated bool b = 5 [packed = true];</code>
         */
        public int getBCount() {
          return b_.size();
        }
        /**
         * <pre>
         * "list(bool)"
         * </pre>
         *
         * <code>repeated bool b = 5 [packed = true];</code>
         */
        public boolean getB(int index) {
          return b_.get(index);
        }
        private int bMemoizedSerializedSize = -1;
  
        public static final int TYPE_FIELD_NUMBER = 6;
        private java.util.List<java.lang.Integer> type_;
        private static final com.google.protobuf.Internal.ListAdapter.Converter<
            java.lang.Integer, com.tencent.angel.serving.apis.common.TypesProtos.DataType> type_converter_ =
                new com.google.protobuf.Internal.ListAdapter.Converter<
                    java.lang.Integer, com.tencent.angel.serving.apis.common.TypesProtos.DataType>() {
                  public com.tencent.angel.serving.apis.common.TypesProtos.DataType convert(java.lang.Integer from) {
                    com.tencent.angel.serving.apis.common.TypesProtos.DataType result = com.tencent.angel.serving.apis.common.TypesProtos.DataType.valueOf(from);
                    return result == null ? com.tencent.angel.serving.apis.common.TypesProtos.DataType.UNRECOGNIZED : result;
                  }
                };
        /**
         * <pre>
         * "list(type)"
         * </pre>
         *
         * <code>repeated .angel.DataType type = 6 [packed = true];</code>
         */
        public java.util.List<com.tencent.angel.serving.apis.common.TypesProtos.DataType> getTypeList() {
          return new com.google.protobuf.Internal.ListAdapter<
              java.lang.Integer, com.tencent.angel.serving.apis.common.TypesProtos.DataType>(type_, type_converter_);
        }
        /**
         * <pre>
         * "list(type)"
         * </pre>
         *
         * <code>repeated .angel.DataType type = 6 [packed = true];</code>
         */
        public int getTypeCount() {
          return type_.size();
        }
        /**
         * <pre>
         * "list(type)"
         * </pre>
         *
         * <code>repeated .angel.DataType type = 6 [packed = true];</code>
         */
        public com.tencent.angel.serving.apis.common.TypesProtos.DataType getType(int index) {
          return type_converter_.convert(type_.get(index));
        }
        /**
         * <pre>
         * "list(type)"
         * </pre>
         *
         * <code>repeated .angel.DataType type = 6 [packed = true];</code>
         */
        public java.util.List<java.lang.Integer>
        getTypeValueList() {
          return type_;
        }
        /**
         * <pre>
         * "list(type)"
         * </pre>
         *
         * <code>repeated .angel.DataType type = 6 [packed = true];</code>
         */
        public int getTypeValue(int index) {
          return type_.get(index);
        }
        private int typeMemoizedSerializedSize;
  
        public static final int SHAPE_FIELD_NUMBER = 7;
        private java.util.List<com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto> shape_;
        /**
         * <pre>
         * "list(shape)"
         * </pre>
         *
         * <code>repeated .angel.TensorShapeProto shape = 7;</code>
         */
        public java.util.List<com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto> getShapeList() {
          return shape_;
        }
        /**
         * <pre>
         * "list(shape)"
         * </pre>
         *
         * <code>repeated .angel.TensorShapeProto shape = 7;</code>
         */
        public java.util.List<? extends com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder> 
            getShapeOrBuilderList() {
          return shape_;
        }
        /**
         * <pre>
         * "list(shape)"
         * </pre>
         *
         * <code>repeated .angel.TensorShapeProto shape = 7;</code>
         */
        public int getShapeCount() {
          return shape_.size();
        }
        /**
         * <pre>
         * "list(shape)"
         * </pre>
         *
         * <code>repeated .angel.TensorShapeProto shape = 7;</code>
         */
        public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto getShape(int index) {
          return shape_.get(index);
        }
        /**
         * <pre>
         * "list(shape)"
         * </pre>
         *
         * <code>repeated .angel.TensorShapeProto shape = 7;</code>
         */
        public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder getShapeOrBuilder(
            int index) {
          return shape_.get(index);
        }
  
        public static final int TENSOR_FIELD_NUMBER = 8;
        private java.util.List<com.tencent.angel.core.graph.TensorProtos.TensorProto> tensor_;
        /**
         * <pre>
         * "list(tensor)"
         * </pre>
         *
         * <code>repeated .angel.TensorProto tensor = 8;</code>
         */
        public java.util.List<com.tencent.angel.core.graph.TensorProtos.TensorProto> getTensorList() {
          return tensor_;
        }
        /**
         * <pre>
         * "list(tensor)"
         * </pre>
         *
         * <code>repeated .angel.TensorProto tensor = 8;</code>
         */
        public java.util.List<? extends com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder> 
            getTensorOrBuilderList() {
          return tensor_;
        }
        /**
         * <pre>
         * "list(tensor)"
         * </pre>
         *
         * <code>repeated .angel.TensorProto tensor = 8;</code>
         */
        public int getTensorCount() {
          return tensor_.size();
        }
        /**
         * <pre>
         * "list(tensor)"
         * </pre>
         *
         * <code>repeated .angel.TensorProto tensor = 8;</code>
         */
        public com.tencent.angel.core.graph.TensorProtos.TensorProto getTensor(int index) {
          return tensor_.get(index);
        }
        /**
         * <pre>
         * "list(tensor)"
         * </pre>
         *
         * <code>repeated .angel.TensorProto tensor = 8;</code>
         */
        public com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder getTensorOrBuilder(
            int index) {
          return tensor_.get(index);
        }
  
        public static final int FUNC_FIELD_NUMBER = 9;
        private java.util.List<com.tencent.angel.core.graph.AttrValueProtos.NameAttrList> func_;
        /**
         * <pre>
         * "list(attr)"
         * </pre>
         *
         * <code>repeated .angel.NameAttrList func = 9;</code>
         */
        public java.util.List<com.tencent.angel.core.graph.AttrValueProtos.NameAttrList> getFuncList() {
          return func_;
        }
        /**
         * <pre>
         * "list(attr)"
         * </pre>
         *
         * <code>repeated .angel.NameAttrList func = 9;</code>
         */
        public java.util.List<? extends com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder> 
            getFuncOrBuilderList() {
          return func_;
        }
        /**
         * <pre>
         * "list(attr)"
         * </pre>
         *
         * <code>repeated .angel.NameAttrList func = 9;</code>
         */
        public int getFuncCount() {
          return func_.size();
        }
        /**
         * <pre>
         * "list(attr)"
         * </pre>
         *
         * <code>repeated .angel.NameAttrList func = 9;</code>
         */
        public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList getFunc(int index) {
          return func_.get(index);
        }
        /**
         * <pre>
         * "list(attr)"
         * </pre>
         *
         * <code>repeated .angel.NameAttrList func = 9;</code>
         */
        public com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder getFuncOrBuilder(
            int index) {
          return func_.get(index);
        }
  
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;
  
          memoizedIsInitialized = 1;
          return true;
        }
  
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          for (int i = 0; i < s_.size(); i++) {
            output.writeBytes(2, s_.get(i));
          }
          if (getIList().size() > 0) {
            output.writeUInt32NoTag(26);
            output.writeUInt32NoTag(iMemoizedSerializedSize);
          }
          for (int i = 0; i < i_.size(); i++) {
            output.writeInt64NoTag(i_.get(i));
          }
          if (getFList().size() > 0) {
            output.writeUInt32NoTag(34);
            output.writeUInt32NoTag(fMemoizedSerializedSize);
          }
          for (int i = 0; i < f_.size(); i++) {
            output.writeFloatNoTag(f_.get(i));
          }
          if (getBList().size() > 0) {
            output.writeUInt32NoTag(42);
            output.writeUInt32NoTag(bMemoizedSerializedSize);
          }
          for (int i = 0; i < b_.size(); i++) {
            output.writeBoolNoTag(b_.get(i));
          }
          if (getTypeList().size() > 0) {
            output.writeUInt32NoTag(50);
            output.writeUInt32NoTag(typeMemoizedSerializedSize);
          }
          for (int i = 0; i < type_.size(); i++) {
            output.writeEnumNoTag(type_.get(i));
          }
          for (int i = 0; i < shape_.size(); i++) {
            output.writeMessage(7, shape_.get(i));
          }
          for (int i = 0; i < tensor_.size(); i++) {
            output.writeMessage(8, tensor_.get(i));
          }
          for (int i = 0; i < func_.size(); i++) {
            output.writeMessage(9, func_.get(i));
          }
          unknownFields.writeTo(output);
        }
  
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;
  
          size = 0;
          {
            int dataSize = 0;
            for (int i = 0; i < s_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeBytesSizeNoTag(s_.get(i));
            }
            size += dataSize;
            size += 1 * getSList().size();
          }
          {
            int dataSize = 0;
            for (int i = 0; i < i_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt64SizeNoTag(i_.get(i));
            }
            size += dataSize;
            if (!getIList().isEmpty()) {
              size += 1;
              size += com.google.protobuf.CodedOutputStream
                  .computeInt32SizeNoTag(dataSize);
            }
            iMemoizedSerializedSize = dataSize;
          }
          {
            int dataSize = 0;
            dataSize = 4 * getFList().size();
            size += dataSize;
            if (!getFList().isEmpty()) {
              size += 1;
              size += com.google.protobuf.CodedOutputStream
                  .computeInt32SizeNoTag(dataSize);
            }
            fMemoizedSerializedSize = dataSize;
          }
          {
            int dataSize = 0;
            dataSize = 1 * getBList().size();
            size += dataSize;
            if (!getBList().isEmpty()) {
              size += 1;
              size += com.google.protobuf.CodedOutputStream
                  .computeInt32SizeNoTag(dataSize);
            }
            bMemoizedSerializedSize = dataSize;
          }
          {
            int dataSize = 0;
            for (int i = 0; i < type_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeEnumSizeNoTag(type_.get(i));
            }
            size += dataSize;
            if (!getTypeList().isEmpty()) {  size += 1;
              size += com.google.protobuf.CodedOutputStream
                .computeUInt32SizeNoTag(dataSize);
            }typeMemoizedSerializedSize = dataSize;
          }
          for (int i = 0; i < shape_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(7, shape_.get(i));
          }
          for (int i = 0; i < tensor_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(8, tensor_.get(i));
          }
          for (int i = 0; i < func_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(9, func_.get(i));
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }
  
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue)) {
            return super.equals(obj);
          }
          com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue other = (com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) obj;
  
          boolean result = true;
          result = result && getSList()
              .equals(other.getSList());
          result = result && getIList()
              .equals(other.getIList());
          result = result && getFList()
              .equals(other.getFList());
          result = result && getBList()
              .equals(other.getBList());
          result = result && type_.equals(other.type_);
          result = result && getShapeList()
              .equals(other.getShapeList());
          result = result && getTensorList()
              .equals(other.getTensorList());
          result = result && getFuncList()
              .equals(other.getFuncList());
          result = result && unknownFields.equals(other.unknownFields);
          return result;
        }
  
        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getSCount() > 0) {
            hash = (37 * hash) + S_FIELD_NUMBER;
            hash = (53 * hash) + getSList().hashCode();
          }
          if (getICount() > 0) {
            hash = (37 * hash) + I_FIELD_NUMBER;
            hash = (53 * hash) + getIList().hashCode();
          }
          if (getFCount() > 0) {
            hash = (37 * hash) + F_FIELD_NUMBER;
            hash = (53 * hash) + getFList().hashCode();
          }
          if (getBCount() > 0) {
            hash = (37 * hash) + B_FIELD_NUMBER;
            hash = (53 * hash) + getBList().hashCode();
          }
          if (getTypeCount() > 0) {
            hash = (37 * hash) + TYPE_FIELD_NUMBER;
            hash = (53 * hash) + type_.hashCode();
          }
          if (getShapeCount() > 0) {
            hash = (37 * hash) + SHAPE_FIELD_NUMBER;
            hash = (53 * hash) + getShapeList().hashCode();
          }
          if (getTensorCount() > 0) {
            hash = (37 * hash) + TENSOR_FIELD_NUMBER;
            hash = (53 * hash) + getTensorList().hashCode();
          }
          if (getFuncCount() > 0) {
            hash = (37 * hash) + FUNC_FIELD_NUMBER;
            hash = (53 * hash) + getFuncList().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }
  
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
  
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }
  
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * LINT.IfChange
         * </pre>
         *
         * Protobuf type {@code angel.AttrValue.ListValue}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:angel.AttrValue.ListValue)
            com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValueOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_AttrValue_ListValue_descriptor;
          }
  
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_AttrValue_ListValue_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.class, com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.Builder.class);
          }
  
          // Construct using com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
  
          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
              getShapeFieldBuilder();
              getTensorFieldBuilder();
              getFuncFieldBuilder();
            }
          }
          public Builder clear() {
            super.clear();
            s_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            i_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            f_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            b_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            type_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000010);
            if (shapeBuilder_ == null) {
              shape_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              shapeBuilder_.clear();
            }
            if (tensorBuilder_ == null) {
              tensor_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              tensorBuilder_.clear();
            }
            if (funcBuilder_ == null) {
              func_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              funcBuilder_.clear();
            }
            return this;
          }
  
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_AttrValue_ListValue_descriptor;
          }
  
          public com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue getDefaultInstanceForType() {
            return com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.getDefaultInstance();
          }
  
          public com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue build() {
            com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
  
          public com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue buildPartial() {
            com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue result = new com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue(this);
            int from_bitField0_ = bitField0_;
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              s_ = java.util.Collections.unmodifiableList(s_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.s_ = s_;
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              i_ = java.util.Collections.unmodifiableList(i_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.i_ = i_;
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              f_ = java.util.Collections.unmodifiableList(f_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.f_ = f_;
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              b_ = java.util.Collections.unmodifiableList(b_);
              bitField0_ = (bitField0_ & ~0x00000008);
            }
            result.b_ = b_;
            if (((bitField0_ & 0x00000010) == 0x00000010)) {
              type_ = java.util.Collections.unmodifiableList(type_);
              bitField0_ = (bitField0_ & ~0x00000010);
            }
            result.type_ = type_;
            if (shapeBuilder_ == null) {
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                shape_ = java.util.Collections.unmodifiableList(shape_);
                bitField0_ = (bitField0_ & ~0x00000020);
              }
              result.shape_ = shape_;
            } else {
              result.shape_ = shapeBuilder_.build();
            }
            if (tensorBuilder_ == null) {
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                tensor_ = java.util.Collections.unmodifiableList(tensor_);
                bitField0_ = (bitField0_ & ~0x00000040);
              }
              result.tensor_ = tensor_;
            } else {
              result.tensor_ = tensorBuilder_.build();
            }
            if (funcBuilder_ == null) {
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                func_ = java.util.Collections.unmodifiableList(func_);
                bitField0_ = (bitField0_ & ~0x00000080);
              }
              result.func_ = func_;
            } else {
              result.func_ = funcBuilder_.build();
            }
            onBuilt();
            return result;
          }
  
          public Builder clone() {
            return (Builder) super.clone();
          }
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return (Builder) super.setField(field, value);
          }
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return (Builder) super.clearField(field);
          }
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return (Builder) super.clearOneof(oneof);
          }
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return (Builder) super.setRepeatedField(field, index, value);
          }
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return (Builder) super.addRepeatedField(field, value);
          }
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) {
              return mergeFrom((com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
  
          public Builder mergeFrom(com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue other) {
            if (other == com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.getDefaultInstance()) return this;
            if (!other.s_.isEmpty()) {
              if (s_.isEmpty()) {
                s_ = other.s_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureSIsMutable();
                s_.addAll(other.s_);
              }
              onChanged();
            }
            if (!other.i_.isEmpty()) {
              if (i_.isEmpty()) {
                i_ = other.i_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureIIsMutable();
                i_.addAll(other.i_);
              }
              onChanged();
            }
            if (!other.f_.isEmpty()) {
              if (f_.isEmpty()) {
                f_ = other.f_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureFIsMutable();
                f_.addAll(other.f_);
              }
              onChanged();
            }
            if (!other.b_.isEmpty()) {
              if (b_.isEmpty()) {
                b_ = other.b_;
                bitField0_ = (bitField0_ & ~0x00000008);
              } else {
                ensureBIsMutable();
                b_.addAll(other.b_);
              }
              onChanged();
            }
            if (!other.type_.isEmpty()) {
              if (type_.isEmpty()) {
                type_ = other.type_;
                bitField0_ = (bitField0_ & ~0x00000010);
              } else {
                ensureTypeIsMutable();
                type_.addAll(other.type_);
              }
              onChanged();
            }
            if (shapeBuilder_ == null) {
              if (!other.shape_.isEmpty()) {
                if (shape_.isEmpty()) {
                  shape_ = other.shape_;
                  bitField0_ = (bitField0_ & ~0x00000020);
                } else {
                  ensureShapeIsMutable();
                  shape_.addAll(other.shape_);
                }
                onChanged();
              }
            } else {
              if (!other.shape_.isEmpty()) {
                if (shapeBuilder_.isEmpty()) {
                  shapeBuilder_.dispose();
                  shapeBuilder_ = null;
                  shape_ = other.shape_;
                  bitField0_ = (bitField0_ & ~0x00000020);
                  shapeBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getShapeFieldBuilder() : null;
                } else {
                  shapeBuilder_.addAllMessages(other.shape_);
                }
              }
            }
            if (tensorBuilder_ == null) {
              if (!other.tensor_.isEmpty()) {
                if (tensor_.isEmpty()) {
                  tensor_ = other.tensor_;
                  bitField0_ = (bitField0_ & ~0x00000040);
                } else {
                  ensureTensorIsMutable();
                  tensor_.addAll(other.tensor_);
                }
                onChanged();
              }
            } else {
              if (!other.tensor_.isEmpty()) {
                if (tensorBuilder_.isEmpty()) {
                  tensorBuilder_.dispose();
                  tensorBuilder_ = null;
                  tensor_ = other.tensor_;
                  bitField0_ = (bitField0_ & ~0x00000040);
                  tensorBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getTensorFieldBuilder() : null;
                } else {
                  tensorBuilder_.addAllMessages(other.tensor_);
                }
              }
            }
            if (funcBuilder_ == null) {
              if (!other.func_.isEmpty()) {
                if (func_.isEmpty()) {
                  func_ = other.func_;
                  bitField0_ = (bitField0_ & ~0x00000080);
                } else {
                  ensureFuncIsMutable();
                  func_.addAll(other.func_);
                }
                onChanged();
              }
            } else {
              if (!other.func_.isEmpty()) {
                if (funcBuilder_.isEmpty()) {
                  funcBuilder_.dispose();
                  funcBuilder_ = null;
                  func_ = other.func_;
                  bitField0_ = (bitField0_ & ~0x00000080);
                  funcBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getFuncFieldBuilder() : null;
                } else {
                  funcBuilder_.addAllMessages(other.func_);
                }
              }
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }
  
          public final boolean isInitialized() {
            return true;
          }
  
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;
  
          private java.util.List<com.google.protobuf.ByteString> s_ = java.util.Collections.emptyList();
          private void ensureSIsMutable() {
            if (!((bitField0_ & 0x00000001) == 0x00000001)) {
              s_ = new java.util.ArrayList<com.google.protobuf.ByteString>(s_);
              bitField0_ |= 0x00000001;
             }
          }
          /**
           * <pre>
           * "list(string)"
           * </pre>
           *
           * <code>repeated bytes s = 2;</code>
           */
          public java.util.List<com.google.protobuf.ByteString>
              getSList() {
            return java.util.Collections.unmodifiableList(s_);
          }
          /**
           * <pre>
           * "list(string)"
           * </pre>
           *
           * <code>repeated bytes s = 2;</code>
           */
          public int getSCount() {
            return s_.size();
          }
          /**
           * <pre>
           * "list(string)"
           * </pre>
           *
           * <code>repeated bytes s = 2;</code>
           */
          public com.google.protobuf.ByteString getS(int index) {
            return s_.get(index);
          }
          /**
           * <pre>
           * "list(string)"
           * </pre>
           *
           * <code>repeated bytes s = 2;</code>
           */
          public Builder setS(
              int index, com.google.protobuf.ByteString value) {
            if (value == null) {
      throw new NullPointerException();
    }
    ensureSIsMutable();
            s_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(string)"
           * </pre>
           *
           * <code>repeated bytes s = 2;</code>
           */
          public Builder addS(com.google.protobuf.ByteString value) {
            if (value == null) {
      throw new NullPointerException();
    }
    ensureSIsMutable();
            s_.add(value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(string)"
           * </pre>
           *
           * <code>repeated bytes s = 2;</code>
           */
          public Builder addAllS(
              java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
            ensureSIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, s_);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(string)"
           * </pre>
           *
           * <code>repeated bytes s = 2;</code>
           */
          public Builder clearS() {
            s_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }
  
          private java.util.List<java.lang.Long> i_ = java.util.Collections.emptyList();
          private void ensureIIsMutable() {
            if (!((bitField0_ & 0x00000002) == 0x00000002)) {
              i_ = new java.util.ArrayList<java.lang.Long>(i_);
              bitField0_ |= 0x00000002;
             }
          }
          /**
           * <pre>
           * "list(int)"
           * </pre>
           *
           * <code>repeated int64 i = 3 [packed = true];</code>
           */
          public java.util.List<java.lang.Long>
              getIList() {
            return java.util.Collections.unmodifiableList(i_);
          }
          /**
           * <pre>
           * "list(int)"
           * </pre>
           *
           * <code>repeated int64 i = 3 [packed = true];</code>
           */
          public int getICount() {
            return i_.size();
          }
          /**
           * <pre>
           * "list(int)"
           * </pre>
           *
           * <code>repeated int64 i = 3 [packed = true];</code>
           */
          public long getI(int index) {
            return i_.get(index);
          }
          /**
           * <pre>
           * "list(int)"
           * </pre>
           *
           * <code>repeated int64 i = 3 [packed = true];</code>
           */
          public Builder setI(
              int index, long value) {
            ensureIIsMutable();
            i_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(int)"
           * </pre>
           *
           * <code>repeated int64 i = 3 [packed = true];</code>
           */
          public Builder addI(long value) {
            ensureIIsMutable();
            i_.add(value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(int)"
           * </pre>
           *
           * <code>repeated int64 i = 3 [packed = true];</code>
           */
          public Builder addAllI(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureIIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, i_);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(int)"
           * </pre>
           *
           * <code>repeated int64 i = 3 [packed = true];</code>
           */
          public Builder clearI() {
            i_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
  
          private java.util.List<java.lang.Float> f_ = java.util.Collections.emptyList();
          private void ensureFIsMutable() {
            if (!((bitField0_ & 0x00000004) == 0x00000004)) {
              f_ = new java.util.ArrayList<java.lang.Float>(f_);
              bitField0_ |= 0x00000004;
             }
          }
          /**
           * <pre>
           * "list(float)"
           * </pre>
           *
           * <code>repeated float f = 4 [packed = true];</code>
           */
          public java.util.List<java.lang.Float>
              getFList() {
            return java.util.Collections.unmodifiableList(f_);
          }
          /**
           * <pre>
           * "list(float)"
           * </pre>
           *
           * <code>repeated float f = 4 [packed = true];</code>
           */
          public int getFCount() {
            return f_.size();
          }
          /**
           * <pre>
           * "list(float)"
           * </pre>
           *
           * <code>repeated float f = 4 [packed = true];</code>
           */
          public float getF(int index) {
            return f_.get(index);
          }
          /**
           * <pre>
           * "list(float)"
           * </pre>
           *
           * <code>repeated float f = 4 [packed = true];</code>
           */
          public Builder setF(
              int index, float value) {
            ensureFIsMutable();
            f_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(float)"
           * </pre>
           *
           * <code>repeated float f = 4 [packed = true];</code>
           */
          public Builder addF(float value) {
            ensureFIsMutable();
            f_.add(value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(float)"
           * </pre>
           *
           * <code>repeated float f = 4 [packed = true];</code>
           */
          public Builder addAllF(
              java.lang.Iterable<? extends java.lang.Float> values) {
            ensureFIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, f_);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(float)"
           * </pre>
           *
           * <code>repeated float f = 4 [packed = true];</code>
           */
          public Builder clearF() {
            f_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
            return this;
          }
  
          private java.util.List<java.lang.Boolean> b_ = java.util.Collections.emptyList();
          private void ensureBIsMutable() {
            if (!((bitField0_ & 0x00000008) == 0x00000008)) {
              b_ = new java.util.ArrayList<java.lang.Boolean>(b_);
              bitField0_ |= 0x00000008;
             }
          }
          /**
           * <pre>
           * "list(bool)"
           * </pre>
           *
           * <code>repeated bool b = 5 [packed = true];</code>
           */
          public java.util.List<java.lang.Boolean>
              getBList() {
            return java.util.Collections.unmodifiableList(b_);
          }
          /**
           * <pre>
           * "list(bool)"
           * </pre>
           *
           * <code>repeated bool b = 5 [packed = true];</code>
           */
          public int getBCount() {
            return b_.size();
          }
          /**
           * <pre>
           * "list(bool)"
           * </pre>
           *
           * <code>repeated bool b = 5 [packed = true];</code>
           */
          public boolean getB(int index) {
            return b_.get(index);
          }
          /**
           * <pre>
           * "list(bool)"
           * </pre>
           *
           * <code>repeated bool b = 5 [packed = true];</code>
           */
          public Builder setB(
              int index, boolean value) {
            ensureBIsMutable();
            b_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(bool)"
           * </pre>
           *
           * <code>repeated bool b = 5 [packed = true];</code>
           */
          public Builder addB(boolean value) {
            ensureBIsMutable();
            b_.add(value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(bool)"
           * </pre>
           *
           * <code>repeated bool b = 5 [packed = true];</code>
           */
          public Builder addAllB(
              java.lang.Iterable<? extends java.lang.Boolean> values) {
            ensureBIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, b_);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(bool)"
           * </pre>
           *
           * <code>repeated bool b = 5 [packed = true];</code>
           */
          public Builder clearB() {
            b_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            onChanged();
            return this;
          }
  
          private java.util.List<java.lang.Integer> type_ =
            java.util.Collections.emptyList();
          private void ensureTypeIsMutable() {
            if (!((bitField0_ & 0x00000010) == 0x00000010)) {
              type_ = new java.util.ArrayList<java.lang.Integer>(type_);
              bitField0_ |= 0x00000010;
            }
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public java.util.List<com.tencent.angel.serving.apis.common.TypesProtos.DataType> getTypeList() {
            return new com.google.protobuf.Internal.ListAdapter<
                java.lang.Integer, com.tencent.angel.serving.apis.common.TypesProtos.DataType>(type_, type_converter_);
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public int getTypeCount() {
            return type_.size();
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public com.tencent.angel.serving.apis.common.TypesProtos.DataType getType(int index) {
            return type_converter_.convert(type_.get(index));
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public Builder setType(
              int index, com.tencent.angel.serving.apis.common.TypesProtos.DataType value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureTypeIsMutable();
            type_.set(index, value.getNumber());
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public Builder addType(com.tencent.angel.serving.apis.common.TypesProtos.DataType value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureTypeIsMutable();
            type_.add(value.getNumber());
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public Builder addAllType(
              java.lang.Iterable<? extends com.tencent.angel.serving.apis.common.TypesProtos.DataType> values) {
            ensureTypeIsMutable();
            for (com.tencent.angel.serving.apis.common.TypesProtos.DataType value : values) {
              type_.add(value.getNumber());
            }
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public Builder clearType() {
            type_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000010);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public java.util.List<java.lang.Integer>
          getTypeValueList() {
            return java.util.Collections.unmodifiableList(type_);
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public int getTypeValue(int index) {
            return type_.get(index);
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public Builder setTypeValue(
              int index, int value) {
            ensureTypeIsMutable();
            type_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public Builder addTypeValue(int value) {
            ensureTypeIsMutable();
            type_.add(value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           * "list(type)"
           * </pre>
           *
           * <code>repeated .angel.DataType type = 6 [packed = true];</code>
           */
          public Builder addAllTypeValue(
              java.lang.Iterable<java.lang.Integer> values) {
            ensureTypeIsMutable();
            for (int value : values) {
              type_.add(value);
            }
            onChanged();
            return this;
          }
  
          private java.util.List<com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto> shape_ =
            java.util.Collections.emptyList();
          private void ensureShapeIsMutable() {
            if (!((bitField0_ & 0x00000020) == 0x00000020)) {
              shape_ = new java.util.ArrayList<com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto>(shape_);
              bitField0_ |= 0x00000020;
             }
          }
  
          private com.google.protobuf.RepeatedFieldBuilderV3<
              com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder> shapeBuilder_;
  
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public java.util.List<com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto> getShapeList() {
            if (shapeBuilder_ == null) {
              return java.util.Collections.unmodifiableList(shape_);
            } else {
              return shapeBuilder_.getMessageList();
            }
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public int getShapeCount() {
            if (shapeBuilder_ == null) {
              return shape_.size();
            } else {
              return shapeBuilder_.getCount();
            }
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto getShape(int index) {
            if (shapeBuilder_ == null) {
              return shape_.get(index);
            } else {
              return shapeBuilder_.getMessage(index);
            }
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public Builder setShape(
              int index, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto value) {
            if (shapeBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureShapeIsMutable();
              shape_.set(index, value);
              onChanged();
            } else {
              shapeBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public Builder setShape(
              int index, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder builderForValue) {
            if (shapeBuilder_ == null) {
              ensureShapeIsMutable();
              shape_.set(index, builderForValue.build());
              onChanged();
            } else {
              shapeBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public Builder addShape(com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto value) {
            if (shapeBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureShapeIsMutable();
              shape_.add(value);
              onChanged();
            } else {
              shapeBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public Builder addShape(
              int index, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto value) {
            if (shapeBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureShapeIsMutable();
              shape_.add(index, value);
              onChanged();
            } else {
              shapeBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public Builder addShape(
              com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder builderForValue) {
            if (shapeBuilder_ == null) {
              ensureShapeIsMutable();
              shape_.add(builderForValue.build());
              onChanged();
            } else {
              shapeBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public Builder addShape(
              int index, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder builderForValue) {
            if (shapeBuilder_ == null) {
              ensureShapeIsMutable();
              shape_.add(index, builderForValue.build());
              onChanged();
            } else {
              shapeBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public Builder addAllShape(
              java.lang.Iterable<? extends com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto> values) {
            if (shapeBuilder_ == null) {
              ensureShapeIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, shape_);
              onChanged();
            } else {
              shapeBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public Builder clearShape() {
            if (shapeBuilder_ == null) {
              shape_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000020);
              onChanged();
            } else {
              shapeBuilder_.clear();
            }
            return this;
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public Builder removeShape(int index) {
            if (shapeBuilder_ == null) {
              ensureShapeIsMutable();
              shape_.remove(index);
              onChanged();
            } else {
              shapeBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder getShapeBuilder(
              int index) {
            return getShapeFieldBuilder().getBuilder(index);
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder getShapeOrBuilder(
              int index) {
            if (shapeBuilder_ == null) {
              return shape_.get(index);  } else {
              return shapeBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public java.util.List<? extends com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder> 
               getShapeOrBuilderList() {
            if (shapeBuilder_ != null) {
              return shapeBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(shape_);
            }
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder addShapeBuilder() {
            return getShapeFieldBuilder().addBuilder(
                com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.getDefaultInstance());
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder addShapeBuilder(
              int index) {
            return getShapeFieldBuilder().addBuilder(
                index, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.getDefaultInstance());
          }
          /**
           * <pre>
           * "list(shape)"
           * </pre>
           *
           * <code>repeated .angel.TensorShapeProto shape = 7;</code>
           */
          public java.util.List<com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder> 
               getShapeBuilderList() {
            return getShapeFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder> 
              getShapeFieldBuilder() {
            if (shapeBuilder_ == null) {
              shapeBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder>(
                      shape_,
                      ((bitField0_ & 0x00000020) == 0x00000020),
                      getParentForChildren(),
                      isClean());
              shape_ = null;
            }
            return shapeBuilder_;
          }
  
          private java.util.List<com.tencent.angel.core.graph.TensorProtos.TensorProto> tensor_ =
            java.util.Collections.emptyList();
          private void ensureTensorIsMutable() {
            if (!((bitField0_ & 0x00000040) == 0x00000040)) {
              tensor_ = new java.util.ArrayList<com.tencent.angel.core.graph.TensorProtos.TensorProto>(tensor_);
              bitField0_ |= 0x00000040;
             }
          }
  
          private com.google.protobuf.RepeatedFieldBuilderV3<
              com.tencent.angel.core.graph.TensorProtos.TensorProto, com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder, com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder> tensorBuilder_;
  
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public java.util.List<com.tencent.angel.core.graph.TensorProtos.TensorProto> getTensorList() {
            if (tensorBuilder_ == null) {
              return java.util.Collections.unmodifiableList(tensor_);
            } else {
              return tensorBuilder_.getMessageList();
            }
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public int getTensorCount() {
            if (tensorBuilder_ == null) {
              return tensor_.size();
            } else {
              return tensorBuilder_.getCount();
            }
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public com.tencent.angel.core.graph.TensorProtos.TensorProto getTensor(int index) {
            if (tensorBuilder_ == null) {
              return tensor_.get(index);
            } else {
              return tensorBuilder_.getMessage(index);
            }
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public Builder setTensor(
              int index, com.tencent.angel.core.graph.TensorProtos.TensorProto value) {
            if (tensorBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureTensorIsMutable();
              tensor_.set(index, value);
              onChanged();
            } else {
              tensorBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public Builder setTensor(
              int index, com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder builderForValue) {
            if (tensorBuilder_ == null) {
              ensureTensorIsMutable();
              tensor_.set(index, builderForValue.build());
              onChanged();
            } else {
              tensorBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public Builder addTensor(com.tencent.angel.core.graph.TensorProtos.TensorProto value) {
            if (tensorBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureTensorIsMutable();
              tensor_.add(value);
              onChanged();
            } else {
              tensorBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public Builder addTensor(
              int index, com.tencent.angel.core.graph.TensorProtos.TensorProto value) {
            if (tensorBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureTensorIsMutable();
              tensor_.add(index, value);
              onChanged();
            } else {
              tensorBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public Builder addTensor(
              com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder builderForValue) {
            if (tensorBuilder_ == null) {
              ensureTensorIsMutable();
              tensor_.add(builderForValue.build());
              onChanged();
            } else {
              tensorBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public Builder addTensor(
              int index, com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder builderForValue) {
            if (tensorBuilder_ == null) {
              ensureTensorIsMutable();
              tensor_.add(index, builderForValue.build());
              onChanged();
            } else {
              tensorBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public Builder addAllTensor(
              java.lang.Iterable<? extends com.tencent.angel.core.graph.TensorProtos.TensorProto> values) {
            if (tensorBuilder_ == null) {
              ensureTensorIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, tensor_);
              onChanged();
            } else {
              tensorBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public Builder clearTensor() {
            if (tensorBuilder_ == null) {
              tensor_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000040);
              onChanged();
            } else {
              tensorBuilder_.clear();
            }
            return this;
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public Builder removeTensor(int index) {
            if (tensorBuilder_ == null) {
              ensureTensorIsMutable();
              tensor_.remove(index);
              onChanged();
            } else {
              tensorBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder getTensorBuilder(
              int index) {
            return getTensorFieldBuilder().getBuilder(index);
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder getTensorOrBuilder(
              int index) {
            if (tensorBuilder_ == null) {
              return tensor_.get(index);  } else {
              return tensorBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public java.util.List<? extends com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder> 
               getTensorOrBuilderList() {
            if (tensorBuilder_ != null) {
              return tensorBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(tensor_);
            }
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder addTensorBuilder() {
            return getTensorFieldBuilder().addBuilder(
                com.tencent.angel.core.graph.TensorProtos.TensorProto.getDefaultInstance());
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder addTensorBuilder(
              int index) {
            return getTensorFieldBuilder().addBuilder(
                index, com.tencent.angel.core.graph.TensorProtos.TensorProto.getDefaultInstance());
          }
          /**
           * <pre>
           * "list(tensor)"
           * </pre>
           *
           * <code>repeated .angel.TensorProto tensor = 8;</code>
           */
          public java.util.List<com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder> 
               getTensorBuilderList() {
            return getTensorFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              com.tencent.angel.core.graph.TensorProtos.TensorProto, com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder, com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder> 
              getTensorFieldBuilder() {
            if (tensorBuilder_ == null) {
              tensorBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  com.tencent.angel.core.graph.TensorProtos.TensorProto, com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder, com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder>(
                      tensor_,
                      ((bitField0_ & 0x00000040) == 0x00000040),
                      getParentForChildren(),
                      isClean());
              tensor_ = null;
            }
            return tensorBuilder_;
          }
  
          private java.util.List<com.tencent.angel.core.graph.AttrValueProtos.NameAttrList> func_ =
            java.util.Collections.emptyList();
          private void ensureFuncIsMutable() {
            if (!((bitField0_ & 0x00000080) == 0x00000080)) {
              func_ = new java.util.ArrayList<com.tencent.angel.core.graph.AttrValueProtos.NameAttrList>(func_);
              bitField0_ |= 0x00000080;
             }
          }
  
          private com.google.protobuf.RepeatedFieldBuilderV3<
              com.tencent.angel.core.graph.AttrValueProtos.NameAttrList, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder, com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder> funcBuilder_;
  
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public java.util.List<com.tencent.angel.core.graph.AttrValueProtos.NameAttrList> getFuncList() {
            if (funcBuilder_ == null) {
              return java.util.Collections.unmodifiableList(func_);
            } else {
              return funcBuilder_.getMessageList();
            }
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public int getFuncCount() {
            if (funcBuilder_ == null) {
              return func_.size();
            } else {
              return funcBuilder_.getCount();
            }
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList getFunc(int index) {
            if (funcBuilder_ == null) {
              return func_.get(index);
            } else {
              return funcBuilder_.getMessage(index);
            }
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public Builder setFunc(
              int index, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList value) {
            if (funcBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureFuncIsMutable();
              func_.set(index, value);
              onChanged();
            } else {
              funcBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public Builder setFunc(
              int index, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder builderForValue) {
            if (funcBuilder_ == null) {
              ensureFuncIsMutable();
              func_.set(index, builderForValue.build());
              onChanged();
            } else {
              funcBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public Builder addFunc(com.tencent.angel.core.graph.AttrValueProtos.NameAttrList value) {
            if (funcBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureFuncIsMutable();
              func_.add(value);
              onChanged();
            } else {
              funcBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public Builder addFunc(
              int index, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList value) {
            if (funcBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureFuncIsMutable();
              func_.add(index, value);
              onChanged();
            } else {
              funcBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public Builder addFunc(
              com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder builderForValue) {
            if (funcBuilder_ == null) {
              ensureFuncIsMutable();
              func_.add(builderForValue.build());
              onChanged();
            } else {
              funcBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public Builder addFunc(
              int index, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder builderForValue) {
            if (funcBuilder_ == null) {
              ensureFuncIsMutable();
              func_.add(index, builderForValue.build());
              onChanged();
            } else {
              funcBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public Builder addAllFunc(
              java.lang.Iterable<? extends com.tencent.angel.core.graph.AttrValueProtos.NameAttrList> values) {
            if (funcBuilder_ == null) {
              ensureFuncIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, func_);
              onChanged();
            } else {
              funcBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public Builder clearFunc() {
            if (funcBuilder_ == null) {
              func_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000080);
              onChanged();
            } else {
              funcBuilder_.clear();
            }
            return this;
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public Builder removeFunc(int index) {
            if (funcBuilder_ == null) {
              ensureFuncIsMutable();
              func_.remove(index);
              onChanged();
            } else {
              funcBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder getFuncBuilder(
              int index) {
            return getFuncFieldBuilder().getBuilder(index);
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder getFuncOrBuilder(
              int index) {
            if (funcBuilder_ == null) {
              return func_.get(index);  } else {
              return funcBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public java.util.List<? extends com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder> 
               getFuncOrBuilderList() {
            if (funcBuilder_ != null) {
              return funcBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(func_);
            }
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder addFuncBuilder() {
            return getFuncFieldBuilder().addBuilder(
                com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance());
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder addFuncBuilder(
              int index) {
            return getFuncFieldBuilder().addBuilder(
                index, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance());
          }
          /**
           * <pre>
           * "list(attr)"
           * </pre>
           *
           * <code>repeated .angel.NameAttrList func = 9;</code>
           */
          public java.util.List<com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder> 
               getFuncBuilderList() {
            return getFuncFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              com.tencent.angel.core.graph.AttrValueProtos.NameAttrList, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder, com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder> 
              getFuncFieldBuilder() {
            if (funcBuilder_ == null) {
              funcBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  com.tencent.angel.core.graph.AttrValueProtos.NameAttrList, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder, com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder>(
                      func_,
                      ((bitField0_ & 0x00000080) == 0x00000080),
                      getParentForChildren(),
                      isClean());
              func_ = null;
            }
            return funcBuilder_;
          }
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFieldsProto3(unknownFields);
          }
  
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }
  
  
          // @@protoc_insertion_point(builder_scope:angel.AttrValue.ListValue)
        }
  
        // @@protoc_insertion_point(class_scope:angel.AttrValue.ListValue)
        private static final com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue();
        }
  
        public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static final com.google.protobuf.Parser<ListValue>
            PARSER = new com.google.protobuf.AbstractParser<ListValue>() {
          public ListValue parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ListValue(input, extensionRegistry);
          }
        };
  
        public static com.google.protobuf.Parser<ListValue> parser() {
          return PARSER;
        }
  
        @java.lang.Override
        public com.google.protobuf.Parser<ListValue> getParserForType() {
          return PARSER;
        }
  
        public com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }
  
      }
  
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public enum ValueCase
          implements com.google.protobuf.Internal.EnumLite {
        S(2),
        I(3),
        F(4),
        B(5),
        TYPE(6),
        SHAPE(7),
        TENSOR(8),
        LIST(1),
        FUNC(10),
        PLACEHOLDER(9),
        VALUE_NOT_SET(0);
        private final int value;
        private ValueCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ValueCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static ValueCase forNumber(int value) {
          switch (value) {
            case 2: return S;
            case 3: return I;
            case 4: return F;
            case 5: return B;
            case 6: return TYPE;
            case 7: return SHAPE;
            case 8: return TENSOR;
            case 1: return LIST;
            case 10: return FUNC;
            case 9: return PLACEHOLDER;
            case 0: return VALUE_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public ValueCase
      getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }
  
      public static final int S_FIELD_NUMBER = 2;
      /**
       * <pre>
       * "string"
       * </pre>
       *
       * <code>bytes s = 2;</code>
       */
      public com.google.protobuf.ByteString getS() {
        if (valueCase_ == 2) {
          return (com.google.protobuf.ByteString) value_;
        }
        return com.google.protobuf.ByteString.EMPTY;
      }
  
      public static final int I_FIELD_NUMBER = 3;
      /**
       * <pre>
       * "int"
       * </pre>
       *
       * <code>int64 i = 3;</code>
       */
      public long getI() {
        if (valueCase_ == 3) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }
  
      public static final int F_FIELD_NUMBER = 4;
      /**
       * <pre>
       * "float"
       * </pre>
       *
       * <code>float f = 4;</code>
       */
      public float getF() {
        if (valueCase_ == 4) {
          return (java.lang.Float) value_;
        }
        return 0F;
      }
  
      public static final int B_FIELD_NUMBER = 5;
      /**
       * <pre>
       * "bool"
       * </pre>
       *
       * <code>bool b = 5;</code>
       */
      public boolean getB() {
        if (valueCase_ == 5) {
          return (java.lang.Boolean) value_;
        }
        return false;
      }
  
      public static final int TYPE_FIELD_NUMBER = 6;
      /**
       * <pre>
       * "type"
       * </pre>
       *
       * <code>.angel.DataType type = 6;</code>
       */
      public int getTypeValue() {
        if (valueCase_ == 6) {
          return (java.lang.Integer) value_;
        }
        return 0;
      }
      /**
       * <pre>
       * "type"
       * </pre>
       *
       * <code>.angel.DataType type = 6;</code>
       */
      public com.tencent.angel.serving.apis.common.TypesProtos.DataType getType() {
        if (valueCase_ == 6) {
          com.tencent.angel.serving.apis.common.TypesProtos.DataType result = com.tencent.angel.serving.apis.common.TypesProtos.DataType.valueOf(
              (java.lang.Integer) value_);
          return result == null ? com.tencent.angel.serving.apis.common.TypesProtos.DataType.UNRECOGNIZED : result;
        }
        return com.tencent.angel.serving.apis.common.TypesProtos.DataType.DT_INVALID;
      }
  
      public static final int SHAPE_FIELD_NUMBER = 7;
      /**
       * <pre>
       * "shape"
       * </pre>
       *
       * <code>.angel.TensorShapeProto shape = 7;</code>
       */
      public boolean hasShape() {
        return valueCase_ == 7;
      }
      /**
       * <pre>
       * "shape"
       * </pre>
       *
       * <code>.angel.TensorShapeProto shape = 7;</code>
       */
      public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto getShape() {
        if (valueCase_ == 7) {
           return (com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto) value_;
        }
        return com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.getDefaultInstance();
      }
      /**
       * <pre>
       * "shape"
       * </pre>
       *
       * <code>.angel.TensorShapeProto shape = 7;</code>
       */
      public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder getShapeOrBuilder() {
        if (valueCase_ == 7) {
           return (com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto) value_;
        }
        return com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.getDefaultInstance();
      }
  
      public static final int TENSOR_FIELD_NUMBER = 8;
      /**
       * <pre>
       * "tensor"
       * </pre>
       *
       * <code>.angel.TensorProto tensor = 8;</code>
       */
      public boolean hasTensor() {
        return valueCase_ == 8;
      }
      /**
       * <pre>
       * "tensor"
       * </pre>
       *
       * <code>.angel.TensorProto tensor = 8;</code>
       */
      public com.tencent.angel.core.graph.TensorProtos.TensorProto getTensor() {
        if (valueCase_ == 8) {
           return (com.tencent.angel.core.graph.TensorProtos.TensorProto) value_;
        }
        return com.tencent.angel.core.graph.TensorProtos.TensorProto.getDefaultInstance();
      }
      /**
       * <pre>
       * "tensor"
       * </pre>
       *
       * <code>.angel.TensorProto tensor = 8;</code>
       */
      public com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder getTensorOrBuilder() {
        if (valueCase_ == 8) {
           return (com.tencent.angel.core.graph.TensorProtos.TensorProto) value_;
        }
        return com.tencent.angel.core.graph.TensorProtos.TensorProto.getDefaultInstance();
      }
  
      public static final int LIST_FIELD_NUMBER = 1;
      /**
       * <pre>
       * any "list(...)"
       * </pre>
       *
       * <code>.angel.AttrValue.ListValue list = 1;</code>
       */
      public boolean hasList() {
        return valueCase_ == 1;
      }
      /**
       * <pre>
       * any "list(...)"
       * </pre>
       *
       * <code>.angel.AttrValue.ListValue list = 1;</code>
       */
      public com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue getList() {
        if (valueCase_ == 1) {
           return (com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) value_;
        }
        return com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.getDefaultInstance();
      }
      /**
       * <pre>
       * any "list(...)"
       * </pre>
       *
       * <code>.angel.AttrValue.ListValue list = 1;</code>
       */
      public com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValueOrBuilder getListOrBuilder() {
        if (valueCase_ == 1) {
           return (com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) value_;
        }
        return com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.getDefaultInstance();
      }
  
      public static final int FUNC_FIELD_NUMBER = 10;
      /**
       * <pre>
       * "func" represents a function. func.name is a function's name or
       * a primitive op's name. func.attr.first is the name of an attr
       * defined for that function. func.attr.second is the value for
       * that attr in the instantiation.
       * </pre>
       *
       * <code>.angel.NameAttrList func = 10;</code>
       */
      public boolean hasFunc() {
        return valueCase_ == 10;
      }
      /**
       * <pre>
       * "func" represents a function. func.name is a function's name or
       * a primitive op's name. func.attr.first is the name of an attr
       * defined for that function. func.attr.second is the value for
       * that attr in the instantiation.
       * </pre>
       *
       * <code>.angel.NameAttrList func = 10;</code>
       */
      public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList getFunc() {
        if (valueCase_ == 10) {
           return (com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) value_;
        }
        return com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance();
      }
      /**
       * <pre>
       * "func" represents a function. func.name is a function's name or
       * a primitive op's name. func.attr.first is the name of an attr
       * defined for that function. func.attr.second is the value for
       * that attr in the instantiation.
       * </pre>
       *
       * <code>.angel.NameAttrList func = 10;</code>
       */
      public com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder getFuncOrBuilder() {
        if (valueCase_ == 10) {
           return (com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) value_;
        }
        return com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance();
      }
  
      public static final int PLACEHOLDER_FIELD_NUMBER = 9;
      /**
       * <pre>
       * This is a placeholder only used in nodes defined inside a
       * function.  It indicates the attr value will be supplied when
       * the function is instantiated.  For example, let us suppose a
       * node "N" in function "FN". "N" has an attr "A" with value
       * placeholder = "foo". When FN is instantiated with attr "foo"
       * set to "bar", the instantiated node N's attr A will have been
       * given the value "bar".
       * </pre>
       *
       * <code>string placeholder = 9;</code>
       */
      public java.lang.String getPlaceholder() {
        java.lang.Object ref = "";
        if (valueCase_ == 9) {
          ref = value_;
        }
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (valueCase_ == 9) {
            value_ = s;
          }
          return s;
        }
      }
      /**
       * <pre>
       * This is a placeholder only used in nodes defined inside a
       * function.  It indicates the attr value will be supplied when
       * the function is instantiated.  For example, let us suppose a
       * node "N" in function "FN". "N" has an attr "A" with value
       * placeholder = "foo". When FN is instantiated with attr "foo"
       * set to "bar", the instantiated node N's attr A will have been
       * given the value "bar".
       * </pre>
       *
       * <code>string placeholder = 9;</code>
       */
      public com.google.protobuf.ByteString
          getPlaceholderBytes() {
        java.lang.Object ref = "";
        if (valueCase_ == 9) {
          ref = value_;
        }
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (valueCase_ == 9) {
            value_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (valueCase_ == 1) {
          output.writeMessage(1, (com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) value_);
        }
        if (valueCase_ == 2) {
          output.writeBytes(
              2, (com.google.protobuf.ByteString) value_);
        }
        if (valueCase_ == 3) {
          output.writeInt64(
              3, (long)((java.lang.Long) value_));
        }
        if (valueCase_ == 4) {
          output.writeFloat(
              4, (float)((java.lang.Float) value_));
        }
        if (valueCase_ == 5) {
          output.writeBool(
              5, (boolean)((java.lang.Boolean) value_));
        }
        if (valueCase_ == 6) {
          output.writeEnum(6, ((java.lang.Integer) value_));
        }
        if (valueCase_ == 7) {
          output.writeMessage(7, (com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto) value_);
        }
        if (valueCase_ == 8) {
          output.writeMessage(8, (com.tencent.angel.core.graph.TensorProtos.TensorProto) value_);
        }
        if (valueCase_ == 9) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 9, value_);
        }
        if (valueCase_ == 10) {
          output.writeMessage(10, (com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) value_);
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (valueCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, (com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) value_);
        }
        if (valueCase_ == 2) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(
                2, (com.google.protobuf.ByteString) value_);
        }
        if (valueCase_ == 3) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(
                3, (long)((java.lang.Long) value_));
        }
        if (valueCase_ == 4) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(
                4, (float)((java.lang.Float) value_));
        }
        if (valueCase_ == 5) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(
                5, (boolean)((java.lang.Boolean) value_));
        }
        if (valueCase_ == 6) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(6, ((java.lang.Integer) value_));
        }
        if (valueCase_ == 7) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, (com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto) value_);
        }
        if (valueCase_ == 8) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(8, (com.tencent.angel.core.graph.TensorProtos.TensorProto) value_);
        }
        if (valueCase_ == 9) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, value_);
        }
        if (valueCase_ == 10) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(10, (com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) value_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.tencent.angel.core.graph.AttrValueProtos.AttrValue)) {
          return super.equals(obj);
        }
        com.tencent.angel.core.graph.AttrValueProtos.AttrValue other = (com.tencent.angel.core.graph.AttrValueProtos.AttrValue) obj;
  
        boolean result = true;
        result = result && getValueCase().equals(
            other.getValueCase());
        if (!result) return false;
        switch (valueCase_) {
          case 2:
            result = result && getS()
                .equals(other.getS());
            break;
          case 3:
            result = result && (getI()
                == other.getI());
            break;
          case 4:
            result = result && (
                java.lang.Float.floatToIntBits(getF())
                == java.lang.Float.floatToIntBits(
                    other.getF()));
            break;
          case 5:
            result = result && (getB()
                == other.getB());
            break;
          case 6:
            result = result && getTypeValue()
                == other.getTypeValue();
            break;
          case 7:
            result = result && getShape()
                .equals(other.getShape());
            break;
          case 8:
            result = result && getTensor()
                .equals(other.getTensor());
            break;
          case 1:
            result = result && getList()
                .equals(other.getList());
            break;
          case 10:
            result = result && getFunc()
                .equals(other.getFunc());
            break;
          case 9:
            result = result && getPlaceholder()
                .equals(other.getPlaceholder());
            break;
          case 0:
          default:
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        switch (valueCase_) {
          case 2:
            hash = (37 * hash) + S_FIELD_NUMBER;
            hash = (53 * hash) + getS().hashCode();
            break;
          case 3:
            hash = (37 * hash) + I_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getI());
            break;
          case 4:
            hash = (37 * hash) + F_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(
                getF());
            break;
          case 5:
            hash = (37 * hash) + B_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
                getB());
            break;
          case 6:
            hash = (37 * hash) + TYPE_FIELD_NUMBER;
            hash = (53 * hash) + getTypeValue();
            break;
          case 7:
            hash = (37 * hash) + SHAPE_FIELD_NUMBER;
            hash = (53 * hash) + getShape().hashCode();
            break;
          case 8:
            hash = (37 * hash) + TENSOR_FIELD_NUMBER;
            hash = (53 * hash) + getTensor().hashCode();
            break;
          case 1:
            hash = (37 * hash) + LIST_FIELD_NUMBER;
            hash = (53 * hash) + getList().hashCode();
            break;
          case 10:
            hash = (37 * hash) + FUNC_FIELD_NUMBER;
            hash = (53 * hash) + getFunc().hashCode();
            break;
          case 9:
            hash = (37 * hash) + PLACEHOLDER_FIELD_NUMBER;
            hash = (53 * hash) + getPlaceholder().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.tencent.angel.core.graph.AttrValueProtos.AttrValue prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Protocol buffer representing the value for an attr used to configure an Op.
       * Comment indicates the corresponding attr type.  Only the field matching the
       * attr type may be filled.
       * </pre>
       *
       * Protobuf type {@code angel.AttrValue}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:angel.AttrValue)
          com.tencent.angel.core.graph.AttrValueProtos.AttrValueOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_AttrValue_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_AttrValue_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.tencent.angel.core.graph.AttrValueProtos.AttrValue.class, com.tencent.angel.core.graph.AttrValueProtos.AttrValue.Builder.class);
        }
  
        // Construct using com.tencent.angel.core.graph.AttrValueProtos.AttrValue.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          valueCase_ = 0;
          value_ = null;
          return this;
        }
  
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_AttrValue_descriptor;
        }
  
        public com.tencent.angel.core.graph.AttrValueProtos.AttrValue getDefaultInstanceForType() {
          return com.tencent.angel.core.graph.AttrValueProtos.AttrValue.getDefaultInstance();
        }
  
        public com.tencent.angel.core.graph.AttrValueProtos.AttrValue build() {
          com.tencent.angel.core.graph.AttrValueProtos.AttrValue result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        public com.tencent.angel.core.graph.AttrValueProtos.AttrValue buildPartial() {
          com.tencent.angel.core.graph.AttrValueProtos.AttrValue result = new com.tencent.angel.core.graph.AttrValueProtos.AttrValue(this);
          if (valueCase_ == 2) {
            result.value_ = value_;
          }
          if (valueCase_ == 3) {
            result.value_ = value_;
          }
          if (valueCase_ == 4) {
            result.value_ = value_;
          }
          if (valueCase_ == 5) {
            result.value_ = value_;
          }
          if (valueCase_ == 6) {
            result.value_ = value_;
          }
          if (valueCase_ == 7) {
            if (shapeBuilder_ == null) {
              result.value_ = value_;
            } else {
              result.value_ = shapeBuilder_.build();
            }
          }
          if (valueCase_ == 8) {
            if (tensorBuilder_ == null) {
              result.value_ = value_;
            } else {
              result.value_ = tensorBuilder_.build();
            }
          }
          if (valueCase_ == 1) {
            if (listBuilder_ == null) {
              result.value_ = value_;
            } else {
              result.value_ = listBuilder_.build();
            }
          }
          if (valueCase_ == 10) {
            if (funcBuilder_ == null) {
              result.value_ = value_;
            } else {
              result.value_ = funcBuilder_.build();
            }
          }
          if (valueCase_ == 9) {
            result.value_ = value_;
          }
          result.valueCase_ = valueCase_;
          onBuilt();
          return result;
        }
  
        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.tencent.angel.core.graph.AttrValueProtos.AttrValue) {
            return mergeFrom((com.tencent.angel.core.graph.AttrValueProtos.AttrValue)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.tencent.angel.core.graph.AttrValueProtos.AttrValue other) {
          if (other == com.tencent.angel.core.graph.AttrValueProtos.AttrValue.getDefaultInstance()) return this;
          switch (other.getValueCase()) {
            case S: {
              setS(other.getS());
              break;
            }
            case I: {
              setI(other.getI());
              break;
            }
            case F: {
              setF(other.getF());
              break;
            }
            case B: {
              setB(other.getB());
              break;
            }
            case TYPE: {
              setTypeValue(other.getTypeValue());
              break;
            }
            case SHAPE: {
              mergeShape(other.getShape());
              break;
            }
            case TENSOR: {
              mergeTensor(other.getTensor());
              break;
            }
            case LIST: {
              mergeList(other.getList());
              break;
            }
            case FUNC: {
              mergeFunc(other.getFunc());
              break;
            }
            case PLACEHOLDER: {
              valueCase_ = 9;
              value_ = other.value_;
              onChanged();
              break;
            }
            case VALUE_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        public final boolean isInitialized() {
          return true;
        }
  
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.tencent.angel.core.graph.AttrValueProtos.AttrValue parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.tencent.angel.core.graph.AttrValueProtos.AttrValue) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int valueCase_ = 0;
        private java.lang.Object value_;
        public ValueCase
            getValueCase() {
          return ValueCase.forNumber(
              valueCase_);
        }
  
        public Builder clearValue() {
          valueCase_ = 0;
          value_ = null;
          onChanged();
          return this;
        }
  
  
        /**
         * <pre>
         * "string"
         * </pre>
         *
         * <code>bytes s = 2;</code>
         */
        public com.google.protobuf.ByteString getS() {
          if (valueCase_ == 2) {
            return (com.google.protobuf.ByteString) value_;
          }
          return com.google.protobuf.ByteString.EMPTY;
        }
        /**
         * <pre>
         * "string"
         * </pre>
         *
         * <code>bytes s = 2;</code>
         */
        public Builder setS(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    valueCase_ = 2;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * "string"
         * </pre>
         *
         * <code>bytes s = 2;</code>
         */
        public Builder clearS() {
          if (valueCase_ == 2) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }
  
        /**
         * <pre>
         * "int"
         * </pre>
         *
         * <code>int64 i = 3;</code>
         */
        public long getI() {
          if (valueCase_ == 3) {
            return (java.lang.Long) value_;
          }
          return 0L;
        }
        /**
         * <pre>
         * "int"
         * </pre>
         *
         * <code>int64 i = 3;</code>
         */
        public Builder setI(long value) {
          valueCase_ = 3;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * "int"
         * </pre>
         *
         * <code>int64 i = 3;</code>
         */
        public Builder clearI() {
          if (valueCase_ == 3) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }
  
        /**
         * <pre>
         * "float"
         * </pre>
         *
         * <code>float f = 4;</code>
         */
        public float getF() {
          if (valueCase_ == 4) {
            return (java.lang.Float) value_;
          }
          return 0F;
        }
        /**
         * <pre>
         * "float"
         * </pre>
         *
         * <code>float f = 4;</code>
         */
        public Builder setF(float value) {
          valueCase_ = 4;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * "float"
         * </pre>
         *
         * <code>float f = 4;</code>
         */
        public Builder clearF() {
          if (valueCase_ == 4) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }
  
        /**
         * <pre>
         * "bool"
         * </pre>
         *
         * <code>bool b = 5;</code>
         */
        public boolean getB() {
          if (valueCase_ == 5) {
            return (java.lang.Boolean) value_;
          }
          return false;
        }
        /**
         * <pre>
         * "bool"
         * </pre>
         *
         * <code>bool b = 5;</code>
         */
        public Builder setB(boolean value) {
          valueCase_ = 5;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * "bool"
         * </pre>
         *
         * <code>bool b = 5;</code>
         */
        public Builder clearB() {
          if (valueCase_ == 5) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }
  
        /**
         * <pre>
         * "type"
         * </pre>
         *
         * <code>.angel.DataType type = 6;</code>
         */
        public int getTypeValue() {
          if (valueCase_ == 6) {
            return ((java.lang.Integer) value_).intValue();
          }
          return 0;
        }
        /**
         * <pre>
         * "type"
         * </pre>
         *
         * <code>.angel.DataType type = 6;</code>
         */
        public Builder setTypeValue(int value) {
          valueCase_ = 6;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * "type"
         * </pre>
         *
         * <code>.angel.DataType type = 6;</code>
         */
        public com.tencent.angel.serving.apis.common.TypesProtos.DataType getType() {
          if (valueCase_ == 6) {
            com.tencent.angel.serving.apis.common.TypesProtos.DataType result = com.tencent.angel.serving.apis.common.TypesProtos.DataType.valueOf(
                (java.lang.Integer) value_);
            return result == null ? com.tencent.angel.serving.apis.common.TypesProtos.DataType.UNRECOGNIZED : result;
          }
          return com.tencent.angel.serving.apis.common.TypesProtos.DataType.DT_INVALID;
        }
        /**
         * <pre>
         * "type"
         * </pre>
         *
         * <code>.angel.DataType type = 6;</code>
         */
        public Builder setType(com.tencent.angel.serving.apis.common.TypesProtos.DataType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          valueCase_ = 6;
          value_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * "type"
         * </pre>
         *
         * <code>.angel.DataType type = 6;</code>
         */
        public Builder clearType() {
          if (valueCase_ == 6) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }
  
        private com.google.protobuf.SingleFieldBuilderV3<
            com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder> shapeBuilder_;
        /**
         * <pre>
         * "shape"
         * </pre>
         *
         * <code>.angel.TensorShapeProto shape = 7;</code>
         */
        public boolean hasShape() {
          return valueCase_ == 7;
        }
        /**
         * <pre>
         * "shape"
         * </pre>
         *
         * <code>.angel.TensorShapeProto shape = 7;</code>
         */
        public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto getShape() {
          if (shapeBuilder_ == null) {
            if (valueCase_ == 7) {
              return (com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto) value_;
            }
            return com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.getDefaultInstance();
          } else {
            if (valueCase_ == 7) {
              return shapeBuilder_.getMessage();
            }
            return com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * "shape"
         * </pre>
         *
         * <code>.angel.TensorShapeProto shape = 7;</code>
         */
        public Builder setShape(com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto value) {
          if (shapeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            value_ = value;
            onChanged();
          } else {
            shapeBuilder_.setMessage(value);
          }
          valueCase_ = 7;
          return this;
        }
        /**
         * <pre>
         * "shape"
         * </pre>
         *
         * <code>.angel.TensorShapeProto shape = 7;</code>
         */
        public Builder setShape(
            com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder builderForValue) {
          if (shapeBuilder_ == null) {
            value_ = builderForValue.build();
            onChanged();
          } else {
            shapeBuilder_.setMessage(builderForValue.build());
          }
          valueCase_ = 7;
          return this;
        }
        /**
         * <pre>
         * "shape"
         * </pre>
         *
         * <code>.angel.TensorShapeProto shape = 7;</code>
         */
        public Builder mergeShape(com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto value) {
          if (shapeBuilder_ == null) {
            if (valueCase_ == 7 &&
                value_ != com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.getDefaultInstance()) {
              value_ = com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.newBuilder((com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto) value_)
                  .mergeFrom(value).buildPartial();
            } else {
              value_ = value;
            }
            onChanged();
          } else {
            if (valueCase_ == 7) {
              shapeBuilder_.mergeFrom(value);
            }
            shapeBuilder_.setMessage(value);
          }
          valueCase_ = 7;
          return this;
        }
        /**
         * <pre>
         * "shape"
         * </pre>
         *
         * <code>.angel.TensorShapeProto shape = 7;</code>
         */
        public Builder clearShape() {
          if (shapeBuilder_ == null) {
            if (valueCase_ == 7) {
              valueCase_ = 0;
              value_ = null;
              onChanged();
            }
          } else {
            if (valueCase_ == 7) {
              valueCase_ = 0;
              value_ = null;
            }
            shapeBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * "shape"
         * </pre>
         *
         * <code>.angel.TensorShapeProto shape = 7;</code>
         */
        public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder getShapeBuilder() {
          return getShapeFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * "shape"
         * </pre>
         *
         * <code>.angel.TensorShapeProto shape = 7;</code>
         */
        public com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder getShapeOrBuilder() {
          if ((valueCase_ == 7) && (shapeBuilder_ != null)) {
            return shapeBuilder_.getMessageOrBuilder();
          } else {
            if (valueCase_ == 7) {
              return (com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto) value_;
            }
            return com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * "shape"
         * </pre>
         *
         * <code>.angel.TensorShapeProto shape = 7;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder> 
            getShapeFieldBuilder() {
          if (shapeBuilder_ == null) {
            if (!(valueCase_ == 7)) {
              value_ = com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.getDefaultInstance();
            }
            shapeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto.Builder, com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProtoOrBuilder>(
                    (com.tencent.angel.serving.apis.common.TensorShapeProtos.TensorShapeProto) value_,
                    getParentForChildren(),
                    isClean());
            value_ = null;
          }
          valueCase_ = 7;
          onChanged();;
          return shapeBuilder_;
        }
  
        private com.google.protobuf.SingleFieldBuilderV3<
            com.tencent.angel.core.graph.TensorProtos.TensorProto, com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder, com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder> tensorBuilder_;
        /**
         * <pre>
         * "tensor"
         * </pre>
         *
         * <code>.angel.TensorProto tensor = 8;</code>
         */
        public boolean hasTensor() {
          return valueCase_ == 8;
        }
        /**
         * <pre>
         * "tensor"
         * </pre>
         *
         * <code>.angel.TensorProto tensor = 8;</code>
         */
        public com.tencent.angel.core.graph.TensorProtos.TensorProto getTensor() {
          if (tensorBuilder_ == null) {
            if (valueCase_ == 8) {
              return (com.tencent.angel.core.graph.TensorProtos.TensorProto) value_;
            }
            return com.tencent.angel.core.graph.TensorProtos.TensorProto.getDefaultInstance();
          } else {
            if (valueCase_ == 8) {
              return tensorBuilder_.getMessage();
            }
            return com.tencent.angel.core.graph.TensorProtos.TensorProto.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * "tensor"
         * </pre>
         *
         * <code>.angel.TensorProto tensor = 8;</code>
         */
        public Builder setTensor(com.tencent.angel.core.graph.TensorProtos.TensorProto value) {
          if (tensorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            value_ = value;
            onChanged();
          } else {
            tensorBuilder_.setMessage(value);
          }
          valueCase_ = 8;
          return this;
        }
        /**
         * <pre>
         * "tensor"
         * </pre>
         *
         * <code>.angel.TensorProto tensor = 8;</code>
         */
        public Builder setTensor(
            com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder builderForValue) {
          if (tensorBuilder_ == null) {
            value_ = builderForValue.build();
            onChanged();
          } else {
            tensorBuilder_.setMessage(builderForValue.build());
          }
          valueCase_ = 8;
          return this;
        }
        /**
         * <pre>
         * "tensor"
         * </pre>
         *
         * <code>.angel.TensorProto tensor = 8;</code>
         */
        public Builder mergeTensor(com.tencent.angel.core.graph.TensorProtos.TensorProto value) {
          if (tensorBuilder_ == null) {
            if (valueCase_ == 8 &&
                value_ != com.tencent.angel.core.graph.TensorProtos.TensorProto.getDefaultInstance()) {
              value_ = com.tencent.angel.core.graph.TensorProtos.TensorProto.newBuilder((com.tencent.angel.core.graph.TensorProtos.TensorProto) value_)
                  .mergeFrom(value).buildPartial();
            } else {
              value_ = value;
            }
            onChanged();
          } else {
            if (valueCase_ == 8) {
              tensorBuilder_.mergeFrom(value);
            }
            tensorBuilder_.setMessage(value);
          }
          valueCase_ = 8;
          return this;
        }
        /**
         * <pre>
         * "tensor"
         * </pre>
         *
         * <code>.angel.TensorProto tensor = 8;</code>
         */
        public Builder clearTensor() {
          if (tensorBuilder_ == null) {
            if (valueCase_ == 8) {
              valueCase_ = 0;
              value_ = null;
              onChanged();
            }
          } else {
            if (valueCase_ == 8) {
              valueCase_ = 0;
              value_ = null;
            }
            tensorBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * "tensor"
         * </pre>
         *
         * <code>.angel.TensorProto tensor = 8;</code>
         */
        public com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder getTensorBuilder() {
          return getTensorFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * "tensor"
         * </pre>
         *
         * <code>.angel.TensorProto tensor = 8;</code>
         */
        public com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder getTensorOrBuilder() {
          if ((valueCase_ == 8) && (tensorBuilder_ != null)) {
            return tensorBuilder_.getMessageOrBuilder();
          } else {
            if (valueCase_ == 8) {
              return (com.tencent.angel.core.graph.TensorProtos.TensorProto) value_;
            }
            return com.tencent.angel.core.graph.TensorProtos.TensorProto.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * "tensor"
         * </pre>
         *
         * <code>.angel.TensorProto tensor = 8;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.tencent.angel.core.graph.TensorProtos.TensorProto, com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder, com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder> 
            getTensorFieldBuilder() {
          if (tensorBuilder_ == null) {
            if (!(valueCase_ == 8)) {
              value_ = com.tencent.angel.core.graph.TensorProtos.TensorProto.getDefaultInstance();
            }
            tensorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.tencent.angel.core.graph.TensorProtos.TensorProto, com.tencent.angel.core.graph.TensorProtos.TensorProto.Builder, com.tencent.angel.core.graph.TensorProtos.TensorProtoOrBuilder>(
                    (com.tencent.angel.core.graph.TensorProtos.TensorProto) value_,
                    getParentForChildren(),
                    isClean());
            value_ = null;
          }
          valueCase_ = 8;
          onChanged();;
          return tensorBuilder_;
        }
  
        private com.google.protobuf.SingleFieldBuilderV3<
            com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue, com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.Builder, com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValueOrBuilder> listBuilder_;
        /**
         * <pre>
         * any "list(...)"
         * </pre>
         *
         * <code>.angel.AttrValue.ListValue list = 1;</code>
         */
        public boolean hasList() {
          return valueCase_ == 1;
        }
        /**
         * <pre>
         * any "list(...)"
         * </pre>
         *
         * <code>.angel.AttrValue.ListValue list = 1;</code>
         */
        public com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue getList() {
          if (listBuilder_ == null) {
            if (valueCase_ == 1) {
              return (com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) value_;
            }
            return com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.getDefaultInstance();
          } else {
            if (valueCase_ == 1) {
              return listBuilder_.getMessage();
            }
            return com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * any "list(...)"
         * </pre>
         *
         * <code>.angel.AttrValue.ListValue list = 1;</code>
         */
        public Builder setList(com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue value) {
          if (listBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            value_ = value;
            onChanged();
          } else {
            listBuilder_.setMessage(value);
          }
          valueCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * any "list(...)"
         * </pre>
         *
         * <code>.angel.AttrValue.ListValue list = 1;</code>
         */
        public Builder setList(
            com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.Builder builderForValue) {
          if (listBuilder_ == null) {
            value_ = builderForValue.build();
            onChanged();
          } else {
            listBuilder_.setMessage(builderForValue.build());
          }
          valueCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * any "list(...)"
         * </pre>
         *
         * <code>.angel.AttrValue.ListValue list = 1;</code>
         */
        public Builder mergeList(com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue value) {
          if (listBuilder_ == null) {
            if (valueCase_ == 1 &&
                value_ != com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.getDefaultInstance()) {
              value_ = com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.newBuilder((com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) value_)
                  .mergeFrom(value).buildPartial();
            } else {
              value_ = value;
            }
            onChanged();
          } else {
            if (valueCase_ == 1) {
              listBuilder_.mergeFrom(value);
            }
            listBuilder_.setMessage(value);
          }
          valueCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * any "list(...)"
         * </pre>
         *
         * <code>.angel.AttrValue.ListValue list = 1;</code>
         */
        public Builder clearList() {
          if (listBuilder_ == null) {
            if (valueCase_ == 1) {
              valueCase_ = 0;
              value_ = null;
              onChanged();
            }
          } else {
            if (valueCase_ == 1) {
              valueCase_ = 0;
              value_ = null;
            }
            listBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * any "list(...)"
         * </pre>
         *
         * <code>.angel.AttrValue.ListValue list = 1;</code>
         */
        public com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.Builder getListBuilder() {
          return getListFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * any "list(...)"
         * </pre>
         *
         * <code>.angel.AttrValue.ListValue list = 1;</code>
         */
        public com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValueOrBuilder getListOrBuilder() {
          if ((valueCase_ == 1) && (listBuilder_ != null)) {
            return listBuilder_.getMessageOrBuilder();
          } else {
            if (valueCase_ == 1) {
              return (com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) value_;
            }
            return com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * any "list(...)"
         * </pre>
         *
         * <code>.angel.AttrValue.ListValue list = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue, com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.Builder, com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValueOrBuilder> 
            getListFieldBuilder() {
          if (listBuilder_ == null) {
            if (!(valueCase_ == 1)) {
              value_ = com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.getDefaultInstance();
            }
            listBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue, com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue.Builder, com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValueOrBuilder>(
                    (com.tencent.angel.core.graph.AttrValueProtos.AttrValue.ListValue) value_,
                    getParentForChildren(),
                    isClean());
            value_ = null;
          }
          valueCase_ = 1;
          onChanged();;
          return listBuilder_;
        }
  
        private com.google.protobuf.SingleFieldBuilderV3<
            com.tencent.angel.core.graph.AttrValueProtos.NameAttrList, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder, com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder> funcBuilder_;
        /**
         * <pre>
         * "func" represents a function. func.name is a function's name or
         * a primitive op's name. func.attr.first is the name of an attr
         * defined for that function. func.attr.second is the value for
         * that attr in the instantiation.
         * </pre>
         *
         * <code>.angel.NameAttrList func = 10;</code>
         */
        public boolean hasFunc() {
          return valueCase_ == 10;
        }
        /**
         * <pre>
         * "func" represents a function. func.name is a function's name or
         * a primitive op's name. func.attr.first is the name of an attr
         * defined for that function. func.attr.second is the value for
         * that attr in the instantiation.
         * </pre>
         *
         * <code>.angel.NameAttrList func = 10;</code>
         */
        public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList getFunc() {
          if (funcBuilder_ == null) {
            if (valueCase_ == 10) {
              return (com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) value_;
            }
            return com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance();
          } else {
            if (valueCase_ == 10) {
              return funcBuilder_.getMessage();
            }
            return com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * "func" represents a function. func.name is a function's name or
         * a primitive op's name. func.attr.first is the name of an attr
         * defined for that function. func.attr.second is the value for
         * that attr in the instantiation.
         * </pre>
         *
         * <code>.angel.NameAttrList func = 10;</code>
         */
        public Builder setFunc(com.tencent.angel.core.graph.AttrValueProtos.NameAttrList value) {
          if (funcBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            value_ = value;
            onChanged();
          } else {
            funcBuilder_.setMessage(value);
          }
          valueCase_ = 10;
          return this;
        }
        /**
         * <pre>
         * "func" represents a function. func.name is a function's name or
         * a primitive op's name. func.attr.first is the name of an attr
         * defined for that function. func.attr.second is the value for
         * that attr in the instantiation.
         * </pre>
         *
         * <code>.angel.NameAttrList func = 10;</code>
         */
        public Builder setFunc(
            com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder builderForValue) {
          if (funcBuilder_ == null) {
            value_ = builderForValue.build();
            onChanged();
          } else {
            funcBuilder_.setMessage(builderForValue.build());
          }
          valueCase_ = 10;
          return this;
        }
        /**
         * <pre>
         * "func" represents a function. func.name is a function's name or
         * a primitive op's name. func.attr.first is the name of an attr
         * defined for that function. func.attr.second is the value for
         * that attr in the instantiation.
         * </pre>
         *
         * <code>.angel.NameAttrList func = 10;</code>
         */
        public Builder mergeFunc(com.tencent.angel.core.graph.AttrValueProtos.NameAttrList value) {
          if (funcBuilder_ == null) {
            if (valueCase_ == 10 &&
                value_ != com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance()) {
              value_ = com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.newBuilder((com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) value_)
                  .mergeFrom(value).buildPartial();
            } else {
              value_ = value;
            }
            onChanged();
          } else {
            if (valueCase_ == 10) {
              funcBuilder_.mergeFrom(value);
            }
            funcBuilder_.setMessage(value);
          }
          valueCase_ = 10;
          return this;
        }
        /**
         * <pre>
         * "func" represents a function. func.name is a function's name or
         * a primitive op's name. func.attr.first is the name of an attr
         * defined for that function. func.attr.second is the value for
         * that attr in the instantiation.
         * </pre>
         *
         * <code>.angel.NameAttrList func = 10;</code>
         */
        public Builder clearFunc() {
          if (funcBuilder_ == null) {
            if (valueCase_ == 10) {
              valueCase_ = 0;
              value_ = null;
              onChanged();
            }
          } else {
            if (valueCase_ == 10) {
              valueCase_ = 0;
              value_ = null;
            }
            funcBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * "func" represents a function. func.name is a function's name or
         * a primitive op's name. func.attr.first is the name of an attr
         * defined for that function. func.attr.second is the value for
         * that attr in the instantiation.
         * </pre>
         *
         * <code>.angel.NameAttrList func = 10;</code>
         */
        public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder getFuncBuilder() {
          return getFuncFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * "func" represents a function. func.name is a function's name or
         * a primitive op's name. func.attr.first is the name of an attr
         * defined for that function. func.attr.second is the value for
         * that attr in the instantiation.
         * </pre>
         *
         * <code>.angel.NameAttrList func = 10;</code>
         */
        public com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder getFuncOrBuilder() {
          if ((valueCase_ == 10) && (funcBuilder_ != null)) {
            return funcBuilder_.getMessageOrBuilder();
          } else {
            if (valueCase_ == 10) {
              return (com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) value_;
            }
            return com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * "func" represents a function. func.name is a function's name or
         * a primitive op's name. func.attr.first is the name of an attr
         * defined for that function. func.attr.second is the value for
         * that attr in the instantiation.
         * </pre>
         *
         * <code>.angel.NameAttrList func = 10;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.tencent.angel.core.graph.AttrValueProtos.NameAttrList, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder, com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder> 
            getFuncFieldBuilder() {
          if (funcBuilder_ == null) {
            if (!(valueCase_ == 10)) {
              value_ = com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance();
            }
            funcBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.tencent.angel.core.graph.AttrValueProtos.NameAttrList, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder, com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder>(
                    (com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) value_,
                    getParentForChildren(),
                    isClean());
            value_ = null;
          }
          valueCase_ = 10;
          onChanged();;
          return funcBuilder_;
        }
  
        /**
         * <pre>
         * This is a placeholder only used in nodes defined inside a
         * function.  It indicates the attr value will be supplied when
         * the function is instantiated.  For example, let us suppose a
         * node "N" in function "FN". "N" has an attr "A" with value
         * placeholder = "foo". When FN is instantiated with attr "foo"
         * set to "bar", the instantiated node N's attr A will have been
         * given the value "bar".
         * </pre>
         *
         * <code>string placeholder = 9;</code>
         */
        public java.lang.String getPlaceholder() {
          java.lang.Object ref = "";
          if (valueCase_ == 9) {
            ref = value_;
          }
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (valueCase_ == 9) {
              value_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * This is a placeholder only used in nodes defined inside a
         * function.  It indicates the attr value will be supplied when
         * the function is instantiated.  For example, let us suppose a
         * node "N" in function "FN". "N" has an attr "A" with value
         * placeholder = "foo". When FN is instantiated with attr "foo"
         * set to "bar", the instantiated node N's attr A will have been
         * given the value "bar".
         * </pre>
         *
         * <code>string placeholder = 9;</code>
         */
        public com.google.protobuf.ByteString
            getPlaceholderBytes() {
          java.lang.Object ref = "";
          if (valueCase_ == 9) {
            ref = value_;
          }
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            if (valueCase_ == 9) {
              value_ = b;
            }
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * This is a placeholder only used in nodes defined inside a
         * function.  It indicates the attr value will be supplied when
         * the function is instantiated.  For example, let us suppose a
         * node "N" in function "FN". "N" has an attr "A" with value
         * placeholder = "foo". When FN is instantiated with attr "foo"
         * set to "bar", the instantiated node N's attr A will have been
         * given the value "bar".
         * </pre>
         *
         * <code>string placeholder = 9;</code>
         */
        public Builder setPlaceholder(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    valueCase_ = 9;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * This is a placeholder only used in nodes defined inside a
         * function.  It indicates the attr value will be supplied when
         * the function is instantiated.  For example, let us suppose a
         * node "N" in function "FN". "N" has an attr "A" with value
         * placeholder = "foo". When FN is instantiated with attr "foo"
         * set to "bar", the instantiated node N's attr A will have been
         * given the value "bar".
         * </pre>
         *
         * <code>string placeholder = 9;</code>
         */
        public Builder clearPlaceholder() {
          if (valueCase_ == 9) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }
        /**
         * <pre>
         * This is a placeholder only used in nodes defined inside a
         * function.  It indicates the attr value will be supplied when
         * the function is instantiated.  For example, let us suppose a
         * node "N" in function "FN". "N" has an attr "A" with value
         * placeholder = "foo". When FN is instantiated with attr "foo"
         * set to "bar", the instantiated node N's attr A will have been
         * given the value "bar".
         * </pre>
         *
         * <code>string placeholder = 9;</code>
         */
        public Builder setPlaceholderBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          valueCase_ = 9;
          value_ = value;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }
  
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:angel.AttrValue)
      }
  
      // @@protoc_insertion_point(class_scope:angel.AttrValue)
      private static final com.tencent.angel.core.graph.AttrValueProtos.AttrValue DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.tencent.angel.core.graph.AttrValueProtos.AttrValue();
      }
  
      public static com.tencent.angel.core.graph.AttrValueProtos.AttrValue getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<AttrValue>
          PARSER = new com.google.protobuf.AbstractParser<AttrValue>() {
        public AttrValue parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new AttrValue(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<AttrValue> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<AttrValue> getParserForType() {
        return PARSER;
      }
  
      public com.tencent.angel.core.graph.AttrValueProtos.AttrValue getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface NameAttrListOrBuilder extends
        // @@protoc_insertion_point(interface_extends:angel.NameAttrList)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>string name = 1;</code>
       */
      java.lang.String getName();
      /**
       * <code>string name = 1;</code>
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
       */
      int getAttrCount();
      /**
       * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
       */
      boolean containsAttr(
          java.lang.String key);
      /**
       * Use {@link #getAttrMap()} instead.
       */
      @java.lang.Deprecated
      java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue>
      getAttr();
      /**
       * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
       */
      java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue>
      getAttrMap();
      /**
       * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
       */
  
      com.tencent.angel.core.graph.AttrValueProtos.AttrValue getAttrOrDefault(
          java.lang.String key,
          com.tencent.angel.core.graph.AttrValueProtos.AttrValue defaultValue);
      /**
       * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
       */
  
      com.tencent.angel.core.graph.AttrValueProtos.AttrValue getAttrOrThrow(
          java.lang.String key);
    }
    /**
     * <pre>
     * A list of attr names and their values. The whole list is attached
     * with a string name.  E.g., MatMul[T=float].
     * </pre>
     *
     * Protobuf type {@code angel.NameAttrList}
     */
    public  static final class NameAttrList extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:angel.NameAttrList)
        NameAttrListOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use NameAttrList.newBuilder() to construct.
      private NameAttrList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private NameAttrList() {
        name_ = "";
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private NameAttrList(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
  
                name_ = s;
                break;
              }
              case 18: {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  attr_ = com.google.protobuf.MapField.newMapField(
                      AttrDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000002;
                }
                com.google.protobuf.MapEntry<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue>
                attr__ = input.readMessage(
                    AttrDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                attr_.getMutableMap().put(
                    attr__.getKey(), attr__.getValue());
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_NameAttrList_descriptor;
      }
  
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 2:
            return internalGetAttr();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_NameAttrList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.class, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder.class);
      }
  
      private int bitField0_;
      public static final int NAME_FIELD_NUMBER = 1;
      private volatile java.lang.Object name_;
      /**
       * <code>string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        }
      }
      /**
       * <code>string name = 1;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int ATTR_FIELD_NUMBER = 2;
      private static final class AttrDefaultEntryHolder {
        static final com.google.protobuf.MapEntry<
            java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> defaultEntry =
                com.google.protobuf.MapEntry
                .<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue>newDefaultInstance(
                    com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_NameAttrList_AttrEntry_descriptor, 
                    com.google.protobuf.WireFormat.FieldType.STRING,
                    "",
                    com.google.protobuf.WireFormat.FieldType.MESSAGE,
                    com.tencent.angel.core.graph.AttrValueProtos.AttrValue.getDefaultInstance());
      }
      private com.google.protobuf.MapField<
          java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> attr_;
      private com.google.protobuf.MapField<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue>
      internalGetAttr() {
        if (attr_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              AttrDefaultEntryHolder.defaultEntry);
        }
        return attr_;
      }
  
      public int getAttrCount() {
        return internalGetAttr().getMap().size();
      }
      /**
       * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
       */
  
      public boolean containsAttr(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetAttr().getMap().containsKey(key);
      }
      /**
       * Use {@link #getAttrMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> getAttr() {
        return getAttrMap();
      }
      /**
       * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
       */
  
      public java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> getAttrMap() {
        return internalGetAttr().getMap();
      }
      /**
       * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
       */
  
      public com.tencent.angel.core.graph.AttrValueProtos.AttrValue getAttrOrDefault(
          java.lang.String key,
          com.tencent.angel.core.graph.AttrValueProtos.AttrValue defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> map =
            internalGetAttr().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
       */
  
      public com.tencent.angel.core.graph.AttrValueProtos.AttrValue getAttrOrThrow(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> map =
            internalGetAttr().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
  
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getNameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
        }
        com.google.protobuf.GeneratedMessageV3
          .serializeStringMapTo(
            output,
            internalGetAttr(),
            AttrDefaultEntryHolder.defaultEntry,
            2);
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (!getNameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
        }
        for (java.util.Map.Entry<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> entry
             : internalGetAttr().getMap().entrySet()) {
          com.google.protobuf.MapEntry<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue>
          attr__ = AttrDefaultEntryHolder.defaultEntry.newBuilderForType()
              .setKey(entry.getKey())
              .setValue(entry.getValue())
              .build();
          size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(2, attr__);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.tencent.angel.core.graph.AttrValueProtos.NameAttrList)) {
          return super.equals(obj);
        }
        com.tencent.angel.core.graph.AttrValueProtos.NameAttrList other = (com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) obj;
  
        boolean result = true;
        result = result && getName()
            .equals(other.getName());
        result = result && internalGetAttr().equals(
            other.internalGetAttr());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
        if (!internalGetAttr().getMap().isEmpty()) {
          hash = (37 * hash) + ATTR_FIELD_NUMBER;
          hash = (53 * hash) + internalGetAttr().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.tencent.angel.core.graph.AttrValueProtos.NameAttrList prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * A list of attr names and their values. The whole list is attached
       * with a string name.  E.g., MatMul[T=float].
       * </pre>
       *
       * Protobuf type {@code angel.NameAttrList}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:angel.NameAttrList)
          com.tencent.angel.core.graph.AttrValueProtos.NameAttrListOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_NameAttrList_descriptor;
        }
  
        @SuppressWarnings({"rawtypes"})
        protected com.google.protobuf.MapField internalGetMapField(
            int number) {
          switch (number) {
            case 2:
              return internalGetAttr();
            default:
              throw new RuntimeException(
                  "Invalid map field number: " + number);
          }
        }
        @SuppressWarnings({"rawtypes"})
        protected com.google.protobuf.MapField internalGetMutableMapField(
            int number) {
          switch (number) {
            case 2:
              return internalGetMutableAttr();
            default:
              throw new RuntimeException(
                  "Invalid map field number: " + number);
          }
        }
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_NameAttrList_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.class, com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.Builder.class);
        }
  
        // Construct using com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          name_ = "";
  
          internalGetMutableAttr().clear();
          return this;
        }
  
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.tencent.angel.core.graph.AttrValueProtos.internal_static_angel_NameAttrList_descriptor;
        }
  
        public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList getDefaultInstanceForType() {
          return com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance();
        }
  
        public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList build() {
          com.tencent.angel.core.graph.AttrValueProtos.NameAttrList result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList buildPartial() {
          com.tencent.angel.core.graph.AttrValueProtos.NameAttrList result = new com.tencent.angel.core.graph.AttrValueProtos.NameAttrList(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          result.name_ = name_;
          result.attr_ = internalGetAttr();
          result.attr_.makeImmutable();
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
  
        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) {
            return mergeFrom((com.tencent.angel.core.graph.AttrValueProtos.NameAttrList)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.tencent.angel.core.graph.AttrValueProtos.NameAttrList other) {
          if (other == com.tencent.angel.core.graph.AttrValueProtos.NameAttrList.getDefaultInstance()) return this;
          if (!other.getName().isEmpty()) {
            name_ = other.name_;
            onChanged();
          }
          internalGetMutableAttr().mergeFrom(
              other.internalGetAttr());
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        public final boolean isInitialized() {
          return true;
        }
  
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.tencent.angel.core.graph.AttrValueProtos.NameAttrList parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.tencent.angel.core.graph.AttrValueProtos.NameAttrList) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private java.lang.Object name_ = "";
        /**
         * <code>string name = 1;</code>
         */
        public java.lang.String getName() {
          java.lang.Object ref = name_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            name_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string name = 1;</code>
         */
        public com.google.protobuf.ByteString
            getNameBytes() {
          java.lang.Object ref = name_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            name_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string name = 1;</code>
         */
        public Builder setName(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          name_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string name = 1;</code>
         */
        public Builder clearName() {
          
          name_ = getDefaultInstance().getName();
          onChanged();
          return this;
        }
        /**
         * <code>string name = 1;</code>
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          name_ = value;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.MapField<
            java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> attr_;
        private com.google.protobuf.MapField<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue>
        internalGetAttr() {
          if (attr_ == null) {
            return com.google.protobuf.MapField.emptyMapField(
                AttrDefaultEntryHolder.defaultEntry);
          }
          return attr_;
        }
        private com.google.protobuf.MapField<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue>
        internalGetMutableAttr() {
          onChanged();;
          if (attr_ == null) {
            attr_ = com.google.protobuf.MapField.newMapField(
                AttrDefaultEntryHolder.defaultEntry);
          }
          if (!attr_.isMutable()) {
            attr_ = attr_.copy();
          }
          return attr_;
        }
  
        public int getAttrCount() {
          return internalGetAttr().getMap().size();
        }
        /**
         * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
         */
  
        public boolean containsAttr(
            java.lang.String key) {
          if (key == null) { throw new java.lang.NullPointerException(); }
          return internalGetAttr().getMap().containsKey(key);
        }
        /**
         * Use {@link #getAttrMap()} instead.
         */
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> getAttr() {
          return getAttrMap();
        }
        /**
         * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
         */
  
        public java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> getAttrMap() {
          return internalGetAttr().getMap();
        }
        /**
         * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
         */
  
        public com.tencent.angel.core.graph.AttrValueProtos.AttrValue getAttrOrDefault(
            java.lang.String key,
            com.tencent.angel.core.graph.AttrValueProtos.AttrValue defaultValue) {
          if (key == null) { throw new java.lang.NullPointerException(); }
          java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> map =
              internalGetAttr().getMap();
          return map.containsKey(key) ? map.get(key) : defaultValue;
        }
        /**
         * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
         */
  
        public com.tencent.angel.core.graph.AttrValueProtos.AttrValue getAttrOrThrow(
            java.lang.String key) {
          if (key == null) { throw new java.lang.NullPointerException(); }
          java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> map =
              internalGetAttr().getMap();
          if (!map.containsKey(key)) {
            throw new java.lang.IllegalArgumentException();
          }
          return map.get(key);
        }
  
        public Builder clearAttr() {
          internalGetMutableAttr().getMutableMap()
              .clear();
          return this;
        }
        /**
         * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
         */
  
        public Builder removeAttr(
            java.lang.String key) {
          if (key == null) { throw new java.lang.NullPointerException(); }
          internalGetMutableAttr().getMutableMap()
              .remove(key);
          return this;
        }
        /**
         * Use alternate mutation accessors instead.
         */
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue>
        getMutableAttr() {
          return internalGetMutableAttr().getMutableMap();
        }
        /**
         * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
         */
        public Builder putAttr(
            java.lang.String key,
            com.tencent.angel.core.graph.AttrValueProtos.AttrValue value) {
          if (key == null) { throw new java.lang.NullPointerException(); }
          if (value == null) { throw new java.lang.NullPointerException(); }
          internalGetMutableAttr().getMutableMap()
              .put(key, value);
          return this;
        }
        /**
         * <code>map&lt;string, .angel.AttrValue&gt; attr = 2;</code>
         */
  
        public Builder putAllAttr(
            java.util.Map<java.lang.String, com.tencent.angel.core.graph.AttrValueProtos.AttrValue> values) {
          internalGetMutableAttr().getMutableMap()
              .putAll(values);
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }
  
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:angel.NameAttrList)
      }
  
      // @@protoc_insertion_point(class_scope:angel.NameAttrList)
      private static final com.tencent.angel.core.graph.AttrValueProtos.NameAttrList DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.tencent.angel.core.graph.AttrValueProtos.NameAttrList();
      }
  
      public static com.tencent.angel.core.graph.AttrValueProtos.NameAttrList getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<NameAttrList>
          PARSER = new com.google.protobuf.AbstractParser<NameAttrList>() {
        public NameAttrList parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new NameAttrList(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<NameAttrList> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<NameAttrList> getParserForType() {
        return PARSER;
      }
  
      public com.tencent.angel.core.graph.AttrValueProtos.NameAttrList getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_angel_AttrValue_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_angel_AttrValue_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_angel_AttrValue_ListValue_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_angel_AttrValue_ListValue_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_angel_NameAttrList_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_angel_NameAttrList_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_angel_NameAttrList_AttrEntry_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_angel_NameAttrList_AttrEntry_fieldAccessorTable;
  
    public static com.google.protobuf.Descriptors.FileDescriptor
        getDescriptor() {
      return descriptor;
    }
    private static  com.google.protobuf.Descriptors.FileDescriptor
        descriptor;
    static {
      java.lang.String[] descriptorData = {
        "\n\033core/graph/attr_value.proto\022\005angel\032\027co" +
        "re/graph/tensor.proto\032\036apis/common/tenso" +
        "r_shape.proto\032\027apis/common/types.proto\"\371" +
        "\003\n\tAttrValue\022\013\n\001s\030\002 \001(\014H\000\022\013\n\001i\030\003 \001(\003H\000\022\013" +
        "\n\001f\030\004 \001(\002H\000\022\013\n\001b\030\005 \001(\010H\000\022\037\n\004type\030\006 \001(\0162\017" +
        ".angel.DataTypeH\000\022(\n\005shape\030\007 \001(\0132\027.angel" +
        ".TensorShapeProtoH\000\022$\n\006tensor\030\010 \001(\0132\022.an" +
        "gel.TensorProtoH\000\022*\n\004list\030\001 \001(\0132\032.angel." +
        "AttrValue.ListValueH\000\022#\n\004func\030\n \001(\0132\023.an" +
        "gel.NameAttrListH\000\022\025\n\013placeholder\030\t \001(\tH" +
        "\000\032\325\001\n\tListValue\022\t\n\001s\030\002 \003(\014\022\r\n\001i\030\003 \003(\003B\002\020" +
        "\001\022\r\n\001f\030\004 \003(\002B\002\020\001\022\r\n\001b\030\005 \003(\010B\002\020\001\022!\n\004type\030" +
        "\006 \003(\0162\017.angel.DataTypeB\002\020\001\022&\n\005shape\030\007 \003(" +
        "\0132\027.angel.TensorShapeProto\022\"\n\006tensor\030\010 \003" +
        "(\0132\022.angel.TensorProto\022!\n\004func\030\t \003(\0132\023.a" +
        "ngel.NameAttrListB\007\n\005value\"\210\001\n\014NameAttrL" +
        "ist\022\014\n\004name\030\001 \001(\t\022+\n\004attr\030\002 \003(\0132\035.angel." +
        "NameAttrList.AttrEntry\032=\n\tAttrEntry\022\013\n\003k" +
        "ey\030\001 \001(\t\022\037\n\005value\030\002 \001(\0132\020.angel.AttrValu" +
        "e:\0028\001B1\n\034com.tencent.angel.core.graphB\017A" +
        "ttrValueProtosP\000b\006proto3"
      };
      com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
          new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
            public com.google.protobuf.ExtensionRegistry assignDescriptors(
                com.google.protobuf.Descriptors.FileDescriptor root) {
              descriptor = root;
              return null;
            }
          };
      com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.google.protobuf.Descriptors.FileDescriptor[] {
            com.tencent.angel.core.graph.TensorProtos.getDescriptor(),
            com.tencent.angel.serving.apis.common.TensorShapeProtos.getDescriptor(),
            com.tencent.angel.serving.apis.common.TypesProtos.getDescriptor(),
          }, assigner);
      internal_static_angel_AttrValue_descriptor =
        getDescriptor().getMessageTypes().get(0);
      internal_static_angel_AttrValue_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_angel_AttrValue_descriptor,
          new java.lang.String[] { "S", "I", "F", "B", "Type", "Shape", "Tensor", "List", "Func", "Placeholder", "Value", });
      internal_static_angel_AttrValue_ListValue_descriptor =
        internal_static_angel_AttrValue_descriptor.getNestedTypes().get(0);
      internal_static_angel_AttrValue_ListValue_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_angel_AttrValue_ListValue_descriptor,
          new java.lang.String[] { "S", "I", "F", "B", "Type", "Shape", "Tensor", "Func", });
      internal_static_angel_NameAttrList_descriptor =
        getDescriptor().getMessageTypes().get(1);
      internal_static_angel_NameAttrList_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_angel_NameAttrList_descriptor,
          new java.lang.String[] { "Name", "Attr", });
      internal_static_angel_NameAttrList_AttrEntry_descriptor =
        internal_static_angel_NameAttrList_descriptor.getNestedTypes().get(0);
      internal_static_angel_NameAttrList_AttrEntry_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_angel_NameAttrList_AttrEntry_descriptor,
          new java.lang.String[] { "Key", "Value", });
      com.tencent.angel.core.graph.TensorProtos.getDescriptor();
      com.tencent.angel.serving.apis.common.TensorShapeProtos.getDescriptor();
      com.tencent.angel.serving.apis.common.TypesProtos.getDescriptor();
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  