// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: graph_proto_v2.proto

#include "graph_proto_v2.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG

namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;

namespace serial_v2 {
PROTOBUF_CONSTEXPR Graph_GraphAttrEntry_DoNotUse::Graph_GraphAttrEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct Graph_GraphAttrEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR Graph_GraphAttrEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~Graph_GraphAttrEntry_DoNotUseDefaultTypeInternal() {}
  union {
    Graph_GraphAttrEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Graph_GraphAttrEntry_DoNotUseDefaultTypeInternal _Graph_GraphAttrEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR Graph::Graph(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.op_node_)*/{}
  , /*decltype(_impl_.graph_attr_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_.op_defs_)*/{}
  , /*decltype(_impl_.graph_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.subg_root_)*/nullptr
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct GraphDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GraphDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~GraphDefaultTypeInternal() {}
  union {
    Graph _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GraphDefaultTypeInternal _Graph_default_instance_;
PROTOBUF_CONSTEXPR OPNode_OpAttrEntry_DoNotUse::OPNode_OpAttrEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct OPNode_OpAttrEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OPNode_OpAttrEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OPNode_OpAttrEntry_DoNotUseDefaultTypeInternal() {}
  union {
    OPNode_OpAttrEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OPNode_OpAttrEntry_DoNotUseDefaultTypeInternal _OPNode_OpAttrEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR OPNode::OPNode(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.op_attr_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_.args_)*/{}
  , /*decltype(_impl_.op_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.op_type_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.output_tensor_)*/nullptr
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OPNodeDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OPNodeDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OPNodeDefaultTypeInternal() {}
  union {
    OPNode _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OPNodeDefaultTypeInternal _OPNode_default_instance_;
PROTOBUF_CONSTEXPR OpArg::OpArg(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.arg_ops_)*/{}
  , /*decltype(_impl_.arg_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OpArgDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OpArgDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OpArgDefaultTypeInternal() {}
  union {
    OpArg _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OpArgDefaultTypeInternal _OpArg_default_instance_;
PROTOBUF_CONSTEXPR Tensor_TensorAttrEntry_DoNotUse::Tensor_TensorAttrEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct Tensor_TensorAttrEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR Tensor_TensorAttrEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~Tensor_TensorAttrEntry_DoNotUseDefaultTypeInternal() {}
  union {
    Tensor_TensorAttrEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Tensor_TensorAttrEntry_DoNotUseDefaultTypeInternal _Tensor_TensorAttrEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR Tensor::Tensor(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.tensor_dim_)*/{}
  , /*decltype(_impl_._tensor_dim_cached_byte_size_)*/{0}
  , /*decltype(_impl_.tensor_attr_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_.tensor_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.data_type_)*/0
  , /*decltype(_impl_.tensor_bit_width_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct TensorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR TensorDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~TensorDefaultTypeInternal() {}
  union {
    Tensor _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TensorDefaultTypeInternal _Tensor_default_instance_;
PROTOBUF_CONSTEXPR SubGraph_SubgAttrEntry_DoNotUse::SubGraph_SubgAttrEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct SubGraph_SubgAttrEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubGraph_SubgAttrEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubGraph_SubgAttrEntry_DoNotUseDefaultTypeInternal() {}
  union {
    SubGraph_SubgAttrEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubGraph_SubgAttrEntry_DoNotUseDefaultTypeInternal _SubGraph_SubgAttrEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR SubGraph::SubGraph(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.op_name_)*/{}
  , /*decltype(_impl_.subg_attr_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_.subg_child_)*/{}
  , /*decltype(_impl_.subgraph_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SubGraphDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubGraphDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubGraphDefaultTypeInternal() {}
  union {
    SubGraph _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubGraphDefaultTypeInternal _SubGraph_default_instance_;
PROTOBUF_CONSTEXPR OpDef::OpDef(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.input_args_)*/{}
  , /*decltype(_impl_.attrs_)*/{}
  , /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.annotation_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OpDefDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OpDefDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OpDefDefaultTypeInternal() {}
  union {
    OpDef _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OpDefDefaultTypeInternal _OpDef_default_instance_;
PROTOBUF_CONSTEXPR AttrDef::AttrDef(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.annotation_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.default_value_)*/nullptr
  , /*decltype(_impl_.occur_type_)*/0
  , /*decltype(_impl_.list_length_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct AttrDefDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AttrDefDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AttrDefDefaultTypeInternal() {}
  union {
    AttrDef _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AttrDefDefaultTypeInternal _AttrDef_default_instance_;
PROTOBUF_CONSTEXPR OpArgDef::OpArgDef(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.annotation_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.occur_type_)*/0
  , /*decltype(_impl_.data_type_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OpArgDefDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OpArgDefDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OpArgDefDefaultTypeInternal() {}
  union {
    OpArgDef _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OpArgDefDefaultTypeInternal _OpArgDef_default_instance_;
PROTOBUF_CONSTEXPR AttrValue::AttrValue(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct AttrValueDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AttrValueDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AttrValueDefaultTypeInternal() {}
  union {
    AttrValue _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AttrValueDefaultTypeInternal _AttrValue_default_instance_;
PROTOBUF_CONSTEXPR Bytes::Bytes(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct BytesDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BytesDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~BytesDefaultTypeInternal() {}
  union {
    Bytes _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BytesDefaultTypeInternal _Bytes_default_instance_;
PROTOBUF_CONSTEXPR BoolVec::BoolVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct BoolVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BoolVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~BoolVecDefaultTypeInternal() {}
  union {
    BoolVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BoolVecDefaultTypeInternal _BoolVec_default_instance_;
PROTOBUF_CONSTEXPR Int32Vec::Int32Vec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._value_cached_byte_size_)*/{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct Int32VecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR Int32VecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~Int32VecDefaultTypeInternal() {}
  union {
    Int32Vec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Int32VecDefaultTypeInternal _Int32Vec_default_instance_;
PROTOBUF_CONSTEXPR Uint32Vec::Uint32Vec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._value_cached_byte_size_)*/{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct Uint32VecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR Uint32VecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~Uint32VecDefaultTypeInternal() {}
  union {
    Uint32Vec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Uint32VecDefaultTypeInternal _Uint32Vec_default_instance_;
PROTOBUF_CONSTEXPR Int64Vec::Int64Vec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._value_cached_byte_size_)*/{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct Int64VecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR Int64VecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~Int64VecDefaultTypeInternal() {}
  union {
    Int64Vec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Int64VecDefaultTypeInternal _Int64Vec_default_instance_;
PROTOBUF_CONSTEXPR Uint64Vec::Uint64Vec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._value_cached_byte_size_)*/{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct Uint64VecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR Uint64VecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~Uint64VecDefaultTypeInternal() {}
  union {
    Uint64Vec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Uint64VecDefaultTypeInternal _Uint64Vec_default_instance_;
PROTOBUF_CONSTEXPR FloatVec::FloatVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct FloatVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR FloatVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~FloatVecDefaultTypeInternal() {}
  union {
    FloatVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FloatVecDefaultTypeInternal _FloatVec_default_instance_;
PROTOBUF_CONSTEXPR DoubleVec::DoubleVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct DoubleVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DoubleVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~DoubleVecDefaultTypeInternal() {}
  union {
    DoubleVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DoubleVecDefaultTypeInternal _DoubleVec_default_instance_;
PROTOBUF_CONSTEXPR StringVec::StringVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct StringVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR StringVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~StringVecDefaultTypeInternal() {}
  union {
    StringVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 StringVecDefaultTypeInternal _StringVec_default_instance_;
PROTOBUF_CONSTEXPR BytesVec::BytesVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct BytesVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BytesVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~BytesVecDefaultTypeInternal() {}
  union {
    BytesVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BytesVecDefaultTypeInternal _BytesVec_default_instance_;
PROTOBUF_CONSTEXPR MapString2Int32_ValueEntry_DoNotUse::MapString2Int32_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2Int32_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Int32_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Int32_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2Int32_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Int32_ValueEntry_DoNotUseDefaultTypeInternal _MapString2Int32_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2Int32::MapString2Int32(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2Int32DefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Int32DefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Int32DefaultTypeInternal() {}
  union {
    MapString2Int32 _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Int32DefaultTypeInternal _MapString2Int32_default_instance_;
PROTOBUF_CONSTEXPR MapString2Uint32_ValueEntry_DoNotUse::MapString2Uint32_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2Uint32_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Uint32_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Uint32_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2Uint32_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Uint32_ValueEntry_DoNotUseDefaultTypeInternal _MapString2Uint32_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2Uint32::MapString2Uint32(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2Uint32DefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Uint32DefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Uint32DefaultTypeInternal() {}
  union {
    MapString2Uint32 _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Uint32DefaultTypeInternal _MapString2Uint32_default_instance_;
PROTOBUF_CONSTEXPR MapString2Int64_ValueEntry_DoNotUse::MapString2Int64_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2Int64_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Int64_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Int64_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2Int64_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Int64_ValueEntry_DoNotUseDefaultTypeInternal _MapString2Int64_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2Int64::MapString2Int64(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2Int64DefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Int64DefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Int64DefaultTypeInternal() {}
  union {
    MapString2Int64 _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Int64DefaultTypeInternal _MapString2Int64_default_instance_;
PROTOBUF_CONSTEXPR MapString2Uint64_ValueEntry_DoNotUse::MapString2Uint64_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2Uint64_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Uint64_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Uint64_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2Uint64_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Uint64_ValueEntry_DoNotUseDefaultTypeInternal _MapString2Uint64_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2Uint64::MapString2Uint64(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2Uint64DefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Uint64DefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Uint64DefaultTypeInternal() {}
  union {
    MapString2Uint64 _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Uint64DefaultTypeInternal _MapString2Uint64_default_instance_;
PROTOBUF_CONSTEXPR MapString2Bytes_ValueEntry_DoNotUse::MapString2Bytes_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2Bytes_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Bytes_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Bytes_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2Bytes_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Bytes_ValueEntry_DoNotUseDefaultTypeInternal _MapString2Bytes_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2Bytes::MapString2Bytes(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2BytesDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2BytesDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2BytesDefaultTypeInternal() {}
  union {
    MapString2Bytes _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2BytesDefaultTypeInternal _MapString2Bytes_default_instance_;
PROTOBUF_CONSTEXPR MapString2String_ValueEntry_DoNotUse::MapString2String_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2String_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2String_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2String_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2String_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2String_ValueEntry_DoNotUseDefaultTypeInternal _MapString2String_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2String::MapString2String(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2StringDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2StringDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2StringDefaultTypeInternal() {}
  union {
    MapString2String _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2StringDefaultTypeInternal _MapString2String_default_instance_;
PROTOBUF_CONSTEXPR MapString2Int32Vec_ValueEntry_DoNotUse::MapString2Int32Vec_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2Int32Vec_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Int32Vec_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Int32Vec_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2Int32Vec_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Int32Vec_ValueEntry_DoNotUseDefaultTypeInternal _MapString2Int32Vec_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2Int32Vec::MapString2Int32Vec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2Int32VecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Int32VecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Int32VecDefaultTypeInternal() {}
  union {
    MapString2Int32Vec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Int32VecDefaultTypeInternal _MapString2Int32Vec_default_instance_;
PROTOBUF_CONSTEXPR MapString2Uint32Vec_ValueEntry_DoNotUse::MapString2Uint32Vec_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2Uint32Vec_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Uint32Vec_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Uint32Vec_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2Uint32Vec_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Uint32Vec_ValueEntry_DoNotUseDefaultTypeInternal _MapString2Uint32Vec_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2Uint32Vec::MapString2Uint32Vec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2Uint32VecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Uint32VecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Uint32VecDefaultTypeInternal() {}
  union {
    MapString2Uint32Vec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Uint32VecDefaultTypeInternal _MapString2Uint32Vec_default_instance_;
PROTOBUF_CONSTEXPR MapString2Int64Vec_ValueEntry_DoNotUse::MapString2Int64Vec_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2Int64Vec_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Int64Vec_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Int64Vec_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2Int64Vec_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Int64Vec_ValueEntry_DoNotUseDefaultTypeInternal _MapString2Int64Vec_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2Int64Vec::MapString2Int64Vec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2Int64VecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Int64VecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Int64VecDefaultTypeInternal() {}
  union {
    MapString2Int64Vec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Int64VecDefaultTypeInternal _MapString2Int64Vec_default_instance_;
PROTOBUF_CONSTEXPR MapString2Uint64Vec_ValueEntry_DoNotUse::MapString2Uint64Vec_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2Uint64Vec_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Uint64Vec_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Uint64Vec_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2Uint64Vec_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Uint64Vec_ValueEntry_DoNotUseDefaultTypeInternal _MapString2Uint64Vec_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2Uint64Vec::MapString2Uint64Vec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2Uint64VecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2Uint64VecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2Uint64VecDefaultTypeInternal() {}
  union {
    MapString2Uint64Vec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2Uint64VecDefaultTypeInternal _MapString2Uint64Vec_default_instance_;
PROTOBUF_CONSTEXPR MapString2BytesVec_ValueEntry_DoNotUse::MapString2BytesVec_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2BytesVec_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2BytesVec_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2BytesVec_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2BytesVec_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2BytesVec_ValueEntry_DoNotUseDefaultTypeInternal _MapString2BytesVec_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2BytesVec::MapString2BytesVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2BytesVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2BytesVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2BytesVecDefaultTypeInternal() {}
  union {
    MapString2BytesVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2BytesVecDefaultTypeInternal _MapString2BytesVec_default_instance_;
PROTOBUF_CONSTEXPR MapString2StringVec_ValueEntry_DoNotUse::MapString2StringVec_ValueEntry_DoNotUse(
    ::_pbi::ConstantInitialized) {}
struct MapString2StringVec_ValueEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2StringVec_ValueEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2StringVec_ValueEntry_DoNotUseDefaultTypeInternal() {}
  union {
    MapString2StringVec_ValueEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2StringVec_ValueEntry_DoNotUseDefaultTypeInternal _MapString2StringVec_ValueEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR MapString2StringVec::MapString2StringVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{::_pbi::ConstantInitialized()}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct MapString2StringVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MapString2StringVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MapString2StringVecDefaultTypeInternal() {}
  union {
    MapString2StringVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapString2StringVecDefaultTypeInternal _MapString2StringVec_default_instance_;
}  // namespace serial_v2
static ::_pb::Metadata file_level_metadata_graph_5fproto_5fv2_2eproto[47];
static const ::_pb::EnumDescriptor* file_level_enum_descriptors_graph_5fproto_5fv2_2eproto[2];
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_graph_5fproto_5fv2_2eproto = nullptr;

const uint32_t TableStruct_graph_5fproto_5fv2_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  PROTOBUF_FIELD_OFFSET(::serial_v2::Graph_GraphAttrEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Graph_GraphAttrEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Graph_GraphAttrEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Graph_GraphAttrEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Graph, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Graph, _impl_.graph_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Graph, _impl_.op_node_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Graph, _impl_.subg_root_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Graph, _impl_.graph_attr_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Graph, _impl_.op_defs_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OPNode_OpAttrEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OPNode_OpAttrEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::OPNode_OpAttrEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OPNode_OpAttrEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::OPNode, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::OPNode, _impl_.op_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OPNode, _impl_.op_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OPNode, _impl_.op_attr_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OPNode, _impl_.args_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OPNode, _impl_.output_tensor_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpArg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpArg, _impl_.arg_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpArg, _impl_.arg_ops_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Tensor_TensorAttrEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Tensor_TensorAttrEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Tensor_TensorAttrEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Tensor_TensorAttrEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Tensor, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Tensor, _impl_.tensor_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Tensor, _impl_.tensor_dim_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Tensor, _impl_.data_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Tensor, _impl_.tensor_bit_width_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::Tensor, _impl_.tensor_attr_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::SubGraph_SubgAttrEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::SubGraph_SubgAttrEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::SubGraph_SubgAttrEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::SubGraph_SubgAttrEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::SubGraph, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::SubGraph, _impl_.subgraph_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::SubGraph, _impl_.op_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::SubGraph, _impl_.subg_attr_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::SubGraph, _impl_.subg_child_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpDef, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpDef, _impl_.name_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpDef, _impl_.input_args_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpDef, _impl_.attrs_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpDef, _impl_.annotation_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::AttrDef, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::AttrDef, _impl_.name_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::AttrDef, _impl_.occur_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::AttrDef, _impl_.default_value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::AttrDef, _impl_.list_length_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::AttrDef, _impl_.annotation_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpArgDef, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpArgDef, _impl_.name_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpArgDef, _impl_.occur_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpArgDef, _impl_.data_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::OpArgDef, _impl_.annotation_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::AttrValue, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::serial_v2::AttrValue, _impl_._oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  PROTOBUF_FIELD_OFFSET(::serial_v2::AttrValue, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Bytes, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Bytes, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::BoolVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::BoolVec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Int32Vec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Int32Vec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Uint32Vec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Uint32Vec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Int64Vec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Int64Vec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Uint64Vec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::Uint64Vec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::FloatVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::FloatVec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::DoubleVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::DoubleVec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::StringVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::StringVec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::BytesVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::BytesVec, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Bytes_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Bytes_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Bytes_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Bytes_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Bytes, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Bytes, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2String_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2String_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2String_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2String_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2String, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2String, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32Vec_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32Vec_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32Vec_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32Vec_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32Vec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int32Vec, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32Vec_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32Vec_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32Vec_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32Vec_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32Vec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint32Vec, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64Vec_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64Vec_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64Vec_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64Vec_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64Vec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Int64Vec, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64Vec_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64Vec_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64Vec_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64Vec_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64Vec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2Uint64Vec, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2BytesVec_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2BytesVec_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2BytesVec_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2BytesVec_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2BytesVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2BytesVec, _impl_.value_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2StringVec_ValueEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2StringVec_ValueEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2StringVec_ValueEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2StringVec_ValueEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2StringVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v2::MapString2StringVec, _impl_.value_),
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 8, -1, sizeof(::serial_v2::Graph_GraphAttrEntry_DoNotUse)},
  { 10, -1, -1, sizeof(::serial_v2::Graph)},
  { 21, 29, -1, sizeof(::serial_v2::OPNode_OpAttrEntry_DoNotUse)},
  { 31, -1, -1, sizeof(::serial_v2::OPNode)},
  { 42, -1, -1, sizeof(::serial_v2::OpArg)},
  { 50, 58, -1, sizeof(::serial_v2::Tensor_TensorAttrEntry_DoNotUse)},
  { 60, -1, -1, sizeof(::serial_v2::Tensor)},
  { 71, 79, -1, sizeof(::serial_v2::SubGraph_SubgAttrEntry_DoNotUse)},
  { 81, -1, -1, sizeof(::serial_v2::SubGraph)},
  { 91, -1, -1, sizeof(::serial_v2::OpDef)},
  { 101, -1, -1, sizeof(::serial_v2::AttrDef)},
  { 112, -1, -1, sizeof(::serial_v2::OpArgDef)},
  { 122, -1, -1, sizeof(::serial_v2::AttrValue)},
  { 158, -1, -1, sizeof(::serial_v2::Bytes)},
  { 165, -1, -1, sizeof(::serial_v2::BoolVec)},
  { 172, -1, -1, sizeof(::serial_v2::Int32Vec)},
  { 179, -1, -1, sizeof(::serial_v2::Uint32Vec)},
  { 186, -1, -1, sizeof(::serial_v2::Int64Vec)},
  { 193, -1, -1, sizeof(::serial_v2::Uint64Vec)},
  { 200, -1, -1, sizeof(::serial_v2::FloatVec)},
  { 207, -1, -1, sizeof(::serial_v2::DoubleVec)},
  { 214, -1, -1, sizeof(::serial_v2::StringVec)},
  { 221, -1, -1, sizeof(::serial_v2::BytesVec)},
  { 228, 236, -1, sizeof(::serial_v2::MapString2Int32_ValueEntry_DoNotUse)},
  { 238, -1, -1, sizeof(::serial_v2::MapString2Int32)},
  { 245, 253, -1, sizeof(::serial_v2::MapString2Uint32_ValueEntry_DoNotUse)},
  { 255, -1, -1, sizeof(::serial_v2::MapString2Uint32)},
  { 262, 270, -1, sizeof(::serial_v2::MapString2Int64_ValueEntry_DoNotUse)},
  { 272, -1, -1, sizeof(::serial_v2::MapString2Int64)},
  { 279, 287, -1, sizeof(::serial_v2::MapString2Uint64_ValueEntry_DoNotUse)},
  { 289, -1, -1, sizeof(::serial_v2::MapString2Uint64)},
  { 296, 304, -1, sizeof(::serial_v2::MapString2Bytes_ValueEntry_DoNotUse)},
  { 306, -1, -1, sizeof(::serial_v2::MapString2Bytes)},
  { 313, 321, -1, sizeof(::serial_v2::MapString2String_ValueEntry_DoNotUse)},
  { 323, -1, -1, sizeof(::serial_v2::MapString2String)},
  { 330, 338, -1, sizeof(::serial_v2::MapString2Int32Vec_ValueEntry_DoNotUse)},
  { 340, -1, -1, sizeof(::serial_v2::MapString2Int32Vec)},
  { 347, 355, -1, sizeof(::serial_v2::MapString2Uint32Vec_ValueEntry_DoNotUse)},
  { 357, -1, -1, sizeof(::serial_v2::MapString2Uint32Vec)},
  { 364, 372, -1, sizeof(::serial_v2::MapString2Int64Vec_ValueEntry_DoNotUse)},
  { 374, -1, -1, sizeof(::serial_v2::MapString2Int64Vec)},
  { 381, 389, -1, sizeof(::serial_v2::MapString2Uint64Vec_ValueEntry_DoNotUse)},
  { 391, -1, -1, sizeof(::serial_v2::MapString2Uint64Vec)},
  { 398, 406, -1, sizeof(::serial_v2::MapString2BytesVec_ValueEntry_DoNotUse)},
  { 408, -1, -1, sizeof(::serial_v2::MapString2BytesVec)},
  { 415, 423, -1, sizeof(::serial_v2::MapString2StringVec_ValueEntry_DoNotUse)},
  { 425, -1, -1, sizeof(::serial_v2::MapString2StringVec)},
};

static const ::_pb::Message* const file_default_instances[] = {
  &::serial_v2::_Graph_GraphAttrEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_Graph_default_instance_._instance,
  &::serial_v2::_OPNode_OpAttrEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_OPNode_default_instance_._instance,
  &::serial_v2::_OpArg_default_instance_._instance,
  &::serial_v2::_Tensor_TensorAttrEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_Tensor_default_instance_._instance,
  &::serial_v2::_SubGraph_SubgAttrEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_SubGraph_default_instance_._instance,
  &::serial_v2::_OpDef_default_instance_._instance,
  &::serial_v2::_AttrDef_default_instance_._instance,
  &::serial_v2::_OpArgDef_default_instance_._instance,
  &::serial_v2::_AttrValue_default_instance_._instance,
  &::serial_v2::_Bytes_default_instance_._instance,
  &::serial_v2::_BoolVec_default_instance_._instance,
  &::serial_v2::_Int32Vec_default_instance_._instance,
  &::serial_v2::_Uint32Vec_default_instance_._instance,
  &::serial_v2::_Int64Vec_default_instance_._instance,
  &::serial_v2::_Uint64Vec_default_instance_._instance,
  &::serial_v2::_FloatVec_default_instance_._instance,
  &::serial_v2::_DoubleVec_default_instance_._instance,
  &::serial_v2::_StringVec_default_instance_._instance,
  &::serial_v2::_BytesVec_default_instance_._instance,
  &::serial_v2::_MapString2Int32_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2Int32_default_instance_._instance,
  &::serial_v2::_MapString2Uint32_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2Uint32_default_instance_._instance,
  &::serial_v2::_MapString2Int64_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2Int64_default_instance_._instance,
  &::serial_v2::_MapString2Uint64_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2Uint64_default_instance_._instance,
  &::serial_v2::_MapString2Bytes_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2Bytes_default_instance_._instance,
  &::serial_v2::_MapString2String_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2String_default_instance_._instance,
  &::serial_v2::_MapString2Int32Vec_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2Int32Vec_default_instance_._instance,
  &::serial_v2::_MapString2Uint32Vec_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2Uint32Vec_default_instance_._instance,
  &::serial_v2::_MapString2Int64Vec_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2Int64Vec_default_instance_._instance,
  &::serial_v2::_MapString2Uint64Vec_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2Uint64Vec_default_instance_._instance,
  &::serial_v2::_MapString2BytesVec_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2BytesVec_default_instance_._instance,
  &::serial_v2::_MapString2StringVec_ValueEntry_DoNotUse_default_instance_._instance,
  &::serial_v2::_MapString2StringVec_default_instance_._instance,
};

const char descriptor_table_protodef_graph_5fproto_5fv2_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\024graph_proto_v2.proto\022\tserial_v2\"\207\002\n\005Gr"
  "aph\022\022\n\ngraph_name\030\001 \001(\t\022\"\n\007op_node\030\005 \003(\013"
  "2\021.serial_v2.OPNode\022&\n\tsubg_root\030\n \001(\0132\023"
  ".serial_v2.SubGraph\0223\n\ngraph_attr\030\013 \003(\0132"
  "\037.serial_v2.Graph.GraphAttrEntry\022!\n\007op_d"
  "efs\030e \003(\0132\020.serial_v2.OpDef\032F\n\016GraphAttr"
  "Entry\022\013\n\003key\030\001 \001(\t\022#\n\005value\030\002 \001(\0132\024.seri"
  "al_v2.AttrValue:\0028\001\"\351\001\n\006OPNode\022\017\n\007op_nam"
  "e\030\001 \001(\t\022\017\n\007op_type\030\002 \001(\t\022.\n\007op_attr\030\003 \003("
  "\0132\035.serial_v2.OPNode.OpAttrEntry\022\036\n\004args"
  "\030\004 \003(\0132\020.serial_v2.OpArg\022(\n\routput_tenso"
  "r\030\005 \001(\0132\021.serial_v2.Tensor\032C\n\013OpAttrEntr"
  "y\022\013\n\003key\030\001 \001(\t\022#\n\005value\030\002 \001(\0132\024.serial_v"
  "2.AttrValue:\0028\001\"*\n\005OpArg\022\020\n\010arg_name\030\001 \001"
  "(\t\022\017\n\007arg_ops\030\002 \003(\t\"\337\001\n\006Tensor\022\023\n\013tensor"
  "_name\030\001 \001(\t\022\022\n\ntensor_dim\030\002 \003(\r\022\021\n\tdata_"
  "type\030\005 \001(\005\022\030\n\020tensor_bit_width\030\006 \001(\005\0226\n\013"
  "tensor_attr\030\n \003(\0132!.serial_v2.Tensor.Ten"
  "sorAttrEntry\032G\n\017TensorAttrEntry\022\013\n\003key\030\001"
  " \001(\t\022#\n\005value\030\002 \001(\0132\024.serial_v2.AttrValu"
  "e:\0028\001\"\330\001\n\010SubGraph\022\025\n\rsubgraph_name\030\001 \001("
  "\t\022\017\n\007op_name\030\003 \003(\t\0224\n\tsubg_attr\030\005 \003(\0132!."
  "serial_v2.SubGraph.SubgAttrEntry\022\'\n\nsubg"
  "_child\030\n \003(\0132\023.serial_v2.SubGraph\032E\n\rSub"
  "gAttrEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value\030\002 \001(\0132\024"
  ".serial_v2.AttrValue:\0028\001\"u\n\005OpDef\022\014\n\004nam"
  "e\030\001 \001(\t\022\'\n\ninput_args\030\002 \003(\0132\023.serial_v2."
  "OpArgDef\022!\n\005attrs\030\003 \003(\0132\022.serial_v2.Attr"
  "Def\022\022\n\nannotation\030\004 \001(\t\"\310\001\n\007AttrDef\022\014\n\004n"
  "ame\030\001 \001(\t\0220\n\noccur_type\030\003 \001(\0162\034.serial_v"
  "2.AttrDef.OccurType\022+\n\rdefault_value\030\004 \001"
  "(\0132\024.serial_v2.AttrValue\022\023\n\013list_length\030"
  "\006 \001(\005\022\022\n\nannotation\030\007 \001(\t\"\'\n\tOccurType\022\014"
  "\n\010REQUIRED\020\000\022\014\n\010OPTIONAL\020\001\"\304\001\n\010OpArgDef\022"
  "\014\n\004name\030\001 \001(\t\0221\n\noccur_type\030\002 \001(\0162\035.seri"
  "al_v2.OpArgDef.OccurType\022\021\n\tdata_type\030\003 "
  "\001(\005\022\022\n\nannotation\030\004 \001(\t\"P\n\tOccurType\022\014\n\010"
  "REQUIRED\020\000\022\014\n\010OPTIONAL\020\001\022\014\n\010REPEATED\020\002\022\031"
  "\n\025REQUIRED_AND_REPEATED\020\003\"\235\013\n\tAttrValue\022"
  "\024\n\nbool_value\030\004 \001(\010H\000\022\025\n\013int32_value\030\005 \001"
  "(\005H\000\022\026\n\014uint32_value\030\006 \001(\rH\000\022\025\n\013int64_va"
  "lue\030\007 \001(\003H\000\022\026\n\014uint64_value\030\010 \001(\004H\000\022\025\n\013f"
  "loat_value\030\t \001(\002H\000\022\026\n\014double_value\030\n \001(\001"
  "H\000\022\026\n\014string_value\030\013 \001(\tH\000\022\'\n\013bytes_valu"
  "e\030\014 \001(\0132\020.serial_v2.BytesH\000\022,\n\016bool_vec_"
  "value\030\r \001(\0132\022.serial_v2.BoolVecH\000\022.\n\017int"
  "32_vec_value\030\016 \001(\0132\023.serial_v2.Int32VecH"
  "\000\0220\n\020uint32_vec_value\030\017 \001(\0132\024.serial_v2."
  "Uint32VecH\000\022.\n\017int64_vec_value\030\020 \001(\0132\023.s"
  "erial_v2.Int64VecH\000\0220\n\020uint64_vec_value\030"
  "\021 \001(\0132\024.serial_v2.Uint64VecH\000\022.\n\017float_v"
  "ec_value\030\022 \001(\0132\023.serial_v2.FloatVecH\000\0220\n"
  "\020double_vec_value\030\023 \001(\0132\024.serial_v2.Doub"
  "leVecH\000\0220\n\020string_vec_value\030\024 \001(\0132\024.seri"
  "al_v2.StringVecH\000\022.\n\017bytes_vec_value\030\025 \001"
  "(\0132\023.serial_v2.BytesVecH\000\022>\n\030map_string_"
  "2_int32_value\030\026 \001(\0132\032.serial_v2.MapStrin"
  "g2Int32H\000\022@\n\031map_string_2_uint32_value\030\027"
  " \001(\0132\033.serial_v2.MapString2Uint32H\000\022>\n\030m"
  "ap_string_2_int64_value\030\030 \001(\0132\032.serial_v"
  "2.MapString2Int64H\000\022@\n\031map_string_2_uint"
  "64_value\030\031 \001(\0132\033.serial_v2.MapString2Uin"
  "t64H\000\022@\n\031map_string_2_string_value\030\032 \001(\013"
  "2\033.serial_v2.MapString2StringH\000\022>\n\030map_s"
  "tring_2_bytes_value\030\033 \001(\0132\032.serial_v2.Ma"
  "pString2BytesH\000\022E\n\034map_string_2_int32_ve"
  "c_value\030\034 \001(\0132\035.serial_v2.MapString2Int3"
  "2VecH\000\022G\n\035map_string_2_uint32_vec_value\030"
  "\035 \001(\0132\036.serial_v2.MapString2Uint32VecH\000\022"
  "E\n\034map_string_2_int64_vec_value\030\036 \001(\0132\035."
  "serial_v2.MapString2Int64VecH\000\022G\n\035map_st"
  "ring_2_uint64_vec_value\030\037 \001(\0132\036.serial_v"
  "2.MapString2Uint64VecH\000\022G\n\035map_string_2_"
  "string_vec_value\030  \001(\0132\036.serial_v2.MapSt"
  "ring2StringVecH\000B\007\n\005value\"\026\n\005Bytes\022\r\n\005va"
  "lue\030\001 \001(\014\"\030\n\007BoolVec\022\r\n\005value\030\001 \003(\010\"\031\n\010I"
  "nt32Vec\022\r\n\005value\030\001 \003(\005\"\032\n\tUint32Vec\022\r\n\005v"
  "alue\030\001 \003(\r\"\031\n\010Int64Vec\022\r\n\005value\030\001 \003(\003\"\032\n"
  "\tUint64Vec\022\r\n\005value\030\001 \003(\004\"\031\n\010FloatVec\022\r\n"
  "\005value\030\001 \003(\002\"\032\n\tDoubleVec\022\r\n\005value\030\001 \003(\001"
  "\"\032\n\tStringVec\022\r\n\005value\030\001 \003(\t\"+\n\010BytesVec"
  "\022\037\n\005value\030\001 \003(\0132\020.serial_v2.Bytes\"u\n\017Map"
  "String2Int32\0224\n\005value\030\001 \003(\0132%.serial_v2."
  "MapString2Int32.ValueEntry\032,\n\nValueEntry"
  "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\"w\n\020MapS"
  "tring2Uint32\0225\n\005value\030\001 \003(\0132&.serial_v2."
  "MapString2Uint32.ValueEntry\032,\n\nValueEntr"
  "y\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\r:\0028\001\"u\n\017Map"
  "String2Int64\0224\n\005value\030\001 \003(\0132%.serial_v2."
  "MapString2Int64.ValueEntry\032,\n\nValueEntry"
  "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\003:\0028\001\"w\n\020MapS"
  "tring2Uint64\0225\n\005value\030\001 \003(\0132&.serial_v2."
  "MapString2Uint64.ValueEntry\032,\n\nValueEntr"
  "y\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\004:\0028\001\"\207\001\n\017Ma"
  "pString2Bytes\0224\n\005value\030\001 \003(\0132%.serial_v2"
  ".MapString2Bytes.ValueEntry\032>\n\nValueEntr"
  "y\022\013\n\003key\030\001 \001(\t\022\037\n\005value\030\002 \001(\0132\020.serial_v"
  "2.Bytes:\0028\001\"w\n\020MapString2String\0225\n\005value"
  "\030\001 \003(\0132&.serial_v2.MapString2String.Valu"
  "eEntry\032,\n\nValueEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005val"
  "ue\030\002 \001(\t:\0028\001\"\220\001\n\022MapString2Int32Vec\0227\n\005v"
  "alue\030\001 \003(\0132(.serial_v2.MapString2Int32Ve"
  "c.ValueEntry\032A\n\nValueEntry\022\013\n\003key\030\001 \001(\t\022"
  "\"\n\005value\030\002 \001(\0132\023.serial_v2.Int32Vec:\0028\001\""
  "\223\001\n\023MapString2Uint32Vec\0228\n\005value\030\001 \003(\0132)"
  ".serial_v2.MapString2Uint32Vec.ValueEntr"
  "y\032B\n\nValueEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value\030\002 "
  "\001(\0132\024.serial_v2.Uint32Vec:\0028\001\"\220\001\n\022MapStr"
  "ing2Int64Vec\0227\n\005value\030\001 \003(\0132(.serial_v2."
  "MapString2Int64Vec.ValueEntry\032A\n\nValueEn"
  "try\022\013\n\003key\030\001 \001(\t\022\"\n\005value\030\002 \001(\0132\023.serial"
  "_v2.Int64Vec:\0028\001\"\223\001\n\023MapString2Uint64Vec"
  "\0228\n\005value\030\001 \003(\0132).serial_v2.MapString2Ui"
  "nt64Vec.ValueEntry\032B\n\nValueEntry\022\013\n\003key\030"
  "\001 \001(\t\022#\n\005value\030\002 \001(\0132\024.serial_v2.Uint64V"
  "ec:\0028\001\"\220\001\n\022MapString2BytesVec\0227\n\005value\030\001"
  " \003(\0132(.serial_v2.MapString2BytesVec.Valu"
  "eEntry\032A\n\nValueEntry\022\013\n\003key\030\001 \001(\t\022\"\n\005val"
  "ue\030\002 \001(\0132\023.serial_v2.BytesVec:\0028\001\"\223\001\n\023Ma"
  "pString2StringVec\0228\n\005value\030\001 \003(\0132).seria"
  "l_v2.MapString2StringVec.ValueEntry\032B\n\nV"
  "alueEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value\030\002 \001(\0132\024."
  "serial_v2.StringVec:\0028\001b\006proto3"
  ;
static ::_pbi::once_flag descriptor_table_graph_5fproto_5fv2_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_graph_5fproto_5fv2_2eproto = {
    false, false, 4911, descriptor_table_protodef_graph_5fproto_5fv2_2eproto,
    "graph_proto_v2.proto",
    &descriptor_table_graph_5fproto_5fv2_2eproto_once, nullptr, 0, 47,
    schemas, file_default_instances, TableStruct_graph_5fproto_5fv2_2eproto::offsets,
    file_level_metadata_graph_5fproto_5fv2_2eproto, file_level_enum_descriptors_graph_5fproto_5fv2_2eproto,
    file_level_service_descriptors_graph_5fproto_5fv2_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_graph_5fproto_5fv2_2eproto_getter() {
  return &descriptor_table_graph_5fproto_5fv2_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_graph_5fproto_5fv2_2eproto(&descriptor_table_graph_5fproto_5fv2_2eproto);
namespace serial_v2 {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AttrDef_OccurType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_graph_5fproto_5fv2_2eproto);
  return file_level_enum_descriptors_graph_5fproto_5fv2_2eproto[0];
}
bool AttrDef_OccurType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr AttrDef_OccurType AttrDef::REQUIRED;
constexpr AttrDef_OccurType AttrDef::OPTIONAL;
constexpr AttrDef_OccurType AttrDef::OccurType_MIN;
constexpr AttrDef_OccurType AttrDef::OccurType_MAX;
constexpr int AttrDef::OccurType_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OpArgDef_OccurType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_graph_5fproto_5fv2_2eproto);
  return file_level_enum_descriptors_graph_5fproto_5fv2_2eproto[1];
}
bool OpArgDef_OccurType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr OpArgDef_OccurType OpArgDef::REQUIRED;
constexpr OpArgDef_OccurType OpArgDef::OPTIONAL;
constexpr OpArgDef_OccurType OpArgDef::REPEATED;
constexpr OpArgDef_OccurType OpArgDef::REQUIRED_AND_REPEATED;
constexpr OpArgDef_OccurType OpArgDef::OccurType_MIN;
constexpr OpArgDef_OccurType OpArgDef::OccurType_MAX;
constexpr int OpArgDef::OccurType_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))

// ===================================================================

Graph_GraphAttrEntry_DoNotUse::Graph_GraphAttrEntry_DoNotUse() {}
Graph_GraphAttrEntry_DoNotUse::Graph_GraphAttrEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void Graph_GraphAttrEntry_DoNotUse::MergeFrom(const Graph_GraphAttrEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata Graph_GraphAttrEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[0]);
}

// ===================================================================

class Graph::_Internal {
 public:
  static const ::serial_v2::SubGraph& subg_root(const Graph* msg);
};

const ::serial_v2::SubGraph&
Graph::_Internal::subg_root(const Graph* msg) {
  return *msg->_impl_.subg_root_;
}
Graph::Graph(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &Graph::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.Graph)
}
Graph::Graph(const Graph& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Graph* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.op_node_){from._impl_.op_node_}
    , /*decltype(_impl_.graph_attr_)*/{}
    , decltype(_impl_.op_defs_){from._impl_.op_defs_}
    , decltype(_impl_.graph_name_){}
    , decltype(_impl_.subg_root_){nullptr}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.graph_attr_.MergeFrom(from._impl_.graph_attr_);
  _impl_.graph_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.graph_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_graph_name().empty()) {
    _this->_impl_.graph_name_.Set(from._internal_graph_name(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_subg_root()) {
    _this->_impl_.subg_root_ = new ::serial_v2::SubGraph(*from._impl_.subg_root_);
  }
  // @@protoc_insertion_point(copy_constructor:serial_v2.Graph)
}

inline void Graph::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.op_node_){arena}
    , /*decltype(_impl_.graph_attr_)*/{::_pbi::ArenaInitialized(), arena}
    , decltype(_impl_.op_defs_){arena}
    , decltype(_impl_.graph_name_){}
    , decltype(_impl_.subg_root_){nullptr}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.graph_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.graph_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

Graph::~Graph() {
  // @@protoc_insertion_point(destructor:serial_v2.Graph)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void Graph::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.op_node_.~RepeatedPtrField();
  _impl_.graph_attr_.Destruct();
  _impl_.graph_attr_.~MapField();
  _impl_.op_defs_.~RepeatedPtrField();
  _impl_.graph_name_.Destroy();
  if (this != internal_default_instance()) delete _impl_.subg_root_;
}

void Graph::ArenaDtor(void* object) {
  Graph* _this = reinterpret_cast< Graph* >(object);
  _this->_impl_.graph_attr_.Destruct();
}
void Graph::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Graph::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.Graph)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.op_node_.Clear();
  _impl_.graph_attr_.Clear();
  _impl_.op_defs_.Clear();
  _impl_.graph_name_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.subg_root_ != nullptr) {
    delete _impl_.subg_root_;
  }
  _impl_.subg_root_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Graph::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string graph_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_graph_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.Graph.graph_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v2.OPNode op_node = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_op_node(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.SubGraph subg_root = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_subg_root(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // map<string, .serial_v2.AttrValue> graph_attr = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.graph_attr_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<90>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v2.OpDef op_defs = 101;
      case 101:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr -= 2;
          do {
            ptr += 2;
            ptr = ctx->ParseMessage(_internal_add_op_defs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<810>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Graph::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.Graph)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string graph_name = 1;
  if (!this->_internal_graph_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_graph_name().data(), static_cast<int>(this->_internal_graph_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.Graph.graph_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_graph_name(), target);
  }

  // repeated .serial_v2.OPNode op_node = 5;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_op_node_size()); i < n; i++) {
    const auto& repfield = this->_internal_op_node(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(5, repfield, repfield.GetCachedSize(), target, stream);
  }

  // .serial_v2.SubGraph subg_root = 10;
  if (this->_internal_has_subg_root()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(10, _Internal::subg_root(this),
        _Internal::subg_root(this).GetCachedSize(), target, stream);
  }

  // map<string, .serial_v2.AttrValue> graph_attr = 11;
  if (!this->_internal_graph_attr().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::AttrValue>;
    using WireHelper = Graph_GraphAttrEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_graph_attr();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.Graph.GraphAttrEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(11, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(11, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  // repeated .serial_v2.OpDef op_defs = 101;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_op_defs_size()); i < n; i++) {
    const auto& repfield = this->_internal_op_defs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(101, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.Graph)
  return target;
}

size_t Graph::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.Graph)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v2.OPNode op_node = 5;
  total_size += 1UL * this->_internal_op_node_size();
  for (const auto& msg : this->_impl_.op_node_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // map<string, .serial_v2.AttrValue> graph_attr = 11;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_graph_attr_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::AttrValue >::const_iterator
      it = this->_internal_graph_attr().begin();
      it != this->_internal_graph_attr().end(); ++it) {
    total_size += Graph_GraphAttrEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  // repeated .serial_v2.OpDef op_defs = 101;
  total_size += 2UL * this->_internal_op_defs_size();
  for (const auto& msg : this->_impl_.op_defs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string graph_name = 1;
  if (!this->_internal_graph_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_graph_name());
  }

  // .serial_v2.SubGraph subg_root = 10;
  if (this->_internal_has_subg_root()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.subg_root_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Graph::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Graph::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Graph::GetClassData() const { return &_class_data_; }


void Graph::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Graph*>(&to_msg);
  auto& from = static_cast<const Graph&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.Graph)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.op_node_.MergeFrom(from._impl_.op_node_);
  _this->_impl_.graph_attr_.MergeFrom(from._impl_.graph_attr_);
  _this->_impl_.op_defs_.MergeFrom(from._impl_.op_defs_);
  if (!from._internal_graph_name().empty()) {
    _this->_internal_set_graph_name(from._internal_graph_name());
  }
  if (from._internal_has_subg_root()) {
    _this->_internal_mutable_subg_root()->::serial_v2::SubGraph::MergeFrom(
        from._internal_subg_root());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Graph::CopyFrom(const Graph& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.Graph)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Graph::IsInitialized() const {
  return true;
}

void Graph::InternalSwap(Graph* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.op_node_.InternalSwap(&other->_impl_.op_node_);
  _impl_.graph_attr_.InternalSwap(&other->_impl_.graph_attr_);
  _impl_.op_defs_.InternalSwap(&other->_impl_.op_defs_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.graph_name_, lhs_arena,
      &other->_impl_.graph_name_, rhs_arena
  );
  swap(_impl_.subg_root_, other->_impl_.subg_root_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Graph::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[1]);
}

// ===================================================================

OPNode_OpAttrEntry_DoNotUse::OPNode_OpAttrEntry_DoNotUse() {}
OPNode_OpAttrEntry_DoNotUse::OPNode_OpAttrEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void OPNode_OpAttrEntry_DoNotUse::MergeFrom(const OPNode_OpAttrEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata OPNode_OpAttrEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[2]);
}

// ===================================================================

class OPNode::_Internal {
 public:
  static const ::serial_v2::Tensor& output_tensor(const OPNode* msg);
};

const ::serial_v2::Tensor&
OPNode::_Internal::output_tensor(const OPNode* msg) {
  return *msg->_impl_.output_tensor_;
}
OPNode::OPNode(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &OPNode::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.OPNode)
}
OPNode::OPNode(const OPNode& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OPNode* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.op_attr_)*/{}
    , decltype(_impl_.args_){from._impl_.args_}
    , decltype(_impl_.op_name_){}
    , decltype(_impl_.op_type_){}
    , decltype(_impl_.output_tensor_){nullptr}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.op_attr_.MergeFrom(from._impl_.op_attr_);
  _impl_.op_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.op_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_op_name().empty()) {
    _this->_impl_.op_name_.Set(from._internal_op_name(), 
      _this->GetArenaForAllocation());
  }
  _impl_.op_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.op_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_op_type().empty()) {
    _this->_impl_.op_type_.Set(from._internal_op_type(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_output_tensor()) {
    _this->_impl_.output_tensor_ = new ::serial_v2::Tensor(*from._impl_.output_tensor_);
  }
  // @@protoc_insertion_point(copy_constructor:serial_v2.OPNode)
}

inline void OPNode::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.op_attr_)*/{::_pbi::ArenaInitialized(), arena}
    , decltype(_impl_.args_){arena}
    , decltype(_impl_.op_name_){}
    , decltype(_impl_.op_type_){}
    , decltype(_impl_.output_tensor_){nullptr}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.op_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.op_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.op_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.op_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OPNode::~OPNode() {
  // @@protoc_insertion_point(destructor:serial_v2.OPNode)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void OPNode::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.op_attr_.Destruct();
  _impl_.op_attr_.~MapField();
  _impl_.args_.~RepeatedPtrField();
  _impl_.op_name_.Destroy();
  _impl_.op_type_.Destroy();
  if (this != internal_default_instance()) delete _impl_.output_tensor_;
}

void OPNode::ArenaDtor(void* object) {
  OPNode* _this = reinterpret_cast< OPNode* >(object);
  _this->_impl_.op_attr_.Destruct();
}
void OPNode::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OPNode::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.OPNode)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.op_attr_.Clear();
  _impl_.args_.Clear();
  _impl_.op_name_.ClearToEmpty();
  _impl_.op_type_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.output_tensor_ != nullptr) {
    delete _impl_.output_tensor_;
  }
  _impl_.output_tensor_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OPNode::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string op_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_op_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.OPNode.op_name"));
        } else
          goto handle_unusual;
        continue;
      // string op_type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_op_type();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.OPNode.op_type"));
        } else
          goto handle_unusual;
        continue;
      // map<string, .serial_v2.AttrValue> op_attr = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.op_attr_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v2.OpArg args = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_args(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.Tensor output_tensor = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_output_tensor(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OPNode::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.OPNode)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string op_name = 1;
  if (!this->_internal_op_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_op_name().data(), static_cast<int>(this->_internal_op_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.OPNode.op_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_op_name(), target);
  }

  // string op_type = 2;
  if (!this->_internal_op_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_op_type().data(), static_cast<int>(this->_internal_op_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.OPNode.op_type");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_op_type(), target);
  }

  // map<string, .serial_v2.AttrValue> op_attr = 3;
  if (!this->_internal_op_attr().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::AttrValue>;
    using WireHelper = OPNode_OpAttrEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_op_attr();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.OPNode.OpAttrEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(3, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(3, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  // repeated .serial_v2.OpArg args = 4;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_args_size()); i < n; i++) {
    const auto& repfield = this->_internal_args(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(4, repfield, repfield.GetCachedSize(), target, stream);
  }

  // .serial_v2.Tensor output_tensor = 5;
  if (this->_internal_has_output_tensor()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(5, _Internal::output_tensor(this),
        _Internal::output_tensor(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.OPNode)
  return target;
}

size_t OPNode::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.OPNode)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .serial_v2.AttrValue> op_attr = 3;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_op_attr_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::AttrValue >::const_iterator
      it = this->_internal_op_attr().begin();
      it != this->_internal_op_attr().end(); ++it) {
    total_size += OPNode_OpAttrEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  // repeated .serial_v2.OpArg args = 4;
  total_size += 1UL * this->_internal_args_size();
  for (const auto& msg : this->_impl_.args_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string op_name = 1;
  if (!this->_internal_op_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_op_name());
  }

  // string op_type = 2;
  if (!this->_internal_op_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_op_type());
  }

  // .serial_v2.Tensor output_tensor = 5;
  if (this->_internal_has_output_tensor()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.output_tensor_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OPNode::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OPNode::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OPNode::GetClassData() const { return &_class_data_; }


void OPNode::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OPNode*>(&to_msg);
  auto& from = static_cast<const OPNode&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.OPNode)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.op_attr_.MergeFrom(from._impl_.op_attr_);
  _this->_impl_.args_.MergeFrom(from._impl_.args_);
  if (!from._internal_op_name().empty()) {
    _this->_internal_set_op_name(from._internal_op_name());
  }
  if (!from._internal_op_type().empty()) {
    _this->_internal_set_op_type(from._internal_op_type());
  }
  if (from._internal_has_output_tensor()) {
    _this->_internal_mutable_output_tensor()->::serial_v2::Tensor::MergeFrom(
        from._internal_output_tensor());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OPNode::CopyFrom(const OPNode& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.OPNode)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OPNode::IsInitialized() const {
  return true;
}

void OPNode::InternalSwap(OPNode* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.op_attr_.InternalSwap(&other->_impl_.op_attr_);
  _impl_.args_.InternalSwap(&other->_impl_.args_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.op_name_, lhs_arena,
      &other->_impl_.op_name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.op_type_, lhs_arena,
      &other->_impl_.op_type_, rhs_arena
  );
  swap(_impl_.output_tensor_, other->_impl_.output_tensor_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OPNode::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[3]);
}

// ===================================================================

class OpArg::_Internal {
 public:
};

OpArg::OpArg(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.OpArg)
}
OpArg::OpArg(const OpArg& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OpArg* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.arg_ops_){from._impl_.arg_ops_}
    , decltype(_impl_.arg_name_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.arg_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.arg_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_arg_name().empty()) {
    _this->_impl_.arg_name_.Set(from._internal_arg_name(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:serial_v2.OpArg)
}

inline void OpArg::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.arg_ops_){arena}
    , decltype(_impl_.arg_name_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.arg_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.arg_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OpArg::~OpArg() {
  // @@protoc_insertion_point(destructor:serial_v2.OpArg)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OpArg::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.arg_ops_.~RepeatedPtrField();
  _impl_.arg_name_.Destroy();
}

void OpArg::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OpArg::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.OpArg)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.arg_ops_.Clear();
  _impl_.arg_name_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OpArg::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string arg_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_arg_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.OpArg.arg_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated string arg_ops = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_arg_ops();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "serial_v2.OpArg.arg_ops"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OpArg::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.OpArg)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string arg_name = 1;
  if (!this->_internal_arg_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_arg_name().data(), static_cast<int>(this->_internal_arg_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.OpArg.arg_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_arg_name(), target);
  }

  // repeated string arg_ops = 2;
  for (int i = 0, n = this->_internal_arg_ops_size(); i < n; i++) {
    const auto& s = this->_internal_arg_ops(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.OpArg.arg_ops");
    target = stream->WriteString(2, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.OpArg)
  return target;
}

size_t OpArg::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.OpArg)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string arg_ops = 2;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.arg_ops_.size());
  for (int i = 0, n = _impl_.arg_ops_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.arg_ops_.Get(i));
  }

  // string arg_name = 1;
  if (!this->_internal_arg_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_arg_name());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OpArg::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OpArg::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OpArg::GetClassData() const { return &_class_data_; }


void OpArg::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OpArg*>(&to_msg);
  auto& from = static_cast<const OpArg&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.OpArg)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.arg_ops_.MergeFrom(from._impl_.arg_ops_);
  if (!from._internal_arg_name().empty()) {
    _this->_internal_set_arg_name(from._internal_arg_name());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OpArg::CopyFrom(const OpArg& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.OpArg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OpArg::IsInitialized() const {
  return true;
}

void OpArg::InternalSwap(OpArg* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.arg_ops_.InternalSwap(&other->_impl_.arg_ops_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.arg_name_, lhs_arena,
      &other->_impl_.arg_name_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata OpArg::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[4]);
}

// ===================================================================

Tensor_TensorAttrEntry_DoNotUse::Tensor_TensorAttrEntry_DoNotUse() {}
Tensor_TensorAttrEntry_DoNotUse::Tensor_TensorAttrEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void Tensor_TensorAttrEntry_DoNotUse::MergeFrom(const Tensor_TensorAttrEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata Tensor_TensorAttrEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[5]);
}

// ===================================================================

class Tensor::_Internal {
 public:
};

Tensor::Tensor(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &Tensor::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.Tensor)
}
Tensor::Tensor(const Tensor& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Tensor* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.tensor_dim_){from._impl_.tensor_dim_}
    , /*decltype(_impl_._tensor_dim_cached_byte_size_)*/{0}
    , /*decltype(_impl_.tensor_attr_)*/{}
    , decltype(_impl_.tensor_name_){}
    , decltype(_impl_.data_type_){}
    , decltype(_impl_.tensor_bit_width_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.tensor_attr_.MergeFrom(from._impl_.tensor_attr_);
  _impl_.tensor_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.tensor_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_tensor_name().empty()) {
    _this->_impl_.tensor_name_.Set(from._internal_tensor_name(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.data_type_, &from._impl_.data_type_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.tensor_bit_width_) -
    reinterpret_cast<char*>(&_impl_.data_type_)) + sizeof(_impl_.tensor_bit_width_));
  // @@protoc_insertion_point(copy_constructor:serial_v2.Tensor)
}

inline void Tensor::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.tensor_dim_){arena}
    , /*decltype(_impl_._tensor_dim_cached_byte_size_)*/{0}
    , /*decltype(_impl_.tensor_attr_)*/{::_pbi::ArenaInitialized(), arena}
    , decltype(_impl_.tensor_name_){}
    , decltype(_impl_.data_type_){0}
    , decltype(_impl_.tensor_bit_width_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.tensor_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.tensor_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

Tensor::~Tensor() {
  // @@protoc_insertion_point(destructor:serial_v2.Tensor)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void Tensor::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.tensor_dim_.~RepeatedField();
  _impl_.tensor_attr_.Destruct();
  _impl_.tensor_attr_.~MapField();
  _impl_.tensor_name_.Destroy();
}

void Tensor::ArenaDtor(void* object) {
  Tensor* _this = reinterpret_cast< Tensor* >(object);
  _this->_impl_.tensor_attr_.Destruct();
}
void Tensor::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Tensor::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.Tensor)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.tensor_dim_.Clear();
  _impl_.tensor_attr_.Clear();
  _impl_.tensor_name_.ClearToEmpty();
  ::memset(&_impl_.data_type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.tensor_bit_width_) -
      reinterpret_cast<char*>(&_impl_.data_type_)) + sizeof(_impl_.tensor_bit_width_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Tensor::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string tensor_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_tensor_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.Tensor.tensor_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated uint32 tensor_dim = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_tensor_dim(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          _internal_add_tensor_dim(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 data_type = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          _impl_.data_type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 tensor_bit_width = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          _impl_.tensor_bit_width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // map<string, .serial_v2.AttrValue> tensor_attr = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.tensor_attr_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<82>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Tensor::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.Tensor)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string tensor_name = 1;
  if (!this->_internal_tensor_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_tensor_name().data(), static_cast<int>(this->_internal_tensor_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.Tensor.tensor_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_tensor_name(), target);
  }

  // repeated uint32 tensor_dim = 2;
  {
    int byte_size = _impl_._tensor_dim_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          2, _internal_tensor_dim(), byte_size, target);
    }
  }

  // int32 data_type = 5;
  if (this->_internal_data_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(5, this->_internal_data_type(), target);
  }

  // int32 tensor_bit_width = 6;
  if (this->_internal_tensor_bit_width() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(6, this->_internal_tensor_bit_width(), target);
  }

  // map<string, .serial_v2.AttrValue> tensor_attr = 10;
  if (!this->_internal_tensor_attr().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::AttrValue>;
    using WireHelper = Tensor_TensorAttrEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_tensor_attr();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.Tensor.TensorAttrEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(10, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(10, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.Tensor)
  return target;
}

size_t Tensor::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.Tensor)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated uint32 tensor_dim = 2;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt32Size(this->_impl_.tensor_dim_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._tensor_dim_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // map<string, .serial_v2.AttrValue> tensor_attr = 10;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_tensor_attr_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::AttrValue >::const_iterator
      it = this->_internal_tensor_attr().begin();
      it != this->_internal_tensor_attr().end(); ++it) {
    total_size += Tensor_TensorAttrEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  // string tensor_name = 1;
  if (!this->_internal_tensor_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_tensor_name());
  }

  // int32 data_type = 5;
  if (this->_internal_data_type() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_data_type());
  }

  // int32 tensor_bit_width = 6;
  if (this->_internal_tensor_bit_width() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_tensor_bit_width());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Tensor::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Tensor::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Tensor::GetClassData() const { return &_class_data_; }


void Tensor::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Tensor*>(&to_msg);
  auto& from = static_cast<const Tensor&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.Tensor)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.tensor_dim_.MergeFrom(from._impl_.tensor_dim_);
  _this->_impl_.tensor_attr_.MergeFrom(from._impl_.tensor_attr_);
  if (!from._internal_tensor_name().empty()) {
    _this->_internal_set_tensor_name(from._internal_tensor_name());
  }
  if (from._internal_data_type() != 0) {
    _this->_internal_set_data_type(from._internal_data_type());
  }
  if (from._internal_tensor_bit_width() != 0) {
    _this->_internal_set_tensor_bit_width(from._internal_tensor_bit_width());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Tensor::CopyFrom(const Tensor& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.Tensor)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Tensor::IsInitialized() const {
  return true;
}

void Tensor::InternalSwap(Tensor* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.tensor_dim_.InternalSwap(&other->_impl_.tensor_dim_);
  _impl_.tensor_attr_.InternalSwap(&other->_impl_.tensor_attr_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.tensor_name_, lhs_arena,
      &other->_impl_.tensor_name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Tensor, _impl_.tensor_bit_width_)
      + sizeof(Tensor::_impl_.tensor_bit_width_)
      - PROTOBUF_FIELD_OFFSET(Tensor, _impl_.data_type_)>(
          reinterpret_cast<char*>(&_impl_.data_type_),
          reinterpret_cast<char*>(&other->_impl_.data_type_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Tensor::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[6]);
}

// ===================================================================

SubGraph_SubgAttrEntry_DoNotUse::SubGraph_SubgAttrEntry_DoNotUse() {}
SubGraph_SubgAttrEntry_DoNotUse::SubGraph_SubgAttrEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void SubGraph_SubgAttrEntry_DoNotUse::MergeFrom(const SubGraph_SubgAttrEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata SubGraph_SubgAttrEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[7]);
}

// ===================================================================

class SubGraph::_Internal {
 public:
};

SubGraph::SubGraph(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &SubGraph::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.SubGraph)
}
SubGraph::SubGraph(const SubGraph& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SubGraph* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.op_name_){from._impl_.op_name_}
    , /*decltype(_impl_.subg_attr_)*/{}
    , decltype(_impl_.subg_child_){from._impl_.subg_child_}
    , decltype(_impl_.subgraph_name_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.subg_attr_.MergeFrom(from._impl_.subg_attr_);
  _impl_.subgraph_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.subgraph_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_subgraph_name().empty()) {
    _this->_impl_.subgraph_name_.Set(from._internal_subgraph_name(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:serial_v2.SubGraph)
}

inline void SubGraph::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.op_name_){arena}
    , /*decltype(_impl_.subg_attr_)*/{::_pbi::ArenaInitialized(), arena}
    , decltype(_impl_.subg_child_){arena}
    , decltype(_impl_.subgraph_name_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.subgraph_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.subgraph_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SubGraph::~SubGraph() {
  // @@protoc_insertion_point(destructor:serial_v2.SubGraph)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void SubGraph::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.op_name_.~RepeatedPtrField();
  _impl_.subg_attr_.Destruct();
  _impl_.subg_attr_.~MapField();
  _impl_.subg_child_.~RepeatedPtrField();
  _impl_.subgraph_name_.Destroy();
}

void SubGraph::ArenaDtor(void* object) {
  SubGraph* _this = reinterpret_cast< SubGraph* >(object);
  _this->_impl_.subg_attr_.Destruct();
}
void SubGraph::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SubGraph::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.SubGraph)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.op_name_.Clear();
  _impl_.subg_attr_.Clear();
  _impl_.subg_child_.Clear();
  _impl_.subgraph_name_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubGraph::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string subgraph_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_subgraph_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.SubGraph.subgraph_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated string op_name = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_op_name();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "serial_v2.SubGraph.op_name"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // map<string, .serial_v2.AttrValue> subg_attr = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.subg_attr_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v2.SubGraph subg_child = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_subg_child(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<82>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubGraph::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.SubGraph)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string subgraph_name = 1;
  if (!this->_internal_subgraph_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_subgraph_name().data(), static_cast<int>(this->_internal_subgraph_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.SubGraph.subgraph_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_subgraph_name(), target);
  }

  // repeated string op_name = 3;
  for (int i = 0, n = this->_internal_op_name_size(); i < n; i++) {
    const auto& s = this->_internal_op_name(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.SubGraph.op_name");
    target = stream->WriteString(3, s, target);
  }

  // map<string, .serial_v2.AttrValue> subg_attr = 5;
  if (!this->_internal_subg_attr().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::AttrValue>;
    using WireHelper = SubGraph_SubgAttrEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_subg_attr();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.SubGraph.SubgAttrEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(5, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(5, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  // repeated .serial_v2.SubGraph subg_child = 10;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_subg_child_size()); i < n; i++) {
    const auto& repfield = this->_internal_subg_child(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(10, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.SubGraph)
  return target;
}

size_t SubGraph::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.SubGraph)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string op_name = 3;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.op_name_.size());
  for (int i = 0, n = _impl_.op_name_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.op_name_.Get(i));
  }

  // map<string, .serial_v2.AttrValue> subg_attr = 5;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_subg_attr_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::AttrValue >::const_iterator
      it = this->_internal_subg_attr().begin();
      it != this->_internal_subg_attr().end(); ++it) {
    total_size += SubGraph_SubgAttrEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  // repeated .serial_v2.SubGraph subg_child = 10;
  total_size += 1UL * this->_internal_subg_child_size();
  for (const auto& msg : this->_impl_.subg_child_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string subgraph_name = 1;
  if (!this->_internal_subgraph_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_subgraph_name());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubGraph::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SubGraph::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubGraph::GetClassData() const { return &_class_data_; }


void SubGraph::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SubGraph*>(&to_msg);
  auto& from = static_cast<const SubGraph&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.SubGraph)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.op_name_.MergeFrom(from._impl_.op_name_);
  _this->_impl_.subg_attr_.MergeFrom(from._impl_.subg_attr_);
  _this->_impl_.subg_child_.MergeFrom(from._impl_.subg_child_);
  if (!from._internal_subgraph_name().empty()) {
    _this->_internal_set_subgraph_name(from._internal_subgraph_name());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubGraph::CopyFrom(const SubGraph& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.SubGraph)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubGraph::IsInitialized() const {
  return true;
}

void SubGraph::InternalSwap(SubGraph* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.op_name_.InternalSwap(&other->_impl_.op_name_);
  _impl_.subg_attr_.InternalSwap(&other->_impl_.subg_attr_);
  _impl_.subg_child_.InternalSwap(&other->_impl_.subg_child_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.subgraph_name_, lhs_arena,
      &other->_impl_.subgraph_name_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SubGraph::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[8]);
}

// ===================================================================

class OpDef::_Internal {
 public:
};

OpDef::OpDef(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.OpDef)
}
OpDef::OpDef(const OpDef& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OpDef* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.input_args_){from._impl_.input_args_}
    , decltype(_impl_.attrs_){from._impl_.attrs_}
    , decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    _this->_impl_.name_.Set(from._internal_name(), 
      _this->GetArenaForAllocation());
  }
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_annotation().empty()) {
    _this->_impl_.annotation_.Set(from._internal_annotation(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:serial_v2.OpDef)
}

inline void OpDef::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.input_args_){arena}
    , decltype(_impl_.attrs_){arena}
    , decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OpDef::~OpDef() {
  // @@protoc_insertion_point(destructor:serial_v2.OpDef)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OpDef::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.input_args_.~RepeatedPtrField();
  _impl_.attrs_.~RepeatedPtrField();
  _impl_.name_.Destroy();
  _impl_.annotation_.Destroy();
}

void OpDef::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OpDef::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.OpDef)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.input_args_.Clear();
  _impl_.attrs_.Clear();
  _impl_.name_.ClearToEmpty();
  _impl_.annotation_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OpDef::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.OpDef.name"));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v2.OpArgDef input_args = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_input_args(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v2.AttrDef attrs = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_attrs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // string annotation = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_annotation();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.OpDef.annotation"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OpDef::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.OpDef)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.OpDef.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

  // repeated .serial_v2.OpArgDef input_args = 2;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_input_args_size()); i < n; i++) {
    const auto& repfield = this->_internal_input_args(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .serial_v2.AttrDef attrs = 3;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_attrs_size()); i < n; i++) {
    const auto& repfield = this->_internal_attrs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  // string annotation = 4;
  if (!this->_internal_annotation().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_annotation().data(), static_cast<int>(this->_internal_annotation().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.OpDef.annotation");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_annotation(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.OpDef)
  return target;
}

size_t OpDef::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.OpDef)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v2.OpArgDef input_args = 2;
  total_size += 1UL * this->_internal_input_args_size();
  for (const auto& msg : this->_impl_.input_args_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .serial_v2.AttrDef attrs = 3;
  total_size += 1UL * this->_internal_attrs_size();
  for (const auto& msg : this->_impl_.attrs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string name = 1;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string annotation = 4;
  if (!this->_internal_annotation().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_annotation());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OpDef::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OpDef::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OpDef::GetClassData() const { return &_class_data_; }


void OpDef::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OpDef*>(&to_msg);
  auto& from = static_cast<const OpDef&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.OpDef)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.input_args_.MergeFrom(from._impl_.input_args_);
  _this->_impl_.attrs_.MergeFrom(from._impl_.attrs_);
  if (!from._internal_name().empty()) {
    _this->_internal_set_name(from._internal_name());
  }
  if (!from._internal_annotation().empty()) {
    _this->_internal_set_annotation(from._internal_annotation());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OpDef::CopyFrom(const OpDef& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.OpDef)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OpDef::IsInitialized() const {
  return true;
}

void OpDef::InternalSwap(OpDef* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.input_args_.InternalSwap(&other->_impl_.input_args_);
  _impl_.attrs_.InternalSwap(&other->_impl_.attrs_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_, lhs_arena,
      &other->_impl_.name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.annotation_, lhs_arena,
      &other->_impl_.annotation_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata OpDef::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[9]);
}

// ===================================================================

class AttrDef::_Internal {
 public:
  static const ::serial_v2::AttrValue& default_value(const AttrDef* msg);
};

const ::serial_v2::AttrValue&
AttrDef::_Internal::default_value(const AttrDef* msg) {
  return *msg->_impl_.default_value_;
}
AttrDef::AttrDef(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.AttrDef)
}
AttrDef::AttrDef(const AttrDef& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AttrDef* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , decltype(_impl_.default_value_){nullptr}
    , decltype(_impl_.occur_type_){}
    , decltype(_impl_.list_length_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    _this->_impl_.name_.Set(from._internal_name(), 
      _this->GetArenaForAllocation());
  }
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_annotation().empty()) {
    _this->_impl_.annotation_.Set(from._internal_annotation(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_default_value()) {
    _this->_impl_.default_value_ = new ::serial_v2::AttrValue(*from._impl_.default_value_);
  }
  ::memcpy(&_impl_.occur_type_, &from._impl_.occur_type_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.list_length_) -
    reinterpret_cast<char*>(&_impl_.occur_type_)) + sizeof(_impl_.list_length_));
  // @@protoc_insertion_point(copy_constructor:serial_v2.AttrDef)
}

inline void AttrDef::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , decltype(_impl_.default_value_){nullptr}
    , decltype(_impl_.occur_type_){0}
    , decltype(_impl_.list_length_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

AttrDef::~AttrDef() {
  // @@protoc_insertion_point(destructor:serial_v2.AttrDef)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AttrDef::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.name_.Destroy();
  _impl_.annotation_.Destroy();
  if (this != internal_default_instance()) delete _impl_.default_value_;
}

void AttrDef::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AttrDef::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.AttrDef)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.name_.ClearToEmpty();
  _impl_.annotation_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.default_value_ != nullptr) {
    delete _impl_.default_value_;
  }
  _impl_.default_value_ = nullptr;
  ::memset(&_impl_.occur_type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.list_length_) -
      reinterpret_cast<char*>(&_impl_.occur_type_)) + sizeof(_impl_.list_length_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AttrDef::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.AttrDef.name"));
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.AttrDef.OccurType occur_type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_occur_type(static_cast<::serial_v2::AttrDef_OccurType>(val));
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.AttrValue default_value = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_default_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 list_length = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          _impl_.list_length_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string annotation = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_annotation();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.AttrDef.annotation"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AttrDef::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.AttrDef)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.AttrDef.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

  // .serial_v2.AttrDef.OccurType occur_type = 3;
  if (this->_internal_occur_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      3, this->_internal_occur_type(), target);
  }

  // .serial_v2.AttrValue default_value = 4;
  if (this->_internal_has_default_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(4, _Internal::default_value(this),
        _Internal::default_value(this).GetCachedSize(), target, stream);
  }

  // int32 list_length = 6;
  if (this->_internal_list_length() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(6, this->_internal_list_length(), target);
  }

  // string annotation = 7;
  if (!this->_internal_annotation().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_annotation().data(), static_cast<int>(this->_internal_annotation().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.AttrDef.annotation");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_annotation(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.AttrDef)
  return target;
}

size_t AttrDef::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.AttrDef)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string annotation = 7;
  if (!this->_internal_annotation().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_annotation());
  }

  // .serial_v2.AttrValue default_value = 4;
  if (this->_internal_has_default_value()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.default_value_);
  }

  // .serial_v2.AttrDef.OccurType occur_type = 3;
  if (this->_internal_occur_type() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_occur_type());
  }

  // int32 list_length = 6;
  if (this->_internal_list_length() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_list_length());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AttrDef::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AttrDef::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AttrDef::GetClassData() const { return &_class_data_; }


void AttrDef::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AttrDef*>(&to_msg);
  auto& from = static_cast<const AttrDef&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.AttrDef)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_name().empty()) {
    _this->_internal_set_name(from._internal_name());
  }
  if (!from._internal_annotation().empty()) {
    _this->_internal_set_annotation(from._internal_annotation());
  }
  if (from._internal_has_default_value()) {
    _this->_internal_mutable_default_value()->::serial_v2::AttrValue::MergeFrom(
        from._internal_default_value());
  }
  if (from._internal_occur_type() != 0) {
    _this->_internal_set_occur_type(from._internal_occur_type());
  }
  if (from._internal_list_length() != 0) {
    _this->_internal_set_list_length(from._internal_list_length());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void AttrDef::CopyFrom(const AttrDef& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.AttrDef)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AttrDef::IsInitialized() const {
  return true;
}

void AttrDef::InternalSwap(AttrDef* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_, lhs_arena,
      &other->_impl_.name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.annotation_, lhs_arena,
      &other->_impl_.annotation_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AttrDef, _impl_.list_length_)
      + sizeof(AttrDef::_impl_.list_length_)
      - PROTOBUF_FIELD_OFFSET(AttrDef, _impl_.default_value_)>(
          reinterpret_cast<char*>(&_impl_.default_value_),
          reinterpret_cast<char*>(&other->_impl_.default_value_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AttrDef::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[10]);
}

// ===================================================================

class OpArgDef::_Internal {
 public:
};

OpArgDef::OpArgDef(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.OpArgDef)
}
OpArgDef::OpArgDef(const OpArgDef& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OpArgDef* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , decltype(_impl_.occur_type_){}
    , decltype(_impl_.data_type_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    _this->_impl_.name_.Set(from._internal_name(), 
      _this->GetArenaForAllocation());
  }
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_annotation().empty()) {
    _this->_impl_.annotation_.Set(from._internal_annotation(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.occur_type_, &from._impl_.occur_type_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.data_type_) -
    reinterpret_cast<char*>(&_impl_.occur_type_)) + sizeof(_impl_.data_type_));
  // @@protoc_insertion_point(copy_constructor:serial_v2.OpArgDef)
}

inline void OpArgDef::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , decltype(_impl_.occur_type_){0}
    , decltype(_impl_.data_type_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OpArgDef::~OpArgDef() {
  // @@protoc_insertion_point(destructor:serial_v2.OpArgDef)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OpArgDef::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.name_.Destroy();
  _impl_.annotation_.Destroy();
}

void OpArgDef::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OpArgDef::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.OpArgDef)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.name_.ClearToEmpty();
  _impl_.annotation_.ClearToEmpty();
  ::memset(&_impl_.occur_type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.data_type_) -
      reinterpret_cast<char*>(&_impl_.occur_type_)) + sizeof(_impl_.data_type_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OpArgDef::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.OpArgDef.name"));
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.OpArgDef.OccurType occur_type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_occur_type(static_cast<::serial_v2::OpArgDef_OccurType>(val));
        } else
          goto handle_unusual;
        continue;
      // int32 data_type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _impl_.data_type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string annotation = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_annotation();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.OpArgDef.annotation"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OpArgDef::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.OpArgDef)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.OpArgDef.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

  // .serial_v2.OpArgDef.OccurType occur_type = 2;
  if (this->_internal_occur_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      2, this->_internal_occur_type(), target);
  }

  // int32 data_type = 3;
  if (this->_internal_data_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_data_type(), target);
  }

  // string annotation = 4;
  if (!this->_internal_annotation().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_annotation().data(), static_cast<int>(this->_internal_annotation().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.OpArgDef.annotation");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_annotation(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.OpArgDef)
  return target;
}

size_t OpArgDef::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.OpArgDef)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string annotation = 4;
  if (!this->_internal_annotation().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_annotation());
  }

  // .serial_v2.OpArgDef.OccurType occur_type = 2;
  if (this->_internal_occur_type() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_occur_type());
  }

  // int32 data_type = 3;
  if (this->_internal_data_type() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_data_type());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OpArgDef::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OpArgDef::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OpArgDef::GetClassData() const { return &_class_data_; }


void OpArgDef::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OpArgDef*>(&to_msg);
  auto& from = static_cast<const OpArgDef&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.OpArgDef)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_name().empty()) {
    _this->_internal_set_name(from._internal_name());
  }
  if (!from._internal_annotation().empty()) {
    _this->_internal_set_annotation(from._internal_annotation());
  }
  if (from._internal_occur_type() != 0) {
    _this->_internal_set_occur_type(from._internal_occur_type());
  }
  if (from._internal_data_type() != 0) {
    _this->_internal_set_data_type(from._internal_data_type());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OpArgDef::CopyFrom(const OpArgDef& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.OpArgDef)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OpArgDef::IsInitialized() const {
  return true;
}

void OpArgDef::InternalSwap(OpArgDef* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_, lhs_arena,
      &other->_impl_.name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.annotation_, lhs_arena,
      &other->_impl_.annotation_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OpArgDef, _impl_.data_type_)
      + sizeof(OpArgDef::_impl_.data_type_)
      - PROTOBUF_FIELD_OFFSET(OpArgDef, _impl_.occur_type_)>(
          reinterpret_cast<char*>(&_impl_.occur_type_),
          reinterpret_cast<char*>(&other->_impl_.occur_type_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OpArgDef::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[11]);
}

// ===================================================================

class AttrValue::_Internal {
 public:
  static const ::serial_v2::Bytes& bytes_value(const AttrValue* msg);
  static const ::serial_v2::BoolVec& bool_vec_value(const AttrValue* msg);
  static const ::serial_v2::Int32Vec& int32_vec_value(const AttrValue* msg);
  static const ::serial_v2::Uint32Vec& uint32_vec_value(const AttrValue* msg);
  static const ::serial_v2::Int64Vec& int64_vec_value(const AttrValue* msg);
  static const ::serial_v2::Uint64Vec& uint64_vec_value(const AttrValue* msg);
  static const ::serial_v2::FloatVec& float_vec_value(const AttrValue* msg);
  static const ::serial_v2::DoubleVec& double_vec_value(const AttrValue* msg);
  static const ::serial_v2::StringVec& string_vec_value(const AttrValue* msg);
  static const ::serial_v2::BytesVec& bytes_vec_value(const AttrValue* msg);
  static const ::serial_v2::MapString2Int32& map_string_2_int32_value(const AttrValue* msg);
  static const ::serial_v2::MapString2Uint32& map_string_2_uint32_value(const AttrValue* msg);
  static const ::serial_v2::MapString2Int64& map_string_2_int64_value(const AttrValue* msg);
  static const ::serial_v2::MapString2Uint64& map_string_2_uint64_value(const AttrValue* msg);
  static const ::serial_v2::MapString2String& map_string_2_string_value(const AttrValue* msg);
  static const ::serial_v2::MapString2Bytes& map_string_2_bytes_value(const AttrValue* msg);
  static const ::serial_v2::MapString2Int32Vec& map_string_2_int32_vec_value(const AttrValue* msg);
  static const ::serial_v2::MapString2Uint32Vec& map_string_2_uint32_vec_value(const AttrValue* msg);
  static const ::serial_v2::MapString2Int64Vec& map_string_2_int64_vec_value(const AttrValue* msg);
  static const ::serial_v2::MapString2Uint64Vec& map_string_2_uint64_vec_value(const AttrValue* msg);
  static const ::serial_v2::MapString2StringVec& map_string_2_string_vec_value(const AttrValue* msg);
};

const ::serial_v2::Bytes&
AttrValue::_Internal::bytes_value(const AttrValue* msg) {
  return *msg->_impl_.value_.bytes_value_;
}
const ::serial_v2::BoolVec&
AttrValue::_Internal::bool_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.bool_vec_value_;
}
const ::serial_v2::Int32Vec&
AttrValue::_Internal::int32_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.int32_vec_value_;
}
const ::serial_v2::Uint32Vec&
AttrValue::_Internal::uint32_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.uint32_vec_value_;
}
const ::serial_v2::Int64Vec&
AttrValue::_Internal::int64_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.int64_vec_value_;
}
const ::serial_v2::Uint64Vec&
AttrValue::_Internal::uint64_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.uint64_vec_value_;
}
const ::serial_v2::FloatVec&
AttrValue::_Internal::float_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.float_vec_value_;
}
const ::serial_v2::DoubleVec&
AttrValue::_Internal::double_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.double_vec_value_;
}
const ::serial_v2::StringVec&
AttrValue::_Internal::string_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.string_vec_value_;
}
const ::serial_v2::BytesVec&
AttrValue::_Internal::bytes_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.bytes_vec_value_;
}
const ::serial_v2::MapString2Int32&
AttrValue::_Internal::map_string_2_int32_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_int32_value_;
}
const ::serial_v2::MapString2Uint32&
AttrValue::_Internal::map_string_2_uint32_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_uint32_value_;
}
const ::serial_v2::MapString2Int64&
AttrValue::_Internal::map_string_2_int64_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_int64_value_;
}
const ::serial_v2::MapString2Uint64&
AttrValue::_Internal::map_string_2_uint64_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_uint64_value_;
}
const ::serial_v2::MapString2String&
AttrValue::_Internal::map_string_2_string_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_string_value_;
}
const ::serial_v2::MapString2Bytes&
AttrValue::_Internal::map_string_2_bytes_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_bytes_value_;
}
const ::serial_v2::MapString2Int32Vec&
AttrValue::_Internal::map_string_2_int32_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_int32_vec_value_;
}
const ::serial_v2::MapString2Uint32Vec&
AttrValue::_Internal::map_string_2_uint32_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_uint32_vec_value_;
}
const ::serial_v2::MapString2Int64Vec&
AttrValue::_Internal::map_string_2_int64_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_int64_vec_value_;
}
const ::serial_v2::MapString2Uint64Vec&
AttrValue::_Internal::map_string_2_uint64_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_uint64_vec_value_;
}
const ::serial_v2::MapString2StringVec&
AttrValue::_Internal::map_string_2_string_vec_value(const AttrValue* msg) {
  return *msg->_impl_.value_.map_string_2_string_vec_value_;
}
void AttrValue::set_allocated_bytes_value(::serial_v2::Bytes* bytes_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (bytes_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(bytes_value);
    if (message_arena != submessage_arena) {
      bytes_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bytes_value, submessage_arena);
    }
    set_has_bytes_value();
    _impl_.value_.bytes_value_ = bytes_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.bytes_value)
}
void AttrValue::set_allocated_bool_vec_value(::serial_v2::BoolVec* bool_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (bool_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(bool_vec_value);
    if (message_arena != submessage_arena) {
      bool_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bool_vec_value, submessage_arena);
    }
    set_has_bool_vec_value();
    _impl_.value_.bool_vec_value_ = bool_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.bool_vec_value)
}
void AttrValue::set_allocated_int32_vec_value(::serial_v2::Int32Vec* int32_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (int32_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(int32_vec_value);
    if (message_arena != submessage_arena) {
      int32_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, int32_vec_value, submessage_arena);
    }
    set_has_int32_vec_value();
    _impl_.value_.int32_vec_value_ = int32_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.int32_vec_value)
}
void AttrValue::set_allocated_uint32_vec_value(::serial_v2::Uint32Vec* uint32_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (uint32_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(uint32_vec_value);
    if (message_arena != submessage_arena) {
      uint32_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, uint32_vec_value, submessage_arena);
    }
    set_has_uint32_vec_value();
    _impl_.value_.uint32_vec_value_ = uint32_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.uint32_vec_value)
}
void AttrValue::set_allocated_int64_vec_value(::serial_v2::Int64Vec* int64_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (int64_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(int64_vec_value);
    if (message_arena != submessage_arena) {
      int64_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, int64_vec_value, submessage_arena);
    }
    set_has_int64_vec_value();
    _impl_.value_.int64_vec_value_ = int64_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.int64_vec_value)
}
void AttrValue::set_allocated_uint64_vec_value(::serial_v2::Uint64Vec* uint64_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (uint64_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(uint64_vec_value);
    if (message_arena != submessage_arena) {
      uint64_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, uint64_vec_value, submessage_arena);
    }
    set_has_uint64_vec_value();
    _impl_.value_.uint64_vec_value_ = uint64_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.uint64_vec_value)
}
void AttrValue::set_allocated_float_vec_value(::serial_v2::FloatVec* float_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (float_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(float_vec_value);
    if (message_arena != submessage_arena) {
      float_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, float_vec_value, submessage_arena);
    }
    set_has_float_vec_value();
    _impl_.value_.float_vec_value_ = float_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.float_vec_value)
}
void AttrValue::set_allocated_double_vec_value(::serial_v2::DoubleVec* double_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (double_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(double_vec_value);
    if (message_arena != submessage_arena) {
      double_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, double_vec_value, submessage_arena);
    }
    set_has_double_vec_value();
    _impl_.value_.double_vec_value_ = double_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.double_vec_value)
}
void AttrValue::set_allocated_string_vec_value(::serial_v2::StringVec* string_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (string_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(string_vec_value);
    if (message_arena != submessage_arena) {
      string_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, string_vec_value, submessage_arena);
    }
    set_has_string_vec_value();
    _impl_.value_.string_vec_value_ = string_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.string_vec_value)
}
void AttrValue::set_allocated_bytes_vec_value(::serial_v2::BytesVec* bytes_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (bytes_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(bytes_vec_value);
    if (message_arena != submessage_arena) {
      bytes_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bytes_vec_value, submessage_arena);
    }
    set_has_bytes_vec_value();
    _impl_.value_.bytes_vec_value_ = bytes_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.bytes_vec_value)
}
void AttrValue::set_allocated_map_string_2_int32_value(::serial_v2::MapString2Int32* map_string_2_int32_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_int32_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_int32_value);
    if (message_arena != submessage_arena) {
      map_string_2_int32_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_int32_value, submessage_arena);
    }
    set_has_map_string_2_int32_value();
    _impl_.value_.map_string_2_int32_value_ = map_string_2_int32_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_int32_value)
}
void AttrValue::set_allocated_map_string_2_uint32_value(::serial_v2::MapString2Uint32* map_string_2_uint32_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_uint32_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_uint32_value);
    if (message_arena != submessage_arena) {
      map_string_2_uint32_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_uint32_value, submessage_arena);
    }
    set_has_map_string_2_uint32_value();
    _impl_.value_.map_string_2_uint32_value_ = map_string_2_uint32_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_uint32_value)
}
void AttrValue::set_allocated_map_string_2_int64_value(::serial_v2::MapString2Int64* map_string_2_int64_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_int64_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_int64_value);
    if (message_arena != submessage_arena) {
      map_string_2_int64_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_int64_value, submessage_arena);
    }
    set_has_map_string_2_int64_value();
    _impl_.value_.map_string_2_int64_value_ = map_string_2_int64_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_int64_value)
}
void AttrValue::set_allocated_map_string_2_uint64_value(::serial_v2::MapString2Uint64* map_string_2_uint64_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_uint64_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_uint64_value);
    if (message_arena != submessage_arena) {
      map_string_2_uint64_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_uint64_value, submessage_arena);
    }
    set_has_map_string_2_uint64_value();
    _impl_.value_.map_string_2_uint64_value_ = map_string_2_uint64_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_uint64_value)
}
void AttrValue::set_allocated_map_string_2_string_value(::serial_v2::MapString2String* map_string_2_string_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_string_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_string_value);
    if (message_arena != submessage_arena) {
      map_string_2_string_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_string_value, submessage_arena);
    }
    set_has_map_string_2_string_value();
    _impl_.value_.map_string_2_string_value_ = map_string_2_string_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_string_value)
}
void AttrValue::set_allocated_map_string_2_bytes_value(::serial_v2::MapString2Bytes* map_string_2_bytes_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_bytes_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_bytes_value);
    if (message_arena != submessage_arena) {
      map_string_2_bytes_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_bytes_value, submessage_arena);
    }
    set_has_map_string_2_bytes_value();
    _impl_.value_.map_string_2_bytes_value_ = map_string_2_bytes_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_bytes_value)
}
void AttrValue::set_allocated_map_string_2_int32_vec_value(::serial_v2::MapString2Int32Vec* map_string_2_int32_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_int32_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_int32_vec_value);
    if (message_arena != submessage_arena) {
      map_string_2_int32_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_int32_vec_value, submessage_arena);
    }
    set_has_map_string_2_int32_vec_value();
    _impl_.value_.map_string_2_int32_vec_value_ = map_string_2_int32_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_int32_vec_value)
}
void AttrValue::set_allocated_map_string_2_uint32_vec_value(::serial_v2::MapString2Uint32Vec* map_string_2_uint32_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_uint32_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_uint32_vec_value);
    if (message_arena != submessage_arena) {
      map_string_2_uint32_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_uint32_vec_value, submessage_arena);
    }
    set_has_map_string_2_uint32_vec_value();
    _impl_.value_.map_string_2_uint32_vec_value_ = map_string_2_uint32_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_uint32_vec_value)
}
void AttrValue::set_allocated_map_string_2_int64_vec_value(::serial_v2::MapString2Int64Vec* map_string_2_int64_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_int64_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_int64_vec_value);
    if (message_arena != submessage_arena) {
      map_string_2_int64_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_int64_vec_value, submessage_arena);
    }
    set_has_map_string_2_int64_vec_value();
    _impl_.value_.map_string_2_int64_vec_value_ = map_string_2_int64_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_int64_vec_value)
}
void AttrValue::set_allocated_map_string_2_uint64_vec_value(::serial_v2::MapString2Uint64Vec* map_string_2_uint64_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_uint64_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_uint64_vec_value);
    if (message_arena != submessage_arena) {
      map_string_2_uint64_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_uint64_vec_value, submessage_arena);
    }
    set_has_map_string_2_uint64_vec_value();
    _impl_.value_.map_string_2_uint64_vec_value_ = map_string_2_uint64_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_uint64_vec_value)
}
void AttrValue::set_allocated_map_string_2_string_vec_value(::serial_v2::MapString2StringVec* map_string_2_string_vec_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_value();
  if (map_string_2_string_vec_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_string_2_string_vec_value);
    if (message_arena != submessage_arena) {
      map_string_2_string_vec_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, map_string_2_string_vec_value, submessage_arena);
    }
    set_has_map_string_2_string_vec_value();
    _impl_.value_.map_string_2_string_vec_value_ = map_string_2_string_vec_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v2.AttrValue.map_string_2_string_vec_value)
}
AttrValue::AttrValue(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.AttrValue)
}
AttrValue::AttrValue(const AttrValue& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AttrValue* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_value();
  switch (from.value_case()) {
    case kBoolValue: {
      _this->_internal_set_bool_value(from._internal_bool_value());
      break;
    }
    case kInt32Value: {
      _this->_internal_set_int32_value(from._internal_int32_value());
      break;
    }
    case kUint32Value: {
      _this->_internal_set_uint32_value(from._internal_uint32_value());
      break;
    }
    case kInt64Value: {
      _this->_internal_set_int64_value(from._internal_int64_value());
      break;
    }
    case kUint64Value: {
      _this->_internal_set_uint64_value(from._internal_uint64_value());
      break;
    }
    case kFloatValue: {
      _this->_internal_set_float_value(from._internal_float_value());
      break;
    }
    case kDoubleValue: {
      _this->_internal_set_double_value(from._internal_double_value());
      break;
    }
    case kStringValue: {
      _this->_internal_set_string_value(from._internal_string_value());
      break;
    }
    case kBytesValue: {
      _this->_internal_mutable_bytes_value()->::serial_v2::Bytes::MergeFrom(
          from._internal_bytes_value());
      break;
    }
    case kBoolVecValue: {
      _this->_internal_mutable_bool_vec_value()->::serial_v2::BoolVec::MergeFrom(
          from._internal_bool_vec_value());
      break;
    }
    case kInt32VecValue: {
      _this->_internal_mutable_int32_vec_value()->::serial_v2::Int32Vec::MergeFrom(
          from._internal_int32_vec_value());
      break;
    }
    case kUint32VecValue: {
      _this->_internal_mutable_uint32_vec_value()->::serial_v2::Uint32Vec::MergeFrom(
          from._internal_uint32_vec_value());
      break;
    }
    case kInt64VecValue: {
      _this->_internal_mutable_int64_vec_value()->::serial_v2::Int64Vec::MergeFrom(
          from._internal_int64_vec_value());
      break;
    }
    case kUint64VecValue: {
      _this->_internal_mutable_uint64_vec_value()->::serial_v2::Uint64Vec::MergeFrom(
          from._internal_uint64_vec_value());
      break;
    }
    case kFloatVecValue: {
      _this->_internal_mutable_float_vec_value()->::serial_v2::FloatVec::MergeFrom(
          from._internal_float_vec_value());
      break;
    }
    case kDoubleVecValue: {
      _this->_internal_mutable_double_vec_value()->::serial_v2::DoubleVec::MergeFrom(
          from._internal_double_vec_value());
      break;
    }
    case kStringVecValue: {
      _this->_internal_mutable_string_vec_value()->::serial_v2::StringVec::MergeFrom(
          from._internal_string_vec_value());
      break;
    }
    case kBytesVecValue: {
      _this->_internal_mutable_bytes_vec_value()->::serial_v2::BytesVec::MergeFrom(
          from._internal_bytes_vec_value());
      break;
    }
    case kMapString2Int32Value: {
      _this->_internal_mutable_map_string_2_int32_value()->::serial_v2::MapString2Int32::MergeFrom(
          from._internal_map_string_2_int32_value());
      break;
    }
    case kMapString2Uint32Value: {
      _this->_internal_mutable_map_string_2_uint32_value()->::serial_v2::MapString2Uint32::MergeFrom(
          from._internal_map_string_2_uint32_value());
      break;
    }
    case kMapString2Int64Value: {
      _this->_internal_mutable_map_string_2_int64_value()->::serial_v2::MapString2Int64::MergeFrom(
          from._internal_map_string_2_int64_value());
      break;
    }
    case kMapString2Uint64Value: {
      _this->_internal_mutable_map_string_2_uint64_value()->::serial_v2::MapString2Uint64::MergeFrom(
          from._internal_map_string_2_uint64_value());
      break;
    }
    case kMapString2StringValue: {
      _this->_internal_mutable_map_string_2_string_value()->::serial_v2::MapString2String::MergeFrom(
          from._internal_map_string_2_string_value());
      break;
    }
    case kMapString2BytesValue: {
      _this->_internal_mutable_map_string_2_bytes_value()->::serial_v2::MapString2Bytes::MergeFrom(
          from._internal_map_string_2_bytes_value());
      break;
    }
    case kMapString2Int32VecValue: {
      _this->_internal_mutable_map_string_2_int32_vec_value()->::serial_v2::MapString2Int32Vec::MergeFrom(
          from._internal_map_string_2_int32_vec_value());
      break;
    }
    case kMapString2Uint32VecValue: {
      _this->_internal_mutable_map_string_2_uint32_vec_value()->::serial_v2::MapString2Uint32Vec::MergeFrom(
          from._internal_map_string_2_uint32_vec_value());
      break;
    }
    case kMapString2Int64VecValue: {
      _this->_internal_mutable_map_string_2_int64_vec_value()->::serial_v2::MapString2Int64Vec::MergeFrom(
          from._internal_map_string_2_int64_vec_value());
      break;
    }
    case kMapString2Uint64VecValue: {
      _this->_internal_mutable_map_string_2_uint64_vec_value()->::serial_v2::MapString2Uint64Vec::MergeFrom(
          from._internal_map_string_2_uint64_vec_value());
      break;
    }
    case kMapString2StringVecValue: {
      _this->_internal_mutable_map_string_2_string_vec_value()->::serial_v2::MapString2StringVec::MergeFrom(
          from._internal_map_string_2_string_vec_value());
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:serial_v2.AttrValue)
}

inline void AttrValue::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  clear_has_value();
}

AttrValue::~AttrValue() {
  // @@protoc_insertion_point(destructor:serial_v2.AttrValue)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AttrValue::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (has_value()) {
    clear_value();
  }
}

void AttrValue::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AttrValue::clear_value() {
// @@protoc_insertion_point(one_of_clear_start:serial_v2.AttrValue)
  switch (value_case()) {
    case kBoolValue: {
      // No need to clear
      break;
    }
    case kInt32Value: {
      // No need to clear
      break;
    }
    case kUint32Value: {
      // No need to clear
      break;
    }
    case kInt64Value: {
      // No need to clear
      break;
    }
    case kUint64Value: {
      // No need to clear
      break;
    }
    case kFloatValue: {
      // No need to clear
      break;
    }
    case kDoubleValue: {
      // No need to clear
      break;
    }
    case kStringValue: {
      _impl_.value_.string_value_.Destroy();
      break;
    }
    case kBytesValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.bytes_value_;
      }
      break;
    }
    case kBoolVecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.bool_vec_value_;
      }
      break;
    }
    case kInt32VecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.int32_vec_value_;
      }
      break;
    }
    case kUint32VecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.uint32_vec_value_;
      }
      break;
    }
    case kInt64VecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.int64_vec_value_;
      }
      break;
    }
    case kUint64VecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.uint64_vec_value_;
      }
      break;
    }
    case kFloatVecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.float_vec_value_;
      }
      break;
    }
    case kDoubleVecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.double_vec_value_;
      }
      break;
    }
    case kStringVecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.string_vec_value_;
      }
      break;
    }
    case kBytesVecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.bytes_vec_value_;
      }
      break;
    }
    case kMapString2Int32Value: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_int32_value_;
      }
      break;
    }
    case kMapString2Uint32Value: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_uint32_value_;
      }
      break;
    }
    case kMapString2Int64Value: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_int64_value_;
      }
      break;
    }
    case kMapString2Uint64Value: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_uint64_value_;
      }
      break;
    }
    case kMapString2StringValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_string_value_;
      }
      break;
    }
    case kMapString2BytesValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_bytes_value_;
      }
      break;
    }
    case kMapString2Int32VecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_int32_vec_value_;
      }
      break;
    }
    case kMapString2Uint32VecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_uint32_vec_value_;
      }
      break;
    }
    case kMapString2Int64VecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_int64_vec_value_;
      }
      break;
    }
    case kMapString2Uint64VecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_uint64_vec_value_;
      }
      break;
    }
    case kMapString2StringVecValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.value_.map_string_2_string_vec_value_;
      }
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = VALUE_NOT_SET;
}


void AttrValue::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.AttrValue)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_value();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AttrValue::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool bool_value = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _internal_set_bool_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 int32_value = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          _internal_set_int32_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 uint32_value = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          _internal_set_uint32_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 int64_value = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          _internal_set_int64_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint64 uint64_value = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _internal_set_uint64_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // float float_value = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 77)) {
          _internal_set_float_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // double double_value = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 81)) {
          _internal_set_double_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // string string_value = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          auto str = _internal_mutable_string_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v2.AttrValue.string_value"));
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.Bytes bytes_value = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_bytes_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.BoolVec bool_vec_value = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_bool_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.Int32Vec int32_vec_value = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_int32_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.Uint32Vec uint32_vec_value = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          ptr = ctx->ParseMessage(_internal_mutable_uint32_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.Int64Vec int64_vec_value = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_int64_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.Uint64Vec uint64_vec_value = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_uint64_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.FloatVec float_vec_value = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 146)) {
          ptr = ctx->ParseMessage(_internal_mutable_float_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.DoubleVec double_vec_value = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 154)) {
          ptr = ctx->ParseMessage(_internal_mutable_double_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.StringVec string_vec_value = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_string_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.BytesVec bytes_vec_value = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_bytes_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2Int32 map_string_2_int32_value = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_int32_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2Uint32 map_string_2_uint32_value = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_uint32_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2Int64 map_string_2_int64_value = 24;
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_int64_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2Uint64 map_string_2_uint64_value = 25;
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 202)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_uint64_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2String map_string_2_string_value = 26;
      case 26:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 210)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_string_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2Bytes map_string_2_bytes_value = 27;
      case 27:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 218)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_bytes_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2Int32Vec map_string_2_int32_vec_value = 28;
      case 28:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 226)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_int32_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2Uint32Vec map_string_2_uint32_vec_value = 29;
      case 29:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 234)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_uint32_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2Int64Vec map_string_2_int64_vec_value = 30;
      case 30:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 242)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_int64_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2Uint64Vec map_string_2_uint64_vec_value = 31;
      case 31:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 250)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_uint64_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v2.MapString2StringVec map_string_2_string_vec_value = 32;
      case 32:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 2)) {
          ptr = ctx->ParseMessage(_internal_mutable_map_string_2_string_vec_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AttrValue::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.AttrValue)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool bool_value = 4;
  if (_internal_has_bool_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(4, this->_internal_bool_value(), target);
  }

  // int32 int32_value = 5;
  if (_internal_has_int32_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(5, this->_internal_int32_value(), target);
  }

  // uint32 uint32_value = 6;
  if (_internal_has_uint32_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(6, this->_internal_uint32_value(), target);
  }

  // int64 int64_value = 7;
  if (_internal_has_int64_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_int64_value(), target);
  }

  // uint64 uint64_value = 8;
  if (_internal_has_uint64_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(8, this->_internal_uint64_value(), target);
  }

  // float float_value = 9;
  if (_internal_has_float_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(9, this->_internal_float_value(), target);
  }

  // double double_value = 10;
  if (_internal_has_double_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(10, this->_internal_double_value(), target);
  }

  // string string_value = 11;
  if (_internal_has_string_value()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_string_value().data(), static_cast<int>(this->_internal_string_value().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.AttrValue.string_value");
    target = stream->WriteStringMaybeAliased(
        11, this->_internal_string_value(), target);
  }

  // .serial_v2.Bytes bytes_value = 12;
  if (_internal_has_bytes_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(12, _Internal::bytes_value(this),
        _Internal::bytes_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.BoolVec bool_vec_value = 13;
  if (_internal_has_bool_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(13, _Internal::bool_vec_value(this),
        _Internal::bool_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.Int32Vec int32_vec_value = 14;
  if (_internal_has_int32_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(14, _Internal::int32_vec_value(this),
        _Internal::int32_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.Uint32Vec uint32_vec_value = 15;
  if (_internal_has_uint32_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(15, _Internal::uint32_vec_value(this),
        _Internal::uint32_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.Int64Vec int64_vec_value = 16;
  if (_internal_has_int64_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(16, _Internal::int64_vec_value(this),
        _Internal::int64_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.Uint64Vec uint64_vec_value = 17;
  if (_internal_has_uint64_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(17, _Internal::uint64_vec_value(this),
        _Internal::uint64_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.FloatVec float_vec_value = 18;
  if (_internal_has_float_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(18, _Internal::float_vec_value(this),
        _Internal::float_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.DoubleVec double_vec_value = 19;
  if (_internal_has_double_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(19, _Internal::double_vec_value(this),
        _Internal::double_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.StringVec string_vec_value = 20;
  if (_internal_has_string_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(20, _Internal::string_vec_value(this),
        _Internal::string_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.BytesVec bytes_vec_value = 21;
  if (_internal_has_bytes_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(21, _Internal::bytes_vec_value(this),
        _Internal::bytes_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2Int32 map_string_2_int32_value = 22;
  if (_internal_has_map_string_2_int32_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(22, _Internal::map_string_2_int32_value(this),
        _Internal::map_string_2_int32_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2Uint32 map_string_2_uint32_value = 23;
  if (_internal_has_map_string_2_uint32_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(23, _Internal::map_string_2_uint32_value(this),
        _Internal::map_string_2_uint32_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2Int64 map_string_2_int64_value = 24;
  if (_internal_has_map_string_2_int64_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(24, _Internal::map_string_2_int64_value(this),
        _Internal::map_string_2_int64_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2Uint64 map_string_2_uint64_value = 25;
  if (_internal_has_map_string_2_uint64_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(25, _Internal::map_string_2_uint64_value(this),
        _Internal::map_string_2_uint64_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2String map_string_2_string_value = 26;
  if (_internal_has_map_string_2_string_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(26, _Internal::map_string_2_string_value(this),
        _Internal::map_string_2_string_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2Bytes map_string_2_bytes_value = 27;
  if (_internal_has_map_string_2_bytes_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(27, _Internal::map_string_2_bytes_value(this),
        _Internal::map_string_2_bytes_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2Int32Vec map_string_2_int32_vec_value = 28;
  if (_internal_has_map_string_2_int32_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(28, _Internal::map_string_2_int32_vec_value(this),
        _Internal::map_string_2_int32_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2Uint32Vec map_string_2_uint32_vec_value = 29;
  if (_internal_has_map_string_2_uint32_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(29, _Internal::map_string_2_uint32_vec_value(this),
        _Internal::map_string_2_uint32_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2Int64Vec map_string_2_int64_vec_value = 30;
  if (_internal_has_map_string_2_int64_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(30, _Internal::map_string_2_int64_vec_value(this),
        _Internal::map_string_2_int64_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2Uint64Vec map_string_2_uint64_vec_value = 31;
  if (_internal_has_map_string_2_uint64_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(31, _Internal::map_string_2_uint64_vec_value(this),
        _Internal::map_string_2_uint64_vec_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v2.MapString2StringVec map_string_2_string_vec_value = 32;
  if (_internal_has_map_string_2_string_vec_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(32, _Internal::map_string_2_string_vec_value(this),
        _Internal::map_string_2_string_vec_value(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.AttrValue)
  return target;
}

size_t AttrValue::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.AttrValue)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (value_case()) {
    // bool bool_value = 4;
    case kBoolValue: {
      total_size += 1 + 1;
      break;
    }
    // int32 int32_value = 5;
    case kInt32Value: {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_int32_value());
      break;
    }
    // uint32 uint32_value = 6;
    case kUint32Value: {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_uint32_value());
      break;
    }
    // int64 int64_value = 7;
    case kInt64Value: {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_int64_value());
      break;
    }
    // uint64 uint64_value = 8;
    case kUint64Value: {
      total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_uint64_value());
      break;
    }
    // float float_value = 9;
    case kFloatValue: {
      total_size += 1 + 4;
      break;
    }
    // double double_value = 10;
    case kDoubleValue: {
      total_size += 1 + 8;
      break;
    }
    // string string_value = 11;
    case kStringValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_string_value());
      break;
    }
    // .serial_v2.Bytes bytes_value = 12;
    case kBytesValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.bytes_value_);
      break;
    }
    // .serial_v2.BoolVec bool_vec_value = 13;
    case kBoolVecValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.bool_vec_value_);
      break;
    }
    // .serial_v2.Int32Vec int32_vec_value = 14;
    case kInt32VecValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.int32_vec_value_);
      break;
    }
    // .serial_v2.Uint32Vec uint32_vec_value = 15;
    case kUint32VecValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.uint32_vec_value_);
      break;
    }
    // .serial_v2.Int64Vec int64_vec_value = 16;
    case kInt64VecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.int64_vec_value_);
      break;
    }
    // .serial_v2.Uint64Vec uint64_vec_value = 17;
    case kUint64VecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.uint64_vec_value_);
      break;
    }
    // .serial_v2.FloatVec float_vec_value = 18;
    case kFloatVecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.float_vec_value_);
      break;
    }
    // .serial_v2.DoubleVec double_vec_value = 19;
    case kDoubleVecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.double_vec_value_);
      break;
    }
    // .serial_v2.StringVec string_vec_value = 20;
    case kStringVecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.string_vec_value_);
      break;
    }
    // .serial_v2.BytesVec bytes_vec_value = 21;
    case kBytesVecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.bytes_vec_value_);
      break;
    }
    // .serial_v2.MapString2Int32 map_string_2_int32_value = 22;
    case kMapString2Int32Value: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_int32_value_);
      break;
    }
    // .serial_v2.MapString2Uint32 map_string_2_uint32_value = 23;
    case kMapString2Uint32Value: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_uint32_value_);
      break;
    }
    // .serial_v2.MapString2Int64 map_string_2_int64_value = 24;
    case kMapString2Int64Value: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_int64_value_);
      break;
    }
    // .serial_v2.MapString2Uint64 map_string_2_uint64_value = 25;
    case kMapString2Uint64Value: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_uint64_value_);
      break;
    }
    // .serial_v2.MapString2String map_string_2_string_value = 26;
    case kMapString2StringValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_string_value_);
      break;
    }
    // .serial_v2.MapString2Bytes map_string_2_bytes_value = 27;
    case kMapString2BytesValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_bytes_value_);
      break;
    }
    // .serial_v2.MapString2Int32Vec map_string_2_int32_vec_value = 28;
    case kMapString2Int32VecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_int32_vec_value_);
      break;
    }
    // .serial_v2.MapString2Uint32Vec map_string_2_uint32_vec_value = 29;
    case kMapString2Uint32VecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_uint32_vec_value_);
      break;
    }
    // .serial_v2.MapString2Int64Vec map_string_2_int64_vec_value = 30;
    case kMapString2Int64VecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_int64_vec_value_);
      break;
    }
    // .serial_v2.MapString2Uint64Vec map_string_2_uint64_vec_value = 31;
    case kMapString2Uint64VecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_uint64_vec_value_);
      break;
    }
    // .serial_v2.MapString2StringVec map_string_2_string_vec_value = 32;
    case kMapString2StringVecValue: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.value_.map_string_2_string_vec_value_);
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AttrValue::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AttrValue::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AttrValue::GetClassData() const { return &_class_data_; }


void AttrValue::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AttrValue*>(&to_msg);
  auto& from = static_cast<const AttrValue&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.AttrValue)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.value_case()) {
    case kBoolValue: {
      _this->_internal_set_bool_value(from._internal_bool_value());
      break;
    }
    case kInt32Value: {
      _this->_internal_set_int32_value(from._internal_int32_value());
      break;
    }
    case kUint32Value: {
      _this->_internal_set_uint32_value(from._internal_uint32_value());
      break;
    }
    case kInt64Value: {
      _this->_internal_set_int64_value(from._internal_int64_value());
      break;
    }
    case kUint64Value: {
      _this->_internal_set_uint64_value(from._internal_uint64_value());
      break;
    }
    case kFloatValue: {
      _this->_internal_set_float_value(from._internal_float_value());
      break;
    }
    case kDoubleValue: {
      _this->_internal_set_double_value(from._internal_double_value());
      break;
    }
    case kStringValue: {
      _this->_internal_set_string_value(from._internal_string_value());
      break;
    }
    case kBytesValue: {
      _this->_internal_mutable_bytes_value()->::serial_v2::Bytes::MergeFrom(
          from._internal_bytes_value());
      break;
    }
    case kBoolVecValue: {
      _this->_internal_mutable_bool_vec_value()->::serial_v2::BoolVec::MergeFrom(
          from._internal_bool_vec_value());
      break;
    }
    case kInt32VecValue: {
      _this->_internal_mutable_int32_vec_value()->::serial_v2::Int32Vec::MergeFrom(
          from._internal_int32_vec_value());
      break;
    }
    case kUint32VecValue: {
      _this->_internal_mutable_uint32_vec_value()->::serial_v2::Uint32Vec::MergeFrom(
          from._internal_uint32_vec_value());
      break;
    }
    case kInt64VecValue: {
      _this->_internal_mutable_int64_vec_value()->::serial_v2::Int64Vec::MergeFrom(
          from._internal_int64_vec_value());
      break;
    }
    case kUint64VecValue: {
      _this->_internal_mutable_uint64_vec_value()->::serial_v2::Uint64Vec::MergeFrom(
          from._internal_uint64_vec_value());
      break;
    }
    case kFloatVecValue: {
      _this->_internal_mutable_float_vec_value()->::serial_v2::FloatVec::MergeFrom(
          from._internal_float_vec_value());
      break;
    }
    case kDoubleVecValue: {
      _this->_internal_mutable_double_vec_value()->::serial_v2::DoubleVec::MergeFrom(
          from._internal_double_vec_value());
      break;
    }
    case kStringVecValue: {
      _this->_internal_mutable_string_vec_value()->::serial_v2::StringVec::MergeFrom(
          from._internal_string_vec_value());
      break;
    }
    case kBytesVecValue: {
      _this->_internal_mutable_bytes_vec_value()->::serial_v2::BytesVec::MergeFrom(
          from._internal_bytes_vec_value());
      break;
    }
    case kMapString2Int32Value: {
      _this->_internal_mutable_map_string_2_int32_value()->::serial_v2::MapString2Int32::MergeFrom(
          from._internal_map_string_2_int32_value());
      break;
    }
    case kMapString2Uint32Value: {
      _this->_internal_mutable_map_string_2_uint32_value()->::serial_v2::MapString2Uint32::MergeFrom(
          from._internal_map_string_2_uint32_value());
      break;
    }
    case kMapString2Int64Value: {
      _this->_internal_mutable_map_string_2_int64_value()->::serial_v2::MapString2Int64::MergeFrom(
          from._internal_map_string_2_int64_value());
      break;
    }
    case kMapString2Uint64Value: {
      _this->_internal_mutable_map_string_2_uint64_value()->::serial_v2::MapString2Uint64::MergeFrom(
          from._internal_map_string_2_uint64_value());
      break;
    }
    case kMapString2StringValue: {
      _this->_internal_mutable_map_string_2_string_value()->::serial_v2::MapString2String::MergeFrom(
          from._internal_map_string_2_string_value());
      break;
    }
    case kMapString2BytesValue: {
      _this->_internal_mutable_map_string_2_bytes_value()->::serial_v2::MapString2Bytes::MergeFrom(
          from._internal_map_string_2_bytes_value());
      break;
    }
    case kMapString2Int32VecValue: {
      _this->_internal_mutable_map_string_2_int32_vec_value()->::serial_v2::MapString2Int32Vec::MergeFrom(
          from._internal_map_string_2_int32_vec_value());
      break;
    }
    case kMapString2Uint32VecValue: {
      _this->_internal_mutable_map_string_2_uint32_vec_value()->::serial_v2::MapString2Uint32Vec::MergeFrom(
          from._internal_map_string_2_uint32_vec_value());
      break;
    }
    case kMapString2Int64VecValue: {
      _this->_internal_mutable_map_string_2_int64_vec_value()->::serial_v2::MapString2Int64Vec::MergeFrom(
          from._internal_map_string_2_int64_vec_value());
      break;
    }
    case kMapString2Uint64VecValue: {
      _this->_internal_mutable_map_string_2_uint64_vec_value()->::serial_v2::MapString2Uint64Vec::MergeFrom(
          from._internal_map_string_2_uint64_vec_value());
      break;
    }
    case kMapString2StringVecValue: {
      _this->_internal_mutable_map_string_2_string_vec_value()->::serial_v2::MapString2StringVec::MergeFrom(
          from._internal_map_string_2_string_vec_value());
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void AttrValue::CopyFrom(const AttrValue& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.AttrValue)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AttrValue::IsInitialized() const {
  return true;
}

void AttrValue::InternalSwap(AttrValue* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.value_, other->_impl_.value_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata AttrValue::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[12]);
}

// ===================================================================

class Bytes::_Internal {
 public:
};

Bytes::Bytes(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.Bytes)
}
Bytes::Bytes(const Bytes& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Bytes* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_value().empty()) {
    _this->_impl_.value_.Set(from._internal_value(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:serial_v2.Bytes)
}

inline void Bytes::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

Bytes::~Bytes() {
  // @@protoc_insertion_point(destructor:serial_v2.Bytes)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Bytes::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destroy();
}

void Bytes::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Bytes::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.Bytes)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Bytes::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bytes value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Bytes::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.Bytes)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bytes value = 1;
  if (!this->_internal_value().empty()) {
    target = stream->WriteBytesMaybeAliased(
        1, this->_internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.Bytes)
  return target;
}

size_t Bytes::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.Bytes)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // bytes value = 1;
  if (!this->_internal_value().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_value());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Bytes::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Bytes::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Bytes::GetClassData() const { return &_class_data_; }


void Bytes::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Bytes*>(&to_msg);
  auto& from = static_cast<const Bytes&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.Bytes)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_value().empty()) {
    _this->_internal_set_value(from._internal_value());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Bytes::CopyFrom(const Bytes& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.Bytes)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bytes::IsInitialized() const {
  return true;
}

void Bytes::InternalSwap(Bytes* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.value_, lhs_arena,
      &other->_impl_.value_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata Bytes::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[13]);
}

// ===================================================================

class BoolVec::_Internal {
 public:
};

BoolVec::BoolVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.BoolVec)
}
BoolVec::BoolVec(const BoolVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  BoolVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.BoolVec)
}

inline void BoolVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

BoolVec::~BoolVec() {
  // @@protoc_insertion_point(destructor:serial_v2.BoolVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void BoolVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void BoolVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void BoolVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.BoolVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* BoolVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated bool value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedBoolParser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* BoolVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.BoolVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated bool value = 1;
  if (this->_internal_value_size() > 0) {
    target = stream->WriteFixedPacked(1, _internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.BoolVec)
  return target;
}

size_t BoolVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.BoolVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated bool value = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_value_size());
    size_t data_size = 1UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData BoolVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    BoolVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*BoolVec::GetClassData() const { return &_class_data_; }


void BoolVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<BoolVec*>(&to_msg);
  auto& from = static_cast<const BoolVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.BoolVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void BoolVec::CopyFrom(const BoolVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.BoolVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool BoolVec::IsInitialized() const {
  return true;
}

void BoolVec::InternalSwap(BoolVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata BoolVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[14]);
}

// ===================================================================

class Int32Vec::_Internal {
 public:
};

Int32Vec::Int32Vec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.Int32Vec)
}
Int32Vec::Int32Vec(const Int32Vec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Int32Vec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.Int32Vec)
}

inline void Int32Vec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

Int32Vec::~Int32Vec() {
  // @@protoc_insertion_point(destructor:serial_v2.Int32Vec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Int32Vec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void Int32Vec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Int32Vec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.Int32Vec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Int32Vec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated int32 value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Int32Vec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.Int32Vec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated int32 value = 1;
  {
    int byte_size = _impl_._value_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          1, _internal_value(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.Int32Vec)
  return target;
}

size_t Int32Vec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.Int32Vec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 value = 1;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->_impl_.value_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._value_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Int32Vec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Int32Vec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Int32Vec::GetClassData() const { return &_class_data_; }


void Int32Vec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Int32Vec*>(&to_msg);
  auto& from = static_cast<const Int32Vec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.Int32Vec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Int32Vec::CopyFrom(const Int32Vec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.Int32Vec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Int32Vec::IsInitialized() const {
  return true;
}

void Int32Vec::InternalSwap(Int32Vec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Int32Vec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[15]);
}

// ===================================================================

class Uint32Vec::_Internal {
 public:
};

Uint32Vec::Uint32Vec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.Uint32Vec)
}
Uint32Vec::Uint32Vec(const Uint32Vec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Uint32Vec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.Uint32Vec)
}

inline void Uint32Vec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

Uint32Vec::~Uint32Vec() {
  // @@protoc_insertion_point(destructor:serial_v2.Uint32Vec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Uint32Vec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void Uint32Vec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Uint32Vec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.Uint32Vec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Uint32Vec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated uint32 value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Uint32Vec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.Uint32Vec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated uint32 value = 1;
  {
    int byte_size = _impl_._value_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          1, _internal_value(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.Uint32Vec)
  return target;
}

size_t Uint32Vec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.Uint32Vec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated uint32 value = 1;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt32Size(this->_impl_.value_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._value_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Uint32Vec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Uint32Vec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Uint32Vec::GetClassData() const { return &_class_data_; }


void Uint32Vec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Uint32Vec*>(&to_msg);
  auto& from = static_cast<const Uint32Vec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.Uint32Vec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Uint32Vec::CopyFrom(const Uint32Vec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.Uint32Vec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Uint32Vec::IsInitialized() const {
  return true;
}

void Uint32Vec::InternalSwap(Uint32Vec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Uint32Vec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[16]);
}

// ===================================================================

class Int64Vec::_Internal {
 public:
};

Int64Vec::Int64Vec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.Int64Vec)
}
Int64Vec::Int64Vec(const Int64Vec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Int64Vec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.Int64Vec)
}

inline void Int64Vec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

Int64Vec::~Int64Vec() {
  // @@protoc_insertion_point(destructor:serial_v2.Int64Vec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Int64Vec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void Int64Vec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Int64Vec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.Int64Vec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Int64Vec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated int64 value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Int64Vec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.Int64Vec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated int64 value = 1;
  {
    int byte_size = _impl_._value_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt64Packed(
          1, _internal_value(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.Int64Vec)
  return target;
}

size_t Int64Vec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.Int64Vec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int64 value = 1;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int64Size(this->_impl_.value_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._value_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Int64Vec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Int64Vec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Int64Vec::GetClassData() const { return &_class_data_; }


void Int64Vec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Int64Vec*>(&to_msg);
  auto& from = static_cast<const Int64Vec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.Int64Vec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Int64Vec::CopyFrom(const Int64Vec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.Int64Vec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Int64Vec::IsInitialized() const {
  return true;
}

void Int64Vec::InternalSwap(Int64Vec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Int64Vec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[17]);
}

// ===================================================================

class Uint64Vec::_Internal {
 public:
};

Uint64Vec::Uint64Vec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.Uint64Vec)
}
Uint64Vec::Uint64Vec(const Uint64Vec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Uint64Vec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.Uint64Vec)
}

inline void Uint64Vec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

Uint64Vec::~Uint64Vec() {
  // @@protoc_insertion_point(destructor:serial_v2.Uint64Vec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Uint64Vec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void Uint64Vec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Uint64Vec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.Uint64Vec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Uint64Vec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated uint64 value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt64Parser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Uint64Vec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.Uint64Vec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated uint64 value = 1;
  {
    int byte_size = _impl_._value_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt64Packed(
          1, _internal_value(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.Uint64Vec)
  return target;
}

size_t Uint64Vec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.Uint64Vec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated uint64 value = 1;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt64Size(this->_impl_.value_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._value_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Uint64Vec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Uint64Vec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Uint64Vec::GetClassData() const { return &_class_data_; }


void Uint64Vec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Uint64Vec*>(&to_msg);
  auto& from = static_cast<const Uint64Vec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.Uint64Vec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Uint64Vec::CopyFrom(const Uint64Vec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.Uint64Vec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Uint64Vec::IsInitialized() const {
  return true;
}

void Uint64Vec::InternalSwap(Uint64Vec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Uint64Vec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[18]);
}

// ===================================================================

class FloatVec::_Internal {
 public:
};

FloatVec::FloatVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.FloatVec)
}
FloatVec::FloatVec(const FloatVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  FloatVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.FloatVec)
}

inline void FloatVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

FloatVec::~FloatVec() {
  // @@protoc_insertion_point(destructor:serial_v2.FloatVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void FloatVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void FloatVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void FloatVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.FloatVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FloatVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated float value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 13) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* FloatVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.FloatVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated float value = 1;
  if (this->_internal_value_size() > 0) {
    target = stream->WriteFixedPacked(1, _internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.FloatVec)
  return target;
}

size_t FloatVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.FloatVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float value = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_value_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FloatVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    FloatVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FloatVec::GetClassData() const { return &_class_data_; }


void FloatVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<FloatVec*>(&to_msg);
  auto& from = static_cast<const FloatVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.FloatVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void FloatVec::CopyFrom(const FloatVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.FloatVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FloatVec::IsInitialized() const {
  return true;
}

void FloatVec::InternalSwap(FloatVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata FloatVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[19]);
}

// ===================================================================

class DoubleVec::_Internal {
 public:
};

DoubleVec::DoubleVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.DoubleVec)
}
DoubleVec::DoubleVec(const DoubleVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  DoubleVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.DoubleVec)
}

inline void DoubleVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

DoubleVec::~DoubleVec() {
  // @@protoc_insertion_point(destructor:serial_v2.DoubleVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void DoubleVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void DoubleVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void DoubleVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.DoubleVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DoubleVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated double value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedDoubleParser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 9) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* DoubleVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.DoubleVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated double value = 1;
  if (this->_internal_value_size() > 0) {
    target = stream->WriteFixedPacked(1, _internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.DoubleVec)
  return target;
}

size_t DoubleVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.DoubleVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated double value = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_value_size());
    size_t data_size = 8UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DoubleVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    DoubleVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DoubleVec::GetClassData() const { return &_class_data_; }


void DoubleVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<DoubleVec*>(&to_msg);
  auto& from = static_cast<const DoubleVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.DoubleVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void DoubleVec::CopyFrom(const DoubleVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.DoubleVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DoubleVec::IsInitialized() const {
  return true;
}

void DoubleVec::InternalSwap(DoubleVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata DoubleVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[20]);
}

// ===================================================================

class StringVec::_Internal {
 public:
};

StringVec::StringVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.StringVec)
}
StringVec::StringVec(const StringVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  StringVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.StringVec)
}

inline void StringVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

StringVec::~StringVec() {
  // @@protoc_insertion_point(destructor:serial_v2.StringVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void StringVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedPtrField();
}

void StringVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void StringVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.StringVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* StringVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_value();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "serial_v2.StringVec.value"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* StringVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.StringVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string value = 1;
  for (int i = 0, n = this->_internal_value_size(); i < n; i++) {
    const auto& s = this->_internal_value(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v2.StringVec.value");
    target = stream->WriteString(1, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.StringVec)
  return target;
}

size_t StringVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.StringVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.value_.size());
  for (int i = 0, n = _impl_.value_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.value_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData StringVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    StringVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*StringVec::GetClassData() const { return &_class_data_; }


void StringVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<StringVec*>(&to_msg);
  auto& from = static_cast<const StringVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.StringVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void StringVec::CopyFrom(const StringVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.StringVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StringVec::IsInitialized() const {
  return true;
}

void StringVec::InternalSwap(StringVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata StringVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[21]);
}

// ===================================================================

class BytesVec::_Internal {
 public:
};

BytesVec::BytesVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v2.BytesVec)
}
BytesVec::BytesVec(const BytesVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  BytesVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.BytesVec)
}

inline void BytesVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

BytesVec::~BytesVec() {
  // @@protoc_insertion_point(destructor:serial_v2.BytesVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void BytesVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedPtrField();
}

void BytesVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void BytesVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.BytesVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* BytesVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .serial_v2.Bytes value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_value(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* BytesVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.BytesVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .serial_v2.Bytes value = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_value_size()); i < n; i++) {
    const auto& repfield = this->_internal_value(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.BytesVec)
  return target;
}

size_t BytesVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.BytesVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v2.Bytes value = 1;
  total_size += 1UL * this->_internal_value_size();
  for (const auto& msg : this->_impl_.value_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData BytesVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    BytesVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*BytesVec::GetClassData() const { return &_class_data_; }


void BytesVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<BytesVec*>(&to_msg);
  auto& from = static_cast<const BytesVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.BytesVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void BytesVec::CopyFrom(const BytesVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.BytesVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool BytesVec::IsInitialized() const {
  return true;
}

void BytesVec::InternalSwap(BytesVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata BytesVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[22]);
}

// ===================================================================

MapString2Int32_ValueEntry_DoNotUse::MapString2Int32_ValueEntry_DoNotUse() {}
MapString2Int32_ValueEntry_DoNotUse::MapString2Int32_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2Int32_ValueEntry_DoNotUse::MergeFrom(const MapString2Int32_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2Int32_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[23]);
}

// ===================================================================

class MapString2Int32::_Internal {
 public:
};

MapString2Int32::MapString2Int32(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2Int32::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2Int32)
}
MapString2Int32::MapString2Int32(const MapString2Int32& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2Int32* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2Int32)
}

inline void MapString2Int32::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2Int32::~MapString2Int32() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2Int32)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2Int32::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2Int32::ArenaDtor(void* object) {
  MapString2Int32* _this = reinterpret_cast< MapString2Int32* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2Int32::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2Int32::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2Int32)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2Int32::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, int32> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2Int32::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2Int32)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, int32> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, int32_t>;
    using WireHelper = MapString2Int32_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2Int32.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2Int32)
  return target;
}

size_t MapString2Int32::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2Int32)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, int32> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, int32_t >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2Int32_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2Int32::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2Int32::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2Int32::GetClassData() const { return &_class_data_; }


void MapString2Int32::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2Int32*>(&to_msg);
  auto& from = static_cast<const MapString2Int32&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2Int32)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2Int32::CopyFrom(const MapString2Int32& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2Int32)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2Int32::IsInitialized() const {
  return true;
}

void MapString2Int32::InternalSwap(MapString2Int32* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2Int32::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[24]);
}

// ===================================================================

MapString2Uint32_ValueEntry_DoNotUse::MapString2Uint32_ValueEntry_DoNotUse() {}
MapString2Uint32_ValueEntry_DoNotUse::MapString2Uint32_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2Uint32_ValueEntry_DoNotUse::MergeFrom(const MapString2Uint32_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2Uint32_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[25]);
}

// ===================================================================

class MapString2Uint32::_Internal {
 public:
};

MapString2Uint32::MapString2Uint32(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2Uint32::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2Uint32)
}
MapString2Uint32::MapString2Uint32(const MapString2Uint32& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2Uint32* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2Uint32)
}

inline void MapString2Uint32::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2Uint32::~MapString2Uint32() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2Uint32)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2Uint32::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2Uint32::ArenaDtor(void* object) {
  MapString2Uint32* _this = reinterpret_cast< MapString2Uint32* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2Uint32::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2Uint32::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2Uint32)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2Uint32::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, uint32> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2Uint32::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2Uint32)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, uint32> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, uint32_t>;
    using WireHelper = MapString2Uint32_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2Uint32.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2Uint32)
  return target;
}

size_t MapString2Uint32::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2Uint32)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, uint32> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, uint32_t >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2Uint32_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2Uint32::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2Uint32::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2Uint32::GetClassData() const { return &_class_data_; }


void MapString2Uint32::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2Uint32*>(&to_msg);
  auto& from = static_cast<const MapString2Uint32&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2Uint32)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2Uint32::CopyFrom(const MapString2Uint32& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2Uint32)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2Uint32::IsInitialized() const {
  return true;
}

void MapString2Uint32::InternalSwap(MapString2Uint32* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2Uint32::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[26]);
}

// ===================================================================

MapString2Int64_ValueEntry_DoNotUse::MapString2Int64_ValueEntry_DoNotUse() {}
MapString2Int64_ValueEntry_DoNotUse::MapString2Int64_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2Int64_ValueEntry_DoNotUse::MergeFrom(const MapString2Int64_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2Int64_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[27]);
}

// ===================================================================

class MapString2Int64::_Internal {
 public:
};

MapString2Int64::MapString2Int64(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2Int64::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2Int64)
}
MapString2Int64::MapString2Int64(const MapString2Int64& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2Int64* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2Int64)
}

inline void MapString2Int64::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2Int64::~MapString2Int64() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2Int64)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2Int64::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2Int64::ArenaDtor(void* object) {
  MapString2Int64* _this = reinterpret_cast< MapString2Int64* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2Int64::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2Int64::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2Int64)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2Int64::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, int64> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2Int64::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2Int64)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, int64> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, int64_t>;
    using WireHelper = MapString2Int64_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2Int64.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2Int64)
  return target;
}

size_t MapString2Int64::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2Int64)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, int64> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, int64_t >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2Int64_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2Int64::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2Int64::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2Int64::GetClassData() const { return &_class_data_; }


void MapString2Int64::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2Int64*>(&to_msg);
  auto& from = static_cast<const MapString2Int64&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2Int64)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2Int64::CopyFrom(const MapString2Int64& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2Int64)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2Int64::IsInitialized() const {
  return true;
}

void MapString2Int64::InternalSwap(MapString2Int64* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2Int64::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[28]);
}

// ===================================================================

MapString2Uint64_ValueEntry_DoNotUse::MapString2Uint64_ValueEntry_DoNotUse() {}
MapString2Uint64_ValueEntry_DoNotUse::MapString2Uint64_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2Uint64_ValueEntry_DoNotUse::MergeFrom(const MapString2Uint64_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2Uint64_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[29]);
}

// ===================================================================

class MapString2Uint64::_Internal {
 public:
};

MapString2Uint64::MapString2Uint64(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2Uint64::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2Uint64)
}
MapString2Uint64::MapString2Uint64(const MapString2Uint64& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2Uint64* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2Uint64)
}

inline void MapString2Uint64::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2Uint64::~MapString2Uint64() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2Uint64)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2Uint64::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2Uint64::ArenaDtor(void* object) {
  MapString2Uint64* _this = reinterpret_cast< MapString2Uint64* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2Uint64::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2Uint64::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2Uint64)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2Uint64::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, uint64> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2Uint64::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2Uint64)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, uint64> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, uint64_t>;
    using WireHelper = MapString2Uint64_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2Uint64.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2Uint64)
  return target;
}

size_t MapString2Uint64::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2Uint64)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, uint64> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, uint64_t >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2Uint64_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2Uint64::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2Uint64::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2Uint64::GetClassData() const { return &_class_data_; }


void MapString2Uint64::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2Uint64*>(&to_msg);
  auto& from = static_cast<const MapString2Uint64&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2Uint64)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2Uint64::CopyFrom(const MapString2Uint64& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2Uint64)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2Uint64::IsInitialized() const {
  return true;
}

void MapString2Uint64::InternalSwap(MapString2Uint64* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2Uint64::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[30]);
}

// ===================================================================

MapString2Bytes_ValueEntry_DoNotUse::MapString2Bytes_ValueEntry_DoNotUse() {}
MapString2Bytes_ValueEntry_DoNotUse::MapString2Bytes_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2Bytes_ValueEntry_DoNotUse::MergeFrom(const MapString2Bytes_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2Bytes_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[31]);
}

// ===================================================================

class MapString2Bytes::_Internal {
 public:
};

MapString2Bytes::MapString2Bytes(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2Bytes::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2Bytes)
}
MapString2Bytes::MapString2Bytes(const MapString2Bytes& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2Bytes* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2Bytes)
}

inline void MapString2Bytes::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2Bytes::~MapString2Bytes() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2Bytes)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2Bytes::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2Bytes::ArenaDtor(void* object) {
  MapString2Bytes* _this = reinterpret_cast< MapString2Bytes* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2Bytes::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2Bytes::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2Bytes)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2Bytes::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, .serial_v2.Bytes> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2Bytes::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2Bytes)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .serial_v2.Bytes> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::Bytes>;
    using WireHelper = MapString2Bytes_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2Bytes.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2Bytes)
  return target;
}

size_t MapString2Bytes::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2Bytes)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .serial_v2.Bytes> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::Bytes >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2Bytes_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2Bytes::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2Bytes::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2Bytes::GetClassData() const { return &_class_data_; }


void MapString2Bytes::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2Bytes*>(&to_msg);
  auto& from = static_cast<const MapString2Bytes&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2Bytes)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2Bytes::CopyFrom(const MapString2Bytes& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2Bytes)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2Bytes::IsInitialized() const {
  return true;
}

void MapString2Bytes::InternalSwap(MapString2Bytes* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2Bytes::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[32]);
}

// ===================================================================

MapString2String_ValueEntry_DoNotUse::MapString2String_ValueEntry_DoNotUse() {}
MapString2String_ValueEntry_DoNotUse::MapString2String_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2String_ValueEntry_DoNotUse::MergeFrom(const MapString2String_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2String_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[33]);
}

// ===================================================================

class MapString2String::_Internal {
 public:
};

MapString2String::MapString2String(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2String::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2String)
}
MapString2String::MapString2String(const MapString2String& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2String* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2String)
}

inline void MapString2String::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2String::~MapString2String() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2String)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2String::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2String::ArenaDtor(void* object) {
  MapString2String* _this = reinterpret_cast< MapString2String* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2String::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2String::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2String)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2String::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, string> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2String::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2String)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, string> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, std::string>;
    using WireHelper = MapString2String_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2String.ValueEntry.key");
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.second.data(), static_cast<int>(entry.second.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2String.ValueEntry.value");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2String)
  return target;
}

size_t MapString2String::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2String)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, string> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2String_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2String::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2String::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2String::GetClassData() const { return &_class_data_; }


void MapString2String::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2String*>(&to_msg);
  auto& from = static_cast<const MapString2String&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2String)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2String::CopyFrom(const MapString2String& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2String)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2String::IsInitialized() const {
  return true;
}

void MapString2String::InternalSwap(MapString2String* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2String::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[34]);
}

// ===================================================================

MapString2Int32Vec_ValueEntry_DoNotUse::MapString2Int32Vec_ValueEntry_DoNotUse() {}
MapString2Int32Vec_ValueEntry_DoNotUse::MapString2Int32Vec_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2Int32Vec_ValueEntry_DoNotUse::MergeFrom(const MapString2Int32Vec_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2Int32Vec_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[35]);
}

// ===================================================================

class MapString2Int32Vec::_Internal {
 public:
};

MapString2Int32Vec::MapString2Int32Vec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2Int32Vec::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2Int32Vec)
}
MapString2Int32Vec::MapString2Int32Vec(const MapString2Int32Vec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2Int32Vec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2Int32Vec)
}

inline void MapString2Int32Vec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2Int32Vec::~MapString2Int32Vec() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2Int32Vec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2Int32Vec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2Int32Vec::ArenaDtor(void* object) {
  MapString2Int32Vec* _this = reinterpret_cast< MapString2Int32Vec* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2Int32Vec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2Int32Vec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2Int32Vec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2Int32Vec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, .serial_v2.Int32Vec> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2Int32Vec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2Int32Vec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .serial_v2.Int32Vec> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::Int32Vec>;
    using WireHelper = MapString2Int32Vec_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2Int32Vec.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2Int32Vec)
  return target;
}

size_t MapString2Int32Vec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2Int32Vec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .serial_v2.Int32Vec> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::Int32Vec >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2Int32Vec_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2Int32Vec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2Int32Vec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2Int32Vec::GetClassData() const { return &_class_data_; }


void MapString2Int32Vec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2Int32Vec*>(&to_msg);
  auto& from = static_cast<const MapString2Int32Vec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2Int32Vec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2Int32Vec::CopyFrom(const MapString2Int32Vec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2Int32Vec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2Int32Vec::IsInitialized() const {
  return true;
}

void MapString2Int32Vec::InternalSwap(MapString2Int32Vec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2Int32Vec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[36]);
}

// ===================================================================

MapString2Uint32Vec_ValueEntry_DoNotUse::MapString2Uint32Vec_ValueEntry_DoNotUse() {}
MapString2Uint32Vec_ValueEntry_DoNotUse::MapString2Uint32Vec_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2Uint32Vec_ValueEntry_DoNotUse::MergeFrom(const MapString2Uint32Vec_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2Uint32Vec_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[37]);
}

// ===================================================================

class MapString2Uint32Vec::_Internal {
 public:
};

MapString2Uint32Vec::MapString2Uint32Vec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2Uint32Vec::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2Uint32Vec)
}
MapString2Uint32Vec::MapString2Uint32Vec(const MapString2Uint32Vec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2Uint32Vec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2Uint32Vec)
}

inline void MapString2Uint32Vec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2Uint32Vec::~MapString2Uint32Vec() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2Uint32Vec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2Uint32Vec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2Uint32Vec::ArenaDtor(void* object) {
  MapString2Uint32Vec* _this = reinterpret_cast< MapString2Uint32Vec* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2Uint32Vec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2Uint32Vec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2Uint32Vec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2Uint32Vec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, .serial_v2.Uint32Vec> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2Uint32Vec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2Uint32Vec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .serial_v2.Uint32Vec> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::Uint32Vec>;
    using WireHelper = MapString2Uint32Vec_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2Uint32Vec.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2Uint32Vec)
  return target;
}

size_t MapString2Uint32Vec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2Uint32Vec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .serial_v2.Uint32Vec> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::Uint32Vec >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2Uint32Vec_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2Uint32Vec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2Uint32Vec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2Uint32Vec::GetClassData() const { return &_class_data_; }


void MapString2Uint32Vec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2Uint32Vec*>(&to_msg);
  auto& from = static_cast<const MapString2Uint32Vec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2Uint32Vec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2Uint32Vec::CopyFrom(const MapString2Uint32Vec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2Uint32Vec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2Uint32Vec::IsInitialized() const {
  return true;
}

void MapString2Uint32Vec::InternalSwap(MapString2Uint32Vec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2Uint32Vec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[38]);
}

// ===================================================================

MapString2Int64Vec_ValueEntry_DoNotUse::MapString2Int64Vec_ValueEntry_DoNotUse() {}
MapString2Int64Vec_ValueEntry_DoNotUse::MapString2Int64Vec_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2Int64Vec_ValueEntry_DoNotUse::MergeFrom(const MapString2Int64Vec_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2Int64Vec_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[39]);
}

// ===================================================================

class MapString2Int64Vec::_Internal {
 public:
};

MapString2Int64Vec::MapString2Int64Vec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2Int64Vec::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2Int64Vec)
}
MapString2Int64Vec::MapString2Int64Vec(const MapString2Int64Vec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2Int64Vec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2Int64Vec)
}

inline void MapString2Int64Vec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2Int64Vec::~MapString2Int64Vec() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2Int64Vec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2Int64Vec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2Int64Vec::ArenaDtor(void* object) {
  MapString2Int64Vec* _this = reinterpret_cast< MapString2Int64Vec* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2Int64Vec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2Int64Vec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2Int64Vec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2Int64Vec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, .serial_v2.Int64Vec> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2Int64Vec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2Int64Vec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .serial_v2.Int64Vec> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::Int64Vec>;
    using WireHelper = MapString2Int64Vec_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2Int64Vec.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2Int64Vec)
  return target;
}

size_t MapString2Int64Vec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2Int64Vec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .serial_v2.Int64Vec> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::Int64Vec >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2Int64Vec_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2Int64Vec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2Int64Vec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2Int64Vec::GetClassData() const { return &_class_data_; }


void MapString2Int64Vec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2Int64Vec*>(&to_msg);
  auto& from = static_cast<const MapString2Int64Vec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2Int64Vec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2Int64Vec::CopyFrom(const MapString2Int64Vec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2Int64Vec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2Int64Vec::IsInitialized() const {
  return true;
}

void MapString2Int64Vec::InternalSwap(MapString2Int64Vec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2Int64Vec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[40]);
}

// ===================================================================

MapString2Uint64Vec_ValueEntry_DoNotUse::MapString2Uint64Vec_ValueEntry_DoNotUse() {}
MapString2Uint64Vec_ValueEntry_DoNotUse::MapString2Uint64Vec_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2Uint64Vec_ValueEntry_DoNotUse::MergeFrom(const MapString2Uint64Vec_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2Uint64Vec_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[41]);
}

// ===================================================================

class MapString2Uint64Vec::_Internal {
 public:
};

MapString2Uint64Vec::MapString2Uint64Vec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2Uint64Vec::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2Uint64Vec)
}
MapString2Uint64Vec::MapString2Uint64Vec(const MapString2Uint64Vec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2Uint64Vec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2Uint64Vec)
}

inline void MapString2Uint64Vec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2Uint64Vec::~MapString2Uint64Vec() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2Uint64Vec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2Uint64Vec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2Uint64Vec::ArenaDtor(void* object) {
  MapString2Uint64Vec* _this = reinterpret_cast< MapString2Uint64Vec* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2Uint64Vec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2Uint64Vec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2Uint64Vec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2Uint64Vec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, .serial_v2.Uint64Vec> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2Uint64Vec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2Uint64Vec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .serial_v2.Uint64Vec> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::Uint64Vec>;
    using WireHelper = MapString2Uint64Vec_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2Uint64Vec.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2Uint64Vec)
  return target;
}

size_t MapString2Uint64Vec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2Uint64Vec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .serial_v2.Uint64Vec> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::Uint64Vec >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2Uint64Vec_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2Uint64Vec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2Uint64Vec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2Uint64Vec::GetClassData() const { return &_class_data_; }


void MapString2Uint64Vec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2Uint64Vec*>(&to_msg);
  auto& from = static_cast<const MapString2Uint64Vec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2Uint64Vec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2Uint64Vec::CopyFrom(const MapString2Uint64Vec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2Uint64Vec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2Uint64Vec::IsInitialized() const {
  return true;
}

void MapString2Uint64Vec::InternalSwap(MapString2Uint64Vec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2Uint64Vec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[42]);
}

// ===================================================================

MapString2BytesVec_ValueEntry_DoNotUse::MapString2BytesVec_ValueEntry_DoNotUse() {}
MapString2BytesVec_ValueEntry_DoNotUse::MapString2BytesVec_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2BytesVec_ValueEntry_DoNotUse::MergeFrom(const MapString2BytesVec_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2BytesVec_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[43]);
}

// ===================================================================

class MapString2BytesVec::_Internal {
 public:
};

MapString2BytesVec::MapString2BytesVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2BytesVec::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2BytesVec)
}
MapString2BytesVec::MapString2BytesVec(const MapString2BytesVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2BytesVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2BytesVec)
}

inline void MapString2BytesVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2BytesVec::~MapString2BytesVec() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2BytesVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2BytesVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2BytesVec::ArenaDtor(void* object) {
  MapString2BytesVec* _this = reinterpret_cast< MapString2BytesVec* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2BytesVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2BytesVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2BytesVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2BytesVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, .serial_v2.BytesVec> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2BytesVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2BytesVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .serial_v2.BytesVec> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::BytesVec>;
    using WireHelper = MapString2BytesVec_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2BytesVec.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2BytesVec)
  return target;
}

size_t MapString2BytesVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2BytesVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .serial_v2.BytesVec> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::BytesVec >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2BytesVec_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2BytesVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2BytesVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2BytesVec::GetClassData() const { return &_class_data_; }


void MapString2BytesVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2BytesVec*>(&to_msg);
  auto& from = static_cast<const MapString2BytesVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2BytesVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2BytesVec::CopyFrom(const MapString2BytesVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2BytesVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2BytesVec::IsInitialized() const {
  return true;
}

void MapString2BytesVec::InternalSwap(MapString2BytesVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2BytesVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[44]);
}

// ===================================================================

MapString2StringVec_ValueEntry_DoNotUse::MapString2StringVec_ValueEntry_DoNotUse() {}
MapString2StringVec_ValueEntry_DoNotUse::MapString2StringVec_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void MapString2StringVec_ValueEntry_DoNotUse::MergeFrom(const MapString2StringVec_ValueEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata MapString2StringVec_ValueEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[45]);
}

// ===================================================================

class MapString2StringVec::_Internal {
 public:
};

MapString2StringVec::MapString2StringVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &MapString2StringVec::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:serial_v2.MapString2StringVec)
}
MapString2StringVec::MapString2StringVec(const MapString2StringVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  MapString2StringVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  // @@protoc_insertion_point(copy_constructor:serial_v2.MapString2StringVec)
}

inline void MapString2StringVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      /*decltype(_impl_.value_)*/{::_pbi::ArenaInitialized(), arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

MapString2StringVec::~MapString2StringVec() {
  // @@protoc_insertion_point(destructor:serial_v2.MapString2StringVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void MapString2StringVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.Destruct();
  _impl_.value_.~MapField();
}

void MapString2StringVec::ArenaDtor(void* object) {
  MapString2StringVec* _this = reinterpret_cast< MapString2StringVec* >(object);
  _this->_impl_.value_.Destruct();
}
void MapString2StringVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void MapString2StringVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v2.MapString2StringVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MapString2StringVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, .serial_v2.StringVec> value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&_impl_.value_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MapString2StringVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v2.MapString2StringVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .serial_v2.StringVec> value = 1;
  if (!this->_internal_value().empty()) {
    using MapType = ::_pb::Map<std::string, ::serial_v2::StringVec>;
    using WireHelper = MapString2StringVec_ValueEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_value();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "serial_v2.MapString2StringVec.ValueEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v2.MapString2StringVec)
  return target;
}

size_t MapString2StringVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v2.MapString2StringVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .serial_v2.StringVec> value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::serial_v2::StringVec >::const_iterator
      it = this->_internal_value().begin();
      it != this->_internal_value().end(); ++it) {
    total_size += MapString2StringVec_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapString2StringVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    MapString2StringVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapString2StringVec::GetClassData() const { return &_class_data_; }


void MapString2StringVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<MapString2StringVec*>(&to_msg);
  auto& from = static_cast<const MapString2StringVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v2.MapString2StringVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MapString2StringVec::CopyFrom(const MapString2StringVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v2.MapString2StringVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MapString2StringVec::IsInitialized() const {
  return true;
}

void MapString2StringVec::InternalSwap(MapString2StringVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MapString2StringVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv2_2eproto_getter, &descriptor_table_graph_5fproto_5fv2_2eproto_once,
      file_level_metadata_graph_5fproto_5fv2_2eproto[46]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace serial_v2
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::serial_v2::Graph_GraphAttrEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::Graph_GraphAttrEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::Graph_GraphAttrEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::Graph*
Arena::CreateMaybeMessage< ::serial_v2::Graph >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::Graph >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::OPNode_OpAttrEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::OPNode_OpAttrEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::OPNode_OpAttrEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::OPNode*
Arena::CreateMaybeMessage< ::serial_v2::OPNode >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::OPNode >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::OpArg*
Arena::CreateMaybeMessage< ::serial_v2::OpArg >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::OpArg >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::Tensor_TensorAttrEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::Tensor_TensorAttrEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::Tensor_TensorAttrEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::Tensor*
Arena::CreateMaybeMessage< ::serial_v2::Tensor >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::Tensor >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::SubGraph_SubgAttrEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::SubGraph_SubgAttrEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::SubGraph_SubgAttrEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::SubGraph*
Arena::CreateMaybeMessage< ::serial_v2::SubGraph >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::SubGraph >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::OpDef*
Arena::CreateMaybeMessage< ::serial_v2::OpDef >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::OpDef >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::AttrDef*
Arena::CreateMaybeMessage< ::serial_v2::AttrDef >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::AttrDef >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::OpArgDef*
Arena::CreateMaybeMessage< ::serial_v2::OpArgDef >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::OpArgDef >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::AttrValue*
Arena::CreateMaybeMessage< ::serial_v2::AttrValue >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::AttrValue >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::Bytes*
Arena::CreateMaybeMessage< ::serial_v2::Bytes >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::Bytes >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::BoolVec*
Arena::CreateMaybeMessage< ::serial_v2::BoolVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::BoolVec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::Int32Vec*
Arena::CreateMaybeMessage< ::serial_v2::Int32Vec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::Int32Vec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::Uint32Vec*
Arena::CreateMaybeMessage< ::serial_v2::Uint32Vec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::Uint32Vec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::Int64Vec*
Arena::CreateMaybeMessage< ::serial_v2::Int64Vec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::Int64Vec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::Uint64Vec*
Arena::CreateMaybeMessage< ::serial_v2::Uint64Vec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::Uint64Vec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::FloatVec*
Arena::CreateMaybeMessage< ::serial_v2::FloatVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::FloatVec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::DoubleVec*
Arena::CreateMaybeMessage< ::serial_v2::DoubleVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::DoubleVec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::StringVec*
Arena::CreateMaybeMessage< ::serial_v2::StringVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::StringVec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::BytesVec*
Arena::CreateMaybeMessage< ::serial_v2::BytesVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::BytesVec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Int32_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Int32_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Int32_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Int32*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Int32 >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Int32 >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Uint32_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Uint32_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Uint32_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Uint32*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Uint32 >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Uint32 >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Int64_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Int64_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Int64_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Int64*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Int64 >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Int64 >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Uint64_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Uint64_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Uint64_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Uint64*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Uint64 >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Uint64 >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Bytes_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Bytes_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Bytes_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Bytes*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Bytes >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Bytes >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2String_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2String_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2String_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2String*
Arena::CreateMaybeMessage< ::serial_v2::MapString2String >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2String >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Int32Vec_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Int32Vec_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Int32Vec_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Int32Vec*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Int32Vec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Int32Vec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Uint32Vec_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Uint32Vec_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Uint32Vec_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Uint32Vec*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Uint32Vec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Uint32Vec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Int64Vec_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Int64Vec_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Int64Vec_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Int64Vec*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Int64Vec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Int64Vec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Uint64Vec_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Uint64Vec_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Uint64Vec_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2Uint64Vec*
Arena::CreateMaybeMessage< ::serial_v2::MapString2Uint64Vec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2Uint64Vec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2BytesVec_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2BytesVec_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2BytesVec_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2BytesVec*
Arena::CreateMaybeMessage< ::serial_v2::MapString2BytesVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2BytesVec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2StringVec_ValueEntry_DoNotUse*
Arena::CreateMaybeMessage< ::serial_v2::MapString2StringVec_ValueEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2StringVec_ValueEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v2::MapString2StringVec*
Arena::CreateMaybeMessage< ::serial_v2::MapString2StringVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v2::MapString2StringVec >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
