// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: vitis/ai/proto/dpu_model_param.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3009000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3009002 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[57]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
namespace vitis {
namespace ai {
namespace proto {
class Attribute;
class AttributeDefaultTypeInternal;
extern AttributeDefaultTypeInternal _Attribute_default_instance_;
class AttributeResult;
class AttributeResultDefaultTypeInternal;
extern AttributeResultDefaultTypeInternal _AttributeResult_default_instance_;
class BlinkerParam;
class BlinkerParamDefaultTypeInternal;
extern BlinkerParamDefaultTypeInternal _BlinkerParam_default_instance_;
class BoundingBox;
class BoundingBoxDefaultTypeInternal;
extern BoundingBoxDefaultTypeInternal _BoundingBox_default_instance_;
class ClassificationParam;
class ClassificationParamDefaultTypeInternal;
extern ClassificationParamDefaultTypeInternal _ClassificationParam_default_instance_;
class ClassificationParam_AvgPoolParam;
class ClassificationParam_AvgPoolParamDefaultTypeInternal;
extern ClassificationParam_AvgPoolParamDefaultTypeInternal _ClassificationParam_AvgPoolParam_default_instance_;
class ClassificationResult;
class ClassificationResultDefaultTypeInternal;
extern ClassificationResultDefaultTypeInternal _ClassificationResult_default_instance_;
class DenseBoxParam;
class DenseBoxParamDefaultTypeInternal;
extern DenseBoxParamDefaultTypeInternal _DenseBoxParam_default_instance_;
class DetectResult;
class DetectResultDefaultTypeInternal;
extern DetectResultDefaultTypeInternal _DetectResult_default_instance_;
class DpuKernelParam;
class DpuKernelParamDefaultTypeInternal;
extern DpuKernelParamDefaultTypeInternal _DpuKernelParam_default_instance_;
class DpuModelParam;
class DpuModelParamDefaultTypeInternal;
extern DpuModelParamDefaultTypeInternal _DpuModelParam_default_instance_;
class DpuModelParamList;
class DpuModelParamListDefaultTypeInternal;
extern DpuModelParamListDefaultTypeInternal _DpuModelParamList_default_instance_;
class DpuModelResult;
class DpuModelResultDefaultTypeInternal;
extern DpuModelResultDefaultTypeInternal _DpuModelResult_default_instance_;
class FaceDetectRecogFixedResult;
class FaceDetectRecogFixedResultDefaultTypeInternal;
extern FaceDetectRecogFixedResultDefaultTypeInternal _FaceDetectRecogFixedResult_default_instance_;
class FaceDetectRecogFloatResult;
class FaceDetectRecogFloatResultDefaultTypeInternal;
extern FaceDetectRecogFloatResultDefaultTypeInternal _FaceDetectRecogFloatResult_default_instance_;
class FaceFeatureFixedResult;
class FaceFeatureFixedResultDefaultTypeInternal;
extern FaceFeatureFixedResultDefaultTypeInternal _FaceFeatureFixedResult_default_instance_;
class FaceFeatureFloatResult;
class FaceFeatureFloatResultDefaultTypeInternal;
extern FaceFeatureFloatResultDefaultTypeInternal _FaceFeatureFloatResult_default_instance_;
class FaceLandmarkResult;
class FaceLandmarkResultDefaultTypeInternal;
extern FaceLandmarkResultDefaultTypeInternal _FaceLandmarkResult_default_instance_;
class FaceQuality5ptParam;
class FaceQuality5ptParamDefaultTypeInternal;
extern FaceQuality5ptParamDefaultTypeInternal _FaceQuality5ptParam_default_instance_;
class LandmarkResult;
class LandmarkResultDefaultTypeInternal;
extern LandmarkResultDefaultTypeInternal _LandmarkResult_default_instance_;
class LaneParam;
class LaneParamDefaultTypeInternal;
extern LaneParamDefaultTypeInternal _LaneParam_default_instance_;
class LineAtt;
class LineAttDefaultTypeInternal;
extern LineAttDefaultTypeInternal _LineAtt_default_instance_;
class MedicalPriorBoxParam;
class MedicalPriorBoxParamDefaultTypeInternal;
extern MedicalPriorBoxParamDefaultTypeInternal _MedicalPriorBoxParam_default_instance_;
class MedicalRefineDetParam;
class MedicalRefineDetParamDefaultTypeInternal;
extern MedicalRefineDetParamDefaultTypeInternal _MedicalRefineDetParam_default_instance_;
class MedicalSegmetationResult;
class MedicalSegmetationResultDefaultTypeInternal;
extern MedicalSegmetationResultDefaultTypeInternal _MedicalSegmetationResult_default_instance_;
class MultiTaskParam;
class MultiTaskParamDefaultTypeInternal;
extern MultiTaskParamDefaultTypeInternal _MultiTaskParam_default_instance_;
class MultiTaskResult;
class MultiTaskResultDefaultTypeInternal;
extern MultiTaskResultDefaultTypeInternal _MultiTaskResult_default_instance_;
class OpenPoseParam;
class OpenPoseParamDefaultTypeInternal;
extern OpenPoseParamDefaultTypeInternal _OpenPoseParam_default_instance_;
class PlateDetectResult;
class PlateDetectResultDefaultTypeInternal;
extern PlateDetectResultDefaultTypeInternal _PlateDetectResult_default_instance_;
class PlateNumResult;
class PlateNumResultDefaultTypeInternal;
extern PlateNumResultDefaultTypeInternal _PlateNumResult_default_instance_;
class PlateRecogResult;
class PlateRecogResultDefaultTypeInternal;
extern PlateRecogResultDefaultTypeInternal _PlateRecogResult_default_instance_;
class PlatenumParam;
class PlatenumParamDefaultTypeInternal;
extern PlatenumParamDefaultTypeInternal _PlatenumParam_default_instance_;
class Point;
class PointDefaultTypeInternal;
extern PointDefaultTypeInternal _Point_default_instance_;
class PoseDetectResult;
class PoseDetectResultDefaultTypeInternal;
extern PoseDetectResultDefaultTypeInternal _PoseDetectResult_default_instance_;
class PriorBoxParam;
class PriorBoxParamDefaultTypeInternal;
extern PriorBoxParamDefaultTypeInternal _PriorBoxParam_default_instance_;
class RefineDetParam;
class RefineDetParamDefaultTypeInternal;
extern RefineDetParamDefaultTypeInternal _RefineDetParam_default_instance_;
class RefineDetResult;
class RefineDetResultDefaultTypeInternal;
extern RefineDetResultDefaultTypeInternal _RefineDetResult_default_instance_;
class ReidParam;
class ReidParamDefaultTypeInternal;
extern ReidParamDefaultTypeInternal _ReidParam_default_instance_;
class ReidResult;
class ReidResultDefaultTypeInternal;
extern ReidResultDefaultTypeInternal _ReidResult_default_instance_;
class RetinaFaceParam;
class RetinaFaceParamDefaultTypeInternal;
extern RetinaFaceParamDefaultTypeInternal _RetinaFaceParam_default_instance_;
class RetinaFaceParam_AnchorParam;
class RetinaFaceParam_AnchorParamDefaultTypeInternal;
extern RetinaFaceParam_AnchorParamDefaultTypeInternal _RetinaFaceParam_AnchorParam_default_instance_;
class RetinaFaceParam_OutputAnchorInfo;
class RetinaFaceParam_OutputAnchorInfoDefaultTypeInternal;
extern RetinaFaceParam_OutputAnchorInfoDefaultTypeInternal _RetinaFaceParam_OutputAnchorInfo_default_instance_;
class RetinaFaceParam_OutputInfo;
class RetinaFaceParam_OutputInfoDefaultTypeInternal;
extern RetinaFaceParam_OutputInfoDefaultTypeInternal _RetinaFaceParam_OutputInfo_default_instance_;
class RoadlineDeephiParam;
class RoadlineDeephiParamDefaultTypeInternal;
extern RoadlineDeephiParamDefaultTypeInternal _RoadlineDeephiParam_default_instance_;
class RoadlineParam;
class RoadlineParamDefaultTypeInternal;
extern RoadlineParamDefaultTypeInternal _RoadlineParam_default_instance_;
class RoadlineResult;
class RoadlineResultDefaultTypeInternal;
extern RoadlineResultDefaultTypeInternal _RoadlineResult_default_instance_;
class SSDParam;
class SSDParamDefaultTypeInternal;
extern SSDParamDefaultTypeInternal _SSDParam_default_instance_;
class SSDParam_OutputInfo;
class SSDParam_OutputInfoDefaultTypeInternal;
extern SSDParam_OutputInfoDefaultTypeInternal _SSDParam_OutputInfo_default_instance_;
class Score;
class ScoreDefaultTypeInternal;
extern ScoreDefaultTypeInternal _Score_default_instance_;
class SegdetParam;
class SegdetParamDefaultTypeInternal;
extern SegdetParamDefaultTypeInternal _SegdetParam_default_instance_;
class SegmentationParam;
class SegmentationParamDefaultTypeInternal;
extern SegmentationParamDefaultTypeInternal _SegmentationParam_default_instance_;
class SegmetationResult;
class SegmetationResultDefaultTypeInternal;
extern SegmetationResultDefaultTypeInternal _SegmetationResult_default_instance_;
class TFRefineDetParam;
class TFRefineDetParamDefaultTypeInternal;
extern TFRefineDetParamDefaultTypeInternal _TFRefineDetParam_default_instance_;
class TfssdParam;
class TfssdParamDefaultTypeInternal;
extern TfssdParamDefaultTypeInternal _TfssdParam_default_instance_;
class TfssdParam_OutputInfo;
class TfssdParam_OutputInfoDefaultTypeInternal;
extern TfssdParam_OutputInfoDefaultTypeInternal _TfssdParam_OutputInfo_default_instance_;
class VehicleResult;
class VehicleResultDefaultTypeInternal;
extern VehicleResultDefaultTypeInternal _VehicleResult_default_instance_;
class YoloV3Param;
class YoloV3ParamDefaultTypeInternal;
extern YoloV3ParamDefaultTypeInternal _YoloV3Param_default_instance_;
}  // namespace proto
}  // namespace ai
}  // namespace vitis
PROTOBUF_NAMESPACE_OPEN
template<> ::vitis::ai::proto::Attribute* Arena::CreateMaybeMessage<::vitis::ai::proto::Attribute>(Arena*);
template<> ::vitis::ai::proto::AttributeResult* Arena::CreateMaybeMessage<::vitis::ai::proto::AttributeResult>(Arena*);
template<> ::vitis::ai::proto::BlinkerParam* Arena::CreateMaybeMessage<::vitis::ai::proto::BlinkerParam>(Arena*);
template<> ::vitis::ai::proto::BoundingBox* Arena::CreateMaybeMessage<::vitis::ai::proto::BoundingBox>(Arena*);
template<> ::vitis::ai::proto::ClassificationParam* Arena::CreateMaybeMessage<::vitis::ai::proto::ClassificationParam>(Arena*);
template<> ::vitis::ai::proto::ClassificationParam_AvgPoolParam* Arena::CreateMaybeMessage<::vitis::ai::proto::ClassificationParam_AvgPoolParam>(Arena*);
template<> ::vitis::ai::proto::ClassificationResult* Arena::CreateMaybeMessage<::vitis::ai::proto::ClassificationResult>(Arena*);
template<> ::vitis::ai::proto::DenseBoxParam* Arena::CreateMaybeMessage<::vitis::ai::proto::DenseBoxParam>(Arena*);
template<> ::vitis::ai::proto::DetectResult* Arena::CreateMaybeMessage<::vitis::ai::proto::DetectResult>(Arena*);
template<> ::vitis::ai::proto::DpuKernelParam* Arena::CreateMaybeMessage<::vitis::ai::proto::DpuKernelParam>(Arena*);
template<> ::vitis::ai::proto::DpuModelParam* Arena::CreateMaybeMessage<::vitis::ai::proto::DpuModelParam>(Arena*);
template<> ::vitis::ai::proto::DpuModelParamList* Arena::CreateMaybeMessage<::vitis::ai::proto::DpuModelParamList>(Arena*);
template<> ::vitis::ai::proto::DpuModelResult* Arena::CreateMaybeMessage<::vitis::ai::proto::DpuModelResult>(Arena*);
template<> ::vitis::ai::proto::FaceDetectRecogFixedResult* Arena::CreateMaybeMessage<::vitis::ai::proto::FaceDetectRecogFixedResult>(Arena*);
template<> ::vitis::ai::proto::FaceDetectRecogFloatResult* Arena::CreateMaybeMessage<::vitis::ai::proto::FaceDetectRecogFloatResult>(Arena*);
template<> ::vitis::ai::proto::FaceFeatureFixedResult* Arena::CreateMaybeMessage<::vitis::ai::proto::FaceFeatureFixedResult>(Arena*);
template<> ::vitis::ai::proto::FaceFeatureFloatResult* Arena::CreateMaybeMessage<::vitis::ai::proto::FaceFeatureFloatResult>(Arena*);
template<> ::vitis::ai::proto::FaceLandmarkResult* Arena::CreateMaybeMessage<::vitis::ai::proto::FaceLandmarkResult>(Arena*);
template<> ::vitis::ai::proto::FaceQuality5ptParam* Arena::CreateMaybeMessage<::vitis::ai::proto::FaceQuality5ptParam>(Arena*);
template<> ::vitis::ai::proto::LandmarkResult* Arena::CreateMaybeMessage<::vitis::ai::proto::LandmarkResult>(Arena*);
template<> ::vitis::ai::proto::LaneParam* Arena::CreateMaybeMessage<::vitis::ai::proto::LaneParam>(Arena*);
template<> ::vitis::ai::proto::LineAtt* Arena::CreateMaybeMessage<::vitis::ai::proto::LineAtt>(Arena*);
template<> ::vitis::ai::proto::MedicalPriorBoxParam* Arena::CreateMaybeMessage<::vitis::ai::proto::MedicalPriorBoxParam>(Arena*);
template<> ::vitis::ai::proto::MedicalRefineDetParam* Arena::CreateMaybeMessage<::vitis::ai::proto::MedicalRefineDetParam>(Arena*);
template<> ::vitis::ai::proto::MedicalSegmetationResult* Arena::CreateMaybeMessage<::vitis::ai::proto::MedicalSegmetationResult>(Arena*);
template<> ::vitis::ai::proto::MultiTaskParam* Arena::CreateMaybeMessage<::vitis::ai::proto::MultiTaskParam>(Arena*);
template<> ::vitis::ai::proto::MultiTaskResult* Arena::CreateMaybeMessage<::vitis::ai::proto::MultiTaskResult>(Arena*);
template<> ::vitis::ai::proto::OpenPoseParam* Arena::CreateMaybeMessage<::vitis::ai::proto::OpenPoseParam>(Arena*);
template<> ::vitis::ai::proto::PlateDetectResult* Arena::CreateMaybeMessage<::vitis::ai::proto::PlateDetectResult>(Arena*);
template<> ::vitis::ai::proto::PlateNumResult* Arena::CreateMaybeMessage<::vitis::ai::proto::PlateNumResult>(Arena*);
template<> ::vitis::ai::proto::PlateRecogResult* Arena::CreateMaybeMessage<::vitis::ai::proto::PlateRecogResult>(Arena*);
template<> ::vitis::ai::proto::PlatenumParam* Arena::CreateMaybeMessage<::vitis::ai::proto::PlatenumParam>(Arena*);
template<> ::vitis::ai::proto::Point* Arena::CreateMaybeMessage<::vitis::ai::proto::Point>(Arena*);
template<> ::vitis::ai::proto::PoseDetectResult* Arena::CreateMaybeMessage<::vitis::ai::proto::PoseDetectResult>(Arena*);
template<> ::vitis::ai::proto::PriorBoxParam* Arena::CreateMaybeMessage<::vitis::ai::proto::PriorBoxParam>(Arena*);
template<> ::vitis::ai::proto::RefineDetParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RefineDetParam>(Arena*);
template<> ::vitis::ai::proto::RefineDetResult* Arena::CreateMaybeMessage<::vitis::ai::proto::RefineDetResult>(Arena*);
template<> ::vitis::ai::proto::ReidParam* Arena::CreateMaybeMessage<::vitis::ai::proto::ReidParam>(Arena*);
template<> ::vitis::ai::proto::ReidResult* Arena::CreateMaybeMessage<::vitis::ai::proto::ReidResult>(Arena*);
template<> ::vitis::ai::proto::RetinaFaceParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam>(Arena*);
template<> ::vitis::ai::proto::RetinaFaceParam_AnchorParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam_AnchorParam>(Arena*);
template<> ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo>(Arena*);
template<> ::vitis::ai::proto::RetinaFaceParam_OutputInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam_OutputInfo>(Arena*);
template<> ::vitis::ai::proto::RoadlineDeephiParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RoadlineDeephiParam>(Arena*);
template<> ::vitis::ai::proto::RoadlineParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RoadlineParam>(Arena*);
template<> ::vitis::ai::proto::RoadlineResult* Arena::CreateMaybeMessage<::vitis::ai::proto::RoadlineResult>(Arena*);
template<> ::vitis::ai::proto::SSDParam* Arena::CreateMaybeMessage<::vitis::ai::proto::SSDParam>(Arena*);
template<> ::vitis::ai::proto::SSDParam_OutputInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::SSDParam_OutputInfo>(Arena*);
template<> ::vitis::ai::proto::Score* Arena::CreateMaybeMessage<::vitis::ai::proto::Score>(Arena*);
template<> ::vitis::ai::proto::SegdetParam* Arena::CreateMaybeMessage<::vitis::ai::proto::SegdetParam>(Arena*);
template<> ::vitis::ai::proto::SegmentationParam* Arena::CreateMaybeMessage<::vitis::ai::proto::SegmentationParam>(Arena*);
template<> ::vitis::ai::proto::SegmetationResult* Arena::CreateMaybeMessage<::vitis::ai::proto::SegmetationResult>(Arena*);
template<> ::vitis::ai::proto::TFRefineDetParam* Arena::CreateMaybeMessage<::vitis::ai::proto::TFRefineDetParam>(Arena*);
template<> ::vitis::ai::proto::TfssdParam* Arena::CreateMaybeMessage<::vitis::ai::proto::TfssdParam>(Arena*);
template<> ::vitis::ai::proto::TfssdParam_OutputInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::TfssdParam_OutputInfo>(Arena*);
template<> ::vitis::ai::proto::VehicleResult* Arena::CreateMaybeMessage<::vitis::ai::proto::VehicleResult>(Arena*);
template<> ::vitis::ai::proto::YoloV3Param* Arena::CreateMaybeMessage<::vitis::ai::proto::YoloV3Param>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace vitis {
namespace ai {
namespace proto {

enum SSDParam_OutputType : int {
  SSDParam_OutputType_USELESS = 0,
  SSDParam_OutputType_CONF = 1,
  SSDParam_OutputType_BBOX = 2
};
bool SSDParam_OutputType_IsValid(int value);
constexpr SSDParam_OutputType SSDParam_OutputType_OutputType_MIN = SSDParam_OutputType_USELESS;
constexpr SSDParam_OutputType SSDParam_OutputType_OutputType_MAX = SSDParam_OutputType_BBOX;
constexpr int SSDParam_OutputType_OutputType_ARRAYSIZE = SSDParam_OutputType_OutputType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SSDParam_OutputType_descriptor();
template<typename T>
inline const std::string& SSDParam_OutputType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, SSDParam_OutputType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function SSDParam_OutputType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    SSDParam_OutputType_descriptor(), enum_t_value);
}
inline bool SSDParam_OutputType_Parse(
    const std::string& name, SSDParam_OutputType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<SSDParam_OutputType>(
    SSDParam_OutputType_descriptor(), name, value);
}
enum ClassificationParam_PreprocessType : int {
  ClassificationParam_PreprocessType_UNKNOWN_TYPE = 0,
  ClassificationParam_PreprocessType_CAFFE = 1,
  ClassificationParam_PreprocessType_VGG_PREPROCESS = 2,
  ClassificationParam_PreprocessType_INCEPTION_PREPROCESS = 3,
  ClassificationParam_PreprocessType_INCEPTION_PT = 4,
  ClassificationParam_PreprocessType_RESNET50_TF2 = 5
};
bool ClassificationParam_PreprocessType_IsValid(int value);
constexpr ClassificationParam_PreprocessType ClassificationParam_PreprocessType_PreprocessType_MIN = ClassificationParam_PreprocessType_UNKNOWN_TYPE;
constexpr ClassificationParam_PreprocessType ClassificationParam_PreprocessType_PreprocessType_MAX = ClassificationParam_PreprocessType_RESNET50_TF2;
constexpr int ClassificationParam_PreprocessType_PreprocessType_ARRAYSIZE = ClassificationParam_PreprocessType_PreprocessType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ClassificationParam_PreprocessType_descriptor();
template<typename T>
inline const std::string& ClassificationParam_PreprocessType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ClassificationParam_PreprocessType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ClassificationParam_PreprocessType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ClassificationParam_PreprocessType_descriptor(), enum_t_value);
}
inline bool ClassificationParam_PreprocessType_Parse(
    const std::string& name, ClassificationParam_PreprocessType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ClassificationParam_PreprocessType>(
    ClassificationParam_PreprocessType_descriptor(), name, value);
}
enum RetinaFaceParam_OutputType : int {
  RetinaFaceParam_OutputType_USELESS = 0,
  RetinaFaceParam_OutputType_CONF = 1,
  RetinaFaceParam_OutputType_BBOX = 2,
  RetinaFaceParam_OutputType_LANDMARK = 3
};
bool RetinaFaceParam_OutputType_IsValid(int value);
constexpr RetinaFaceParam_OutputType RetinaFaceParam_OutputType_OutputType_MIN = RetinaFaceParam_OutputType_USELESS;
constexpr RetinaFaceParam_OutputType RetinaFaceParam_OutputType_OutputType_MAX = RetinaFaceParam_OutputType_LANDMARK;
constexpr int RetinaFaceParam_OutputType_OutputType_ARRAYSIZE = RetinaFaceParam_OutputType_OutputType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RetinaFaceParam_OutputType_descriptor();
template<typename T>
inline const std::string& RetinaFaceParam_OutputType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, RetinaFaceParam_OutputType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function RetinaFaceParam_OutputType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    RetinaFaceParam_OutputType_descriptor(), enum_t_value);
}
inline bool RetinaFaceParam_OutputType_Parse(
    const std::string& name, RetinaFaceParam_OutputType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<RetinaFaceParam_OutputType>(
    RetinaFaceParam_OutputType_descriptor(), name, value);
}
enum RetinaFaceParam_AnchorType : int {
  RetinaFaceParam_AnchorType_BG = 0,
  RetinaFaceParam_AnchorType_FG = 1
};
bool RetinaFaceParam_AnchorType_IsValid(int value);
constexpr RetinaFaceParam_AnchorType RetinaFaceParam_AnchorType_AnchorType_MIN = RetinaFaceParam_AnchorType_BG;
constexpr RetinaFaceParam_AnchorType RetinaFaceParam_AnchorType_AnchorType_MAX = RetinaFaceParam_AnchorType_FG;
constexpr int RetinaFaceParam_AnchorType_AnchorType_ARRAYSIZE = RetinaFaceParam_AnchorType_AnchorType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RetinaFaceParam_AnchorType_descriptor();
template<typename T>
inline const std::string& RetinaFaceParam_AnchorType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, RetinaFaceParam_AnchorType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function RetinaFaceParam_AnchorType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    RetinaFaceParam_AnchorType_descriptor(), enum_t_value);
}
inline bool RetinaFaceParam_AnchorType_Parse(
    const std::string& name, RetinaFaceParam_AnchorType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<RetinaFaceParam_AnchorType>(
    RetinaFaceParam_AnchorType_descriptor(), name, value);
}
enum TfssdParam_OutputType : int {
  TfssdParam_OutputType_USELESS = 0,
  TfssdParam_OutputType_CONF = 1,
  TfssdParam_OutputType_BBOX = 2
};
bool TfssdParam_OutputType_IsValid(int value);
constexpr TfssdParam_OutputType TfssdParam_OutputType_OutputType_MIN = TfssdParam_OutputType_USELESS;
constexpr TfssdParam_OutputType TfssdParam_OutputType_OutputType_MAX = TfssdParam_OutputType_BBOX;
constexpr int TfssdParam_OutputType_OutputType_ARRAYSIZE = TfssdParam_OutputType_OutputType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TfssdParam_OutputType_descriptor();
template<typename T>
inline const std::string& TfssdParam_OutputType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, TfssdParam_OutputType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function TfssdParam_OutputType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    TfssdParam_OutputType_descriptor(), enum_t_value);
}
inline bool TfssdParam_OutputType_Parse(
    const std::string& name, TfssdParam_OutputType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<TfssdParam_OutputType>(
    TfssdParam_OutputType_descriptor(), name, value);
}
enum DpuModelParam_ModelType : int {
  DpuModelParam_ModelType_UNKNOWN_TYPE = 0,
  DpuModelParam_ModelType_REFINEDET = 1,
  DpuModelParam_ModelType_SSD = 2,
  DpuModelParam_ModelType_YOLOv3 = 3,
  DpuModelParam_ModelType_CLASSIFICATION = 4,
  DpuModelParam_ModelType_DENSE_BOX = 5,
  DpuModelParam_ModelType_MULTI_TASK = 6,
  DpuModelParam_ModelType_OPENPOSE = 7,
  DpuModelParam_ModelType_ROADLINE = 8,
  DpuModelParam_ModelType_SEGMENTATION = 9,
  DpuModelParam_ModelType_POSEDETECT = 10,
  DpuModelParam_ModelType_LANE = 11,
  DpuModelParam_ModelType_BLINKER = 12,
  DpuModelParam_ModelType_SEGDET = 13,
  DpuModelParam_ModelType_ROADLINE_DEEPHI = 14,
  DpuModelParam_ModelType_FACEQUALITY5PT = 15,
  DpuModelParam_ModelType_REID = 16,
  DpuModelParam_ModelType_YOLOv2 = 17,
  DpuModelParam_ModelType_TFSSD = 18,
  DpuModelParam_ModelType_FACELANDMARK = 19,
  DpuModelParam_ModelType_PLATEDETECT = 20,
  DpuModelParam_ModelType_PLATENUM = 21,
  DpuModelParam_ModelType_PLATERECOG = 22,
  DpuModelParam_ModelType_FACEFEATURE = 23,
  DpuModelParam_ModelType_SEGMENTATION8UC1 = 24,
  DpuModelParam_ModelType_SEGMENTATION8UC3 = 25,
  DpuModelParam_ModelType_MEDICALSEGMENTATION = 26,
  DpuModelParam_ModelType_MULTITASK8UC1 = 27,
  DpuModelParam_ModelType_MULTITASK8UC3 = 28,
  DpuModelParam_ModelType_MEDICALREFINEDET = 29,
  DpuModelParam_ModelType_FACEDETECTRECOG = 30,
  DpuModelParam_ModelType_HOURGLASS = 31,
  DpuModelParam_ModelType_RETINAFACE = 32,
  DpuModelParam_ModelType_TFREFINEDET = 33
};
bool DpuModelParam_ModelType_IsValid(int value);
constexpr DpuModelParam_ModelType DpuModelParam_ModelType_ModelType_MIN = DpuModelParam_ModelType_UNKNOWN_TYPE;
constexpr DpuModelParam_ModelType DpuModelParam_ModelType_ModelType_MAX = DpuModelParam_ModelType_TFREFINEDET;
constexpr int DpuModelParam_ModelType_ModelType_ARRAYSIZE = DpuModelParam_ModelType_ModelType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DpuModelParam_ModelType_descriptor();
template<typename T>
inline const std::string& DpuModelParam_ModelType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, DpuModelParam_ModelType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function DpuModelParam_ModelType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    DpuModelParam_ModelType_descriptor(), enum_t_value);
}
inline bool DpuModelParam_ModelType_Parse(
    const std::string& name, DpuModelParam_ModelType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<DpuModelParam_ModelType>(
    DpuModelParam_ModelType_descriptor(), name, value);
}
enum DpuModelParam_OrderType : int {
  DpuModelParam_OrderType_UNKNOWNORDER = 0,
  DpuModelParam_OrderType_BGR = 1,
  DpuModelParam_OrderType_RGB = 2,
  DpuModelParam_OrderType_GREY = 3
};
bool DpuModelParam_OrderType_IsValid(int value);
constexpr DpuModelParam_OrderType DpuModelParam_OrderType_OrderType_MIN = DpuModelParam_OrderType_UNKNOWNORDER;
constexpr DpuModelParam_OrderType DpuModelParam_OrderType_OrderType_MAX = DpuModelParam_OrderType_GREY;
constexpr int DpuModelParam_OrderType_OrderType_ARRAYSIZE = DpuModelParam_OrderType_OrderType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DpuModelParam_OrderType_descriptor();
template<typename T>
inline const std::string& DpuModelParam_OrderType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, DpuModelParam_OrderType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function DpuModelParam_OrderType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    DpuModelParam_OrderType_descriptor(), enum_t_value);
}
inline bool DpuModelParam_OrderType_Parse(
    const std::string& name, DpuModelParam_OrderType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<DpuModelParam_OrderType>(
    DpuModelParam_OrderType_descriptor(), name, value);
}
// ===================================================================

class YoloV3Param :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.YoloV3Param) */ {
 public:
  YoloV3Param();
  virtual ~YoloV3Param();

  YoloV3Param(const YoloV3Param& from);
  YoloV3Param(YoloV3Param&& from) noexcept
    : YoloV3Param() {
    *this = ::std::move(from);
  }

  inline YoloV3Param& operator=(const YoloV3Param& from) {
    CopyFrom(from);
    return *this;
  }
  inline YoloV3Param& operator=(YoloV3Param&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const YoloV3Param& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const YoloV3Param* internal_default_instance() {
    return reinterpret_cast<const YoloV3Param*>(
               &_YoloV3Param_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(YoloV3Param& a, YoloV3Param& b) {
    a.Swap(&b);
  }
  inline void Swap(YoloV3Param* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline YoloV3Param* New() const final {
    return CreateMaybeMessage<YoloV3Param>(nullptr);
  }

  YoloV3Param* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<YoloV3Param>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const YoloV3Param& from);
  void MergeFrom(const YoloV3Param& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(YoloV3Param* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.YoloV3Param";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kBiasesFieldNumber = 5,
    kLayerNameFieldNumber = 7,
    kNumClassesFieldNumber = 1,
    kAnchorCntFieldNumber = 2,
    kConfThresholdFieldNumber = 3,
    kNmsThresholdFieldNumber = 4,
    kTestMAPFieldNumber = 6,
  };
  // repeated float biases = 5;
  int biases_size() const;
  void clear_biases();
  float biases(int index) const;
  void set_biases(int index, float value);
  void add_biases(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      biases() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_biases();

  // repeated string layer_name = 7;
  int layer_name_size() const;
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();

  // optional int32 num_classes = 1;
  bool has_num_classes() const;
  void clear_num_classes();
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes() const;
  void set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 anchorCnt = 2;
  bool has_anchorcnt() const;
  void clear_anchorcnt();
  ::PROTOBUF_NAMESPACE_ID::int32 anchorcnt() const;
  void set_anchorcnt(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float conf_threshold = 3;
  bool has_conf_threshold() const;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);

  // optional float nms_threshold = 4;
  bool has_nms_threshold() const;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);

  // optional bool test_mAP = 6;
  bool has_test_map() const;
  void clear_test_map();
  bool test_map() const;
  void set_test_map(bool value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.YoloV3Param)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > biases_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes_;
  ::PROTOBUF_NAMESPACE_ID::int32 anchorcnt_;
  float conf_threshold_;
  float nms_threshold_;
  bool test_map_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MedicalPriorBoxParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MedicalPriorBoxParam) */ {
 public:
  MedicalPriorBoxParam();
  virtual ~MedicalPriorBoxParam();

  MedicalPriorBoxParam(const MedicalPriorBoxParam& from);
  MedicalPriorBoxParam(MedicalPriorBoxParam&& from) noexcept
    : MedicalPriorBoxParam() {
    *this = ::std::move(from);
  }

  inline MedicalPriorBoxParam& operator=(const MedicalPriorBoxParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline MedicalPriorBoxParam& operator=(MedicalPriorBoxParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const MedicalPriorBoxParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MedicalPriorBoxParam* internal_default_instance() {
    return reinterpret_cast<const MedicalPriorBoxParam*>(
               &_MedicalPriorBoxParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(MedicalPriorBoxParam& a, MedicalPriorBoxParam& b) {
    a.Swap(&b);
  }
  inline void Swap(MedicalPriorBoxParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline MedicalPriorBoxParam* New() const final {
    return CreateMaybeMessage<MedicalPriorBoxParam>(nullptr);
  }

  MedicalPriorBoxParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<MedicalPriorBoxParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const MedicalPriorBoxParam& from);
  void MergeFrom(const MedicalPriorBoxParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MedicalPriorBoxParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MedicalPriorBoxParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kInputShapeFieldNumber = 1,
    kFeatureShapesFieldNumber = 2,
    kMinSizesFieldNumber = 3,
    kMaxSizesFieldNumber = 4,
    kAspectRatiosFieldNumber = 5,
    kStepsFieldNumber = 6,
    kOffsetFieldNumber = 7,
  };
  // repeated int32 input_shape = 1;
  int input_shape_size() const;
  void clear_input_shape();
  ::PROTOBUF_NAMESPACE_ID::int32 input_shape(int index) const;
  void set_input_shape(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_input_shape(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      input_shape() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_input_shape();

  // repeated int32 feature_shapes = 2;
  int feature_shapes_size() const;
  void clear_feature_shapes();
  ::PROTOBUF_NAMESPACE_ID::int32 feature_shapes(int index) const;
  void set_feature_shapes(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_feature_shapes(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      feature_shapes() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_feature_shapes();

  // repeated int32 min_sizes = 3;
  int min_sizes_size() const;
  void clear_min_sizes();
  ::PROTOBUF_NAMESPACE_ID::int32 min_sizes(int index) const;
  void set_min_sizes(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_min_sizes(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      min_sizes() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_min_sizes();

  // repeated int32 max_sizes = 4;
  int max_sizes_size() const;
  void clear_max_sizes();
  ::PROTOBUF_NAMESPACE_ID::int32 max_sizes(int index) const;
  void set_max_sizes(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_max_sizes(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      max_sizes() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_max_sizes();

  // repeated float aspect_ratios = 5;
  int aspect_ratios_size() const;
  void clear_aspect_ratios();
  float aspect_ratios(int index) const;
  void set_aspect_ratios(int index, float value);
  void add_aspect_ratios(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      aspect_ratios() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_aspect_ratios();

  // repeated int32 steps = 6;
  int steps_size() const;
  void clear_steps();
  ::PROTOBUF_NAMESPACE_ID::int32 steps(int index) const;
  void set_steps(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_steps(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      steps() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_steps();

  // optional float offset = 7;
  bool has_offset() const;
  void clear_offset();
  float offset() const;
  void set_offset(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MedicalPriorBoxParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > input_shape_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > feature_shapes_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > min_sizes_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > max_sizes_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > aspect_ratios_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > steps_;
  float offset_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PriorBoxParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PriorBoxParam) */ {
 public:
  PriorBoxParam();
  virtual ~PriorBoxParam();

  PriorBoxParam(const PriorBoxParam& from);
  PriorBoxParam(PriorBoxParam&& from) noexcept
    : PriorBoxParam() {
    *this = ::std::move(from);
  }

  inline PriorBoxParam& operator=(const PriorBoxParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline PriorBoxParam& operator=(PriorBoxParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const PriorBoxParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PriorBoxParam* internal_default_instance() {
    return reinterpret_cast<const PriorBoxParam*>(
               &_PriorBoxParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(PriorBoxParam& a, PriorBoxParam& b) {
    a.Swap(&b);
  }
  inline void Swap(PriorBoxParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PriorBoxParam* New() const final {
    return CreateMaybeMessage<PriorBoxParam>(nullptr);
  }

  PriorBoxParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PriorBoxParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PriorBoxParam& from);
  void MergeFrom(const PriorBoxParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PriorBoxParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PriorBoxParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kVariancesFieldNumber = 4,
    kMinSizesFieldNumber = 5,
    kMaxSizesFieldNumber = 6,
    kAspectRatiosFieldNumber = 7,
    kLayerWidthFieldNumber = 1,
    kLayerHeightFieldNumber = 2,
    kOffsetFieldNumber = 8,
    kStepWidthFieldNumber = 9,
    kStepHeightFieldNumber = 10,
    kFlipFieldNumber = 11,
    kClipFieldNumber = 12,
  };
  // repeated float variances = 4;
  int variances_size() const;
  void clear_variances();
  float variances(int index) const;
  void set_variances(int index, float value);
  void add_variances(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      variances() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_variances();

  // repeated float min_sizes = 5;
  int min_sizes_size() const;
  void clear_min_sizes();
  float min_sizes(int index) const;
  void set_min_sizes(int index, float value);
  void add_min_sizes(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      min_sizes() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_min_sizes();

  // repeated float max_sizes = 6;
  int max_sizes_size() const;
  void clear_max_sizes();
  float max_sizes(int index) const;
  void set_max_sizes(int index, float value);
  void add_max_sizes(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      max_sizes() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_max_sizes();

  // repeated float aspect_ratios = 7;
  int aspect_ratios_size() const;
  void clear_aspect_ratios();
  float aspect_ratios(int index) const;
  void set_aspect_ratios(int index, float value);
  void add_aspect_ratios(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      aspect_ratios() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_aspect_ratios();

  // optional int32 layer_width = 1;
  bool has_layer_width() const;
  void clear_layer_width();
  ::PROTOBUF_NAMESPACE_ID::int32 layer_width() const;
  void set_layer_width(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 layer_height = 2;
  bool has_layer_height() const;
  void clear_layer_height();
  ::PROTOBUF_NAMESPACE_ID::int32 layer_height() const;
  void set_layer_height(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float offset = 8;
  bool has_offset() const;
  void clear_offset();
  float offset() const;
  void set_offset(float value);

  // optional float step_width = 9;
  bool has_step_width() const;
  void clear_step_width();
  float step_width() const;
  void set_step_width(float value);

  // optional float step_height = 10;
  bool has_step_height() const;
  void clear_step_height();
  float step_height() const;
  void set_step_height(float value);

  // optional bool flip = 11;
  bool has_flip() const;
  void clear_flip();
  bool flip() const;
  void set_flip(bool value);

  // optional bool clip = 12;
  bool has_clip() const;
  void clear_clip();
  bool clip() const;
  void set_clip(bool value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PriorBoxParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > variances_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > min_sizes_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > max_sizes_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > aspect_ratios_;
  ::PROTOBUF_NAMESPACE_ID::int32 layer_width_;
  ::PROTOBUF_NAMESPACE_ID::int32 layer_height_;
  float offset_;
  float step_width_;
  float step_height_;
  bool flip_;
  bool clip_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SSDParam_OutputInfo :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SSDParam.OutputInfo) */ {
 public:
  SSDParam_OutputInfo();
  virtual ~SSDParam_OutputInfo();

  SSDParam_OutputInfo(const SSDParam_OutputInfo& from);
  SSDParam_OutputInfo(SSDParam_OutputInfo&& from) noexcept
    : SSDParam_OutputInfo() {
    *this = ::std::move(from);
  }

  inline SSDParam_OutputInfo& operator=(const SSDParam_OutputInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDParam_OutputInfo& operator=(SSDParam_OutputInfo&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SSDParam_OutputInfo& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SSDParam_OutputInfo* internal_default_instance() {
    return reinterpret_cast<const SSDParam_OutputInfo*>(
               &_SSDParam_OutputInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(SSDParam_OutputInfo& a, SSDParam_OutputInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDParam_OutputInfo* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SSDParam_OutputInfo* New() const final {
    return CreateMaybeMessage<SSDParam_OutputInfo>(nullptr);
  }

  SSDParam_OutputInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SSDParam_OutputInfo>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SSDParam_OutputInfo& from);
  void MergeFrom(const SSDParam_OutputInfo& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDParam_OutputInfo* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SSDParam.OutputInfo";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kNameFieldNumber = 3,
    kTypeFieldNumber = 1,
    kOrderFieldNumber = 2,
  };
  // optional string name = 3;
  bool has_name() const;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* name);

  // optional .vitis.ai.proto.SSDParam.OutputType type = 1;
  bool has_type() const;
  void clear_type();
  ::vitis::ai::proto::SSDParam_OutputType type() const;
  void set_type(::vitis::ai::proto::SSDParam_OutputType value);

  // optional int32 order = 2;
  bool has_order() const;
  void clear_order();
  ::PROTOBUF_NAMESPACE_ID::int32 order() const;
  void set_order(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SSDParam.OutputInfo)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  int type_;
  ::PROTOBUF_NAMESPACE_ID::int32 order_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SSDParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SSDParam) */ {
 public:
  SSDParam();
  virtual ~SSDParam();

  SSDParam(const SSDParam& from);
  SSDParam(SSDParam&& from) noexcept
    : SSDParam() {
    *this = ::std::move(from);
  }

  inline SSDParam& operator=(const SSDParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDParam& operator=(SSDParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SSDParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SSDParam* internal_default_instance() {
    return reinterpret_cast<const SSDParam*>(
               &_SSDParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(SSDParam& a, SSDParam& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SSDParam* New() const final {
    return CreateMaybeMessage<SSDParam>(nullptr);
  }

  SSDParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SSDParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SSDParam& from);
  void MergeFrom(const SSDParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SSDParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef SSDParam_OutputInfo OutputInfo;

  typedef SSDParam_OutputType OutputType;
  static constexpr OutputType USELESS =
    SSDParam_OutputType_USELESS;
  static constexpr OutputType CONF =
    SSDParam_OutputType_CONF;
  static constexpr OutputType BBOX =
    SSDParam_OutputType_BBOX;
  static inline bool OutputType_IsValid(int value) {
    return SSDParam_OutputType_IsValid(value);
  }
  static constexpr OutputType OutputType_MIN =
    SSDParam_OutputType_OutputType_MIN;
  static constexpr OutputType OutputType_MAX =
    SSDParam_OutputType_OutputType_MAX;
  static constexpr int OutputType_ARRAYSIZE =
    SSDParam_OutputType_OutputType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  OutputType_descriptor() {
    return SSDParam_OutputType_descriptor();
  }
  template<typename T>
  static inline const std::string& OutputType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, OutputType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function OutputType_Name.");
    return SSDParam_OutputType_Name(enum_t_value);
  }
  static inline bool OutputType_Parse(const std::string& name,
      OutputType* value) {
    return SSDParam_OutputType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kPriorBoxParamFieldNumber = 1,
    kConfThresholdFieldNumber = 4,
    kBboxLayerIndexFieldNumber = 8,
    kOutputInfoFieldNumber = 9,
    kNumClassesFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kKeepTopKFieldNumber = 5,
    kTopKFieldNumber = 6,
    kIsMlperfFieldNumber = 7,
  };
  // repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
  int prior_box_param_size() const;
  void clear_prior_box_param();
  ::vitis::ai::proto::PriorBoxParam* mutable_prior_box_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
      mutable_prior_box_param();
  const ::vitis::ai::proto::PriorBoxParam& prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* add_prior_box_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
      prior_box_param() const;

  // repeated float conf_threshold = 4;
  int conf_threshold_size() const;
  void clear_conf_threshold();
  float conf_threshold(int index) const;
  void set_conf_threshold(int index, float value);
  void add_conf_threshold(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      conf_threshold() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_conf_threshold();

  // repeated int32 bbox_layer_index = 8;
  int bbox_layer_index_size() const;
  void clear_bbox_layer_index();
  ::PROTOBUF_NAMESPACE_ID::int32 bbox_layer_index(int index) const;
  void set_bbox_layer_index(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_bbox_layer_index(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      bbox_layer_index() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_bbox_layer_index();

  // repeated .vitis.ai.proto.SSDParam.OutputInfo output_info = 9;
  int output_info_size() const;
  void clear_output_info();
  ::vitis::ai::proto::SSDParam_OutputInfo* mutable_output_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SSDParam_OutputInfo >*
      mutable_output_info();
  const ::vitis::ai::proto::SSDParam_OutputInfo& output_info(int index) const;
  ::vitis::ai::proto::SSDParam_OutputInfo* add_output_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SSDParam_OutputInfo >&
      output_info() const;

  // optional int32 num_classes = 2;
  bool has_num_classes() const;
  void clear_num_classes();
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes() const;
  void set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float nms_threshold = 3;
  bool has_nms_threshold() const;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);

  // optional int32 keep_top_k = 5;
  bool has_keep_top_k() const;
  void clear_keep_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k() const;
  void set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 top_k = 6;
  bool has_top_k() const;
  void clear_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 top_k() const;
  void set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional bool is_mlperf = 7;
  bool has_is_mlperf() const;
  void clear_is_mlperf();
  bool is_mlperf() const;
  void set_is_mlperf(bool value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SSDParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam > prior_box_param_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > conf_threshold_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > bbox_layer_index_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SSDParam_OutputInfo > output_info_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes_;
  float nms_threshold_;
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k_;
  ::PROTOBUF_NAMESPACE_ID::int32 top_k_;
  bool is_mlperf_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RefineDetParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RefineDetParam) */ {
 public:
  RefineDetParam();
  virtual ~RefineDetParam();

  RefineDetParam(const RefineDetParam& from);
  RefineDetParam(RefineDetParam&& from) noexcept
    : RefineDetParam() {
    *this = ::std::move(from);
  }

  inline RefineDetParam& operator=(const RefineDetParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RefineDetParam& operator=(RefineDetParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RefineDetParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RefineDetParam* internal_default_instance() {
    return reinterpret_cast<const RefineDetParam*>(
               &_RefineDetParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(RefineDetParam& a, RefineDetParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RefineDetParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RefineDetParam* New() const final {
    return CreateMaybeMessage<RefineDetParam>(nullptr);
  }

  RefineDetParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RefineDetParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RefineDetParam& from);
  void MergeFrom(const RefineDetParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RefineDetParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RefineDetParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPriorBoxParamFieldNumber = 1,
    kConfThresholdFieldNumber = 4,
    kLayerNameFieldNumber = 7,
    kNumClassesFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kKeepTopKFieldNumber = 5,
    kTopKFieldNumber = 6,
  };
  // repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
  int prior_box_param_size() const;
  void clear_prior_box_param();
  ::vitis::ai::proto::PriorBoxParam* mutable_prior_box_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
      mutable_prior_box_param();
  const ::vitis::ai::proto::PriorBoxParam& prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* add_prior_box_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
      prior_box_param() const;

  // repeated float conf_threshold = 4;
  int conf_threshold_size() const;
  void clear_conf_threshold();
  float conf_threshold(int index) const;
  void set_conf_threshold(int index, float value);
  void add_conf_threshold(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      conf_threshold() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_conf_threshold();

  // repeated string layer_name = 7;
  int layer_name_size() const;
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();

  // optional int32 num_classes = 2;
  bool has_num_classes() const;
  void clear_num_classes();
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes() const;
  void set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float nms_threshold = 3;
  bool has_nms_threshold() const;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);

  // optional int32 keep_top_k = 5;
  bool has_keep_top_k() const;
  void clear_keep_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k() const;
  void set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 top_k = 6;
  bool has_top_k() const;
  void clear_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 top_k() const;
  void set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RefineDetParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam > prior_box_param_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > conf_threshold_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes_;
  float nms_threshold_;
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k_;
  ::PROTOBUF_NAMESPACE_ID::int32 top_k_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class TFRefineDetParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.TFRefineDetParam) */ {
 public:
  TFRefineDetParam();
  virtual ~TFRefineDetParam();

  TFRefineDetParam(const TFRefineDetParam& from);
  TFRefineDetParam(TFRefineDetParam&& from) noexcept
    : TFRefineDetParam() {
    *this = ::std::move(from);
  }

  inline TFRefineDetParam& operator=(const TFRefineDetParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline TFRefineDetParam& operator=(TFRefineDetParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const TFRefineDetParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TFRefineDetParam* internal_default_instance() {
    return reinterpret_cast<const TFRefineDetParam*>(
               &_TFRefineDetParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(TFRefineDetParam& a, TFRefineDetParam& b) {
    a.Swap(&b);
  }
  inline void Swap(TFRefineDetParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline TFRefineDetParam* New() const final {
    return CreateMaybeMessage<TFRefineDetParam>(nullptr);
  }

  TFRefineDetParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<TFRefineDetParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const TFRefineDetParam& from);
  void MergeFrom(const TFRefineDetParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(TFRefineDetParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.TFRefineDetParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kLayerNameFieldNumber = 7,
    kPriorBoxParamFieldNumber = 1,
    kNumClassesFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kConfThresholdFieldNumber = 4,
    kKeepTopKFieldNumber = 5,
    kTopKFieldNumber = 6,
    kScaleXyFieldNumber = 8,
    kScaleWhFieldNumber = 9,
  };
  // repeated string layer_name = 7;
  int layer_name_size() const;
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();

  // optional .vitis.ai.proto.MedicalPriorBoxParam prior_box_param = 1;
  bool has_prior_box_param() const;
  void clear_prior_box_param();
  const ::vitis::ai::proto::MedicalPriorBoxParam& prior_box_param() const;
  ::vitis::ai::proto::MedicalPriorBoxParam* release_prior_box_param();
  ::vitis::ai::proto::MedicalPriorBoxParam* mutable_prior_box_param();
  void set_allocated_prior_box_param(::vitis::ai::proto::MedicalPriorBoxParam* prior_box_param);

  // optional int32 num_classes = 2;
  bool has_num_classes() const;
  void clear_num_classes();
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes() const;
  void set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float nms_threshold = 3;
  bool has_nms_threshold() const;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);

  // optional float conf_threshold = 4;
  bool has_conf_threshold() const;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);

  // optional int32 keep_top_k = 5;
  bool has_keep_top_k() const;
  void clear_keep_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k() const;
  void set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 top_k = 6;
  bool has_top_k() const;
  void clear_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 top_k() const;
  void set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float scale_xy = 8;
  bool has_scale_xy() const;
  void clear_scale_xy();
  float scale_xy() const;
  void set_scale_xy(float value);

  // optional float scale_wh = 9;
  bool has_scale_wh() const;
  void clear_scale_wh();
  float scale_wh() const;
  void set_scale_wh(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.TFRefineDetParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
  ::vitis::ai::proto::MedicalPriorBoxParam* prior_box_param_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes_;
  float nms_threshold_;
  float conf_threshold_;
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k_;
  ::PROTOBUF_NAMESPACE_ID::int32 top_k_;
  float scale_xy_;
  float scale_wh_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MedicalRefineDetParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MedicalRefineDetParam) */ {
 public:
  MedicalRefineDetParam();
  virtual ~MedicalRefineDetParam();

  MedicalRefineDetParam(const MedicalRefineDetParam& from);
  MedicalRefineDetParam(MedicalRefineDetParam&& from) noexcept
    : MedicalRefineDetParam() {
    *this = ::std::move(from);
  }

  inline MedicalRefineDetParam& operator=(const MedicalRefineDetParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline MedicalRefineDetParam& operator=(MedicalRefineDetParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const MedicalRefineDetParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MedicalRefineDetParam* internal_default_instance() {
    return reinterpret_cast<const MedicalRefineDetParam*>(
               &_MedicalRefineDetParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(MedicalRefineDetParam& a, MedicalRefineDetParam& b) {
    a.Swap(&b);
  }
  inline void Swap(MedicalRefineDetParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline MedicalRefineDetParam* New() const final {
    return CreateMaybeMessage<MedicalRefineDetParam>(nullptr);
  }

  MedicalRefineDetParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<MedicalRefineDetParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const MedicalRefineDetParam& from);
  void MergeFrom(const MedicalRefineDetParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MedicalRefineDetParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MedicalRefineDetParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMedicalPriorBoxParamFieldNumber = 8,
    kNumClassesFieldNumber = 1,
    kScaleXyFieldNumber = 2,
    kScaleWhFieldNumber = 3,
    kNmsThresholdFieldNumber = 4,
    kConfThresholdFieldNumber = 5,
    kKeepTopKFieldNumber = 6,
    kTopKFieldNumber = 7,
  };
  // optional .vitis.ai.proto.MedicalPriorBoxParam medical_prior_box_param = 8;
  bool has_medical_prior_box_param() const;
  void clear_medical_prior_box_param();
  const ::vitis::ai::proto::MedicalPriorBoxParam& medical_prior_box_param() const;
  ::vitis::ai::proto::MedicalPriorBoxParam* release_medical_prior_box_param();
  ::vitis::ai::proto::MedicalPriorBoxParam* mutable_medical_prior_box_param();
  void set_allocated_medical_prior_box_param(::vitis::ai::proto::MedicalPriorBoxParam* medical_prior_box_param);

  // optional int32 num_classes = 1;
  bool has_num_classes() const;
  void clear_num_classes();
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes() const;
  void set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float scale_xy = 2;
  bool has_scale_xy() const;
  void clear_scale_xy();
  float scale_xy() const;
  void set_scale_xy(float value);

  // optional float scale_wh = 3;
  bool has_scale_wh() const;
  void clear_scale_wh();
  float scale_wh() const;
  void set_scale_wh(float value);

  // optional float nms_threshold = 4;
  bool has_nms_threshold() const;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);

  // optional float conf_threshold = 5;
  bool has_conf_threshold() const;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);

  // optional int32 keep_top_k = 6;
  bool has_keep_top_k() const;
  void clear_keep_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k() const;
  void set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 top_k = 7;
  bool has_top_k() const;
  void clear_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 top_k() const;
  void set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MedicalRefineDetParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::vitis::ai::proto::MedicalPriorBoxParam* medical_prior_box_param_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes_;
  float scale_xy_;
  float scale_wh_;
  float nms_threshold_;
  float conf_threshold_;
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k_;
  ::PROTOBUF_NAMESPACE_ID::int32 top_k_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ReidParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ReidParam) */ {
 public:
  ReidParam();
  virtual ~ReidParam();

  ReidParam(const ReidParam& from);
  ReidParam(ReidParam&& from) noexcept
    : ReidParam() {
    *this = ::std::move(from);
  }

  inline ReidParam& operator=(const ReidParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline ReidParam& operator=(ReidParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ReidParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ReidParam* internal_default_instance() {
    return reinterpret_cast<const ReidParam*>(
               &_ReidParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  friend void swap(ReidParam& a, ReidParam& b) {
    a.Swap(&b);
  }
  inline void Swap(ReidParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ReidParam* New() const final {
    return CreateMaybeMessage<ReidParam>(nullptr);
  }

  ReidParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ReidParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ReidParam& from);
  void MergeFrom(const ReidParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ReidParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ReidParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kBnMeansFieldNumber = 1,
    kBnWeightsFieldNumber = 2,
    kBnVarsFieldNumber = 3,
  };
  // repeated float bn_means = 1;
  int bn_means_size() const;
  void clear_bn_means();
  float bn_means(int index) const;
  void set_bn_means(int index, float value);
  void add_bn_means(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      bn_means() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_bn_means();

  // repeated float bn_weights = 2;
  int bn_weights_size() const;
  void clear_bn_weights();
  float bn_weights(int index) const;
  void set_bn_weights(int index, float value);
  void add_bn_weights(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      bn_weights() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_bn_weights();

  // repeated float bn_vars = 3;
  int bn_vars_size() const;
  void clear_bn_vars();
  float bn_vars(int index) const;
  void set_bn_vars(int index, float value);
  void add_bn_vars(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      bn_vars() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_bn_vars();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ReidParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > bn_means_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > bn_weights_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > bn_vars_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class OpenPoseParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.OpenPoseParam) */ {
 public:
  OpenPoseParam();
  virtual ~OpenPoseParam();

  OpenPoseParam(const OpenPoseParam& from);
  OpenPoseParam(OpenPoseParam&& from) noexcept
    : OpenPoseParam() {
    *this = ::std::move(from);
  }

  inline OpenPoseParam& operator=(const OpenPoseParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline OpenPoseParam& operator=(OpenPoseParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const OpenPoseParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OpenPoseParam* internal_default_instance() {
    return reinterpret_cast<const OpenPoseParam*>(
               &_OpenPoseParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  friend void swap(OpenPoseParam& a, OpenPoseParam& b) {
    a.Swap(&b);
  }
  inline void Swap(OpenPoseParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OpenPoseParam* New() const final {
    return CreateMaybeMessage<OpenPoseParam>(nullptr);
  }

  OpenPoseParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OpenPoseParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OpenPoseParam& from);
  void MergeFrom(const OpenPoseParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OpenPoseParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.OpenPoseParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kLayerNameFieldNumber = 1,
  };
  // repeated string layer_name = 1;
  int layer_name_size() const;
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.OpenPoseParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ClassificationParam_AvgPoolParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ClassificationParam.AvgPoolParam) */ {
 public:
  ClassificationParam_AvgPoolParam();
  virtual ~ClassificationParam_AvgPoolParam();

  ClassificationParam_AvgPoolParam(const ClassificationParam_AvgPoolParam& from);
  ClassificationParam_AvgPoolParam(ClassificationParam_AvgPoolParam&& from) noexcept
    : ClassificationParam_AvgPoolParam() {
    *this = ::std::move(from);
  }

  inline ClassificationParam_AvgPoolParam& operator=(const ClassificationParam_AvgPoolParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline ClassificationParam_AvgPoolParam& operator=(ClassificationParam_AvgPoolParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ClassificationParam_AvgPoolParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ClassificationParam_AvgPoolParam* internal_default_instance() {
    return reinterpret_cast<const ClassificationParam_AvgPoolParam*>(
               &_ClassificationParam_AvgPoolParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  friend void swap(ClassificationParam_AvgPoolParam& a, ClassificationParam_AvgPoolParam& b) {
    a.Swap(&b);
  }
  inline void Swap(ClassificationParam_AvgPoolParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ClassificationParam_AvgPoolParam* New() const final {
    return CreateMaybeMessage<ClassificationParam_AvgPoolParam>(nullptr);
  }

  ClassificationParam_AvgPoolParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ClassificationParam_AvgPoolParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ClassificationParam_AvgPoolParam& from);
  void MergeFrom(const ClassificationParam_AvgPoolParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ClassificationParam_AvgPoolParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ClassificationParam.AvgPoolParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kScaleFieldNumber = 1,
  };
  // optional int32 scale = 1;
  bool has_scale() const;
  void clear_scale();
  ::PROTOBUF_NAMESPACE_ID::int32 scale() const;
  void set_scale(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ClassificationParam.AvgPoolParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 scale_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ClassificationParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ClassificationParam) */ {
 public:
  ClassificationParam();
  virtual ~ClassificationParam();

  ClassificationParam(const ClassificationParam& from);
  ClassificationParam(ClassificationParam&& from) noexcept
    : ClassificationParam() {
    *this = ::std::move(from);
  }

  inline ClassificationParam& operator=(const ClassificationParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline ClassificationParam& operator=(ClassificationParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ClassificationParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ClassificationParam* internal_default_instance() {
    return reinterpret_cast<const ClassificationParam*>(
               &_ClassificationParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  friend void swap(ClassificationParam& a, ClassificationParam& b) {
    a.Swap(&b);
  }
  inline void Swap(ClassificationParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ClassificationParam* New() const final {
    return CreateMaybeMessage<ClassificationParam>(nullptr);
  }

  ClassificationParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ClassificationParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ClassificationParam& from);
  void MergeFrom(const ClassificationParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ClassificationParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ClassificationParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef ClassificationParam_AvgPoolParam AvgPoolParam;

  typedef ClassificationParam_PreprocessType PreprocessType;
  static constexpr PreprocessType UNKNOWN_TYPE =
    ClassificationParam_PreprocessType_UNKNOWN_TYPE;
  static constexpr PreprocessType CAFFE =
    ClassificationParam_PreprocessType_CAFFE;
  static constexpr PreprocessType VGG_PREPROCESS =
    ClassificationParam_PreprocessType_VGG_PREPROCESS;
  static constexpr PreprocessType INCEPTION_PREPROCESS =
    ClassificationParam_PreprocessType_INCEPTION_PREPROCESS;
  static constexpr PreprocessType INCEPTION_PT =
    ClassificationParam_PreprocessType_INCEPTION_PT;
  static constexpr PreprocessType RESNET50_TF2 =
    ClassificationParam_PreprocessType_RESNET50_TF2;
  static inline bool PreprocessType_IsValid(int value) {
    return ClassificationParam_PreprocessType_IsValid(value);
  }
  static constexpr PreprocessType PreprocessType_MIN =
    ClassificationParam_PreprocessType_PreprocessType_MIN;
  static constexpr PreprocessType PreprocessType_MAX =
    ClassificationParam_PreprocessType_PreprocessType_MAX;
  static constexpr int PreprocessType_ARRAYSIZE =
    ClassificationParam_PreprocessType_PreprocessType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  PreprocessType_descriptor() {
    return ClassificationParam_PreprocessType_descriptor();
  }
  template<typename T>
  static inline const std::string& PreprocessType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, PreprocessType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function PreprocessType_Name.");
    return ClassificationParam_PreprocessType_Name(enum_t_value);
  }
  static inline bool PreprocessType_Parse(const std::string& name,
      PreprocessType* value) {
    return ClassificationParam_PreprocessType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kLayerNameFieldNumber = 4,
    kLabelTypeFieldNumber = 5,
    kAvgPoolParamFieldNumber = 6,
    kTopKFieldNumber = 1,
    kTestAccuracyFieldNumber = 2,
    kPreprocessTypeFieldNumber = 3,
  };
  // optional string layer_name = 4;
  bool has_layer_name() const;
  void clear_layer_name();
  const std::string& layer_name() const;
  void set_layer_name(const std::string& value);
  void set_layer_name(std::string&& value);
  void set_layer_name(const char* value);
  void set_layer_name(const char* value, size_t size);
  std::string* mutable_layer_name();
  std::string* release_layer_name();
  void set_allocated_layer_name(std::string* layer_name);

  // optional string label_type = 5;
  bool has_label_type() const;
  void clear_label_type();
  const std::string& label_type() const;
  void set_label_type(const std::string& value);
  void set_label_type(std::string&& value);
  void set_label_type(const char* value);
  void set_label_type(const char* value, size_t size);
  std::string* mutable_label_type();
  std::string* release_label_type();
  void set_allocated_label_type(std::string* label_type);

  // optional .vitis.ai.proto.ClassificationParam.AvgPoolParam avg_pool_param = 6;
  bool has_avg_pool_param() const;
  void clear_avg_pool_param();
  const ::vitis::ai::proto::ClassificationParam_AvgPoolParam& avg_pool_param() const;
  ::vitis::ai::proto::ClassificationParam_AvgPoolParam* release_avg_pool_param();
  ::vitis::ai::proto::ClassificationParam_AvgPoolParam* mutable_avg_pool_param();
  void set_allocated_avg_pool_param(::vitis::ai::proto::ClassificationParam_AvgPoolParam* avg_pool_param);

  // optional int32 top_k = 1;
  bool has_top_k() const;
  void clear_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 top_k() const;
  void set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional bool test_accuracy = 2;
  bool has_test_accuracy() const;
  void clear_test_accuracy();
  bool test_accuracy() const;
  void set_test_accuracy(bool value);

  // optional .vitis.ai.proto.ClassificationParam.PreprocessType preprocess_type = 3;
  bool has_preprocess_type() const;
  void clear_preprocess_type();
  ::vitis::ai::proto::ClassificationParam_PreprocessType preprocess_type() const;
  void set_preprocess_type(::vitis::ai::proto::ClassificationParam_PreprocessType value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ClassificationParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr layer_name_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr label_type_;
  ::vitis::ai::proto::ClassificationParam_AvgPoolParam* avg_pool_param_;
  ::PROTOBUF_NAMESPACE_ID::int32 top_k_;
  bool test_accuracy_;
  int preprocess_type_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DenseBoxParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DenseBoxParam) */ {
 public:
  DenseBoxParam();
  virtual ~DenseBoxParam();

  DenseBoxParam(const DenseBoxParam& from);
  DenseBoxParam(DenseBoxParam&& from) noexcept
    : DenseBoxParam() {
    *this = ::std::move(from);
  }

  inline DenseBoxParam& operator=(const DenseBoxParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline DenseBoxParam& operator=(DenseBoxParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const DenseBoxParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DenseBoxParam* internal_default_instance() {
    return reinterpret_cast<const DenseBoxParam*>(
               &_DenseBoxParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

  friend void swap(DenseBoxParam& a, DenseBoxParam& b) {
    a.Swap(&b);
  }
  inline void Swap(DenseBoxParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DenseBoxParam* New() const final {
    return CreateMaybeMessage<DenseBoxParam>(nullptr);
  }

  DenseBoxParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DenseBoxParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DenseBoxParam& from);
  void MergeFrom(const DenseBoxParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DenseBoxParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DenseBoxParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kNumOfClassesFieldNumber = 1,
    kNmsThresholdFieldNumber = 2,
    kDetThresholdFieldNumber = 3,
  };
  // optional int32 num_of_classes = 1;
  bool has_num_of_classes() const;
  void clear_num_of_classes();
  ::PROTOBUF_NAMESPACE_ID::int32 num_of_classes() const;
  void set_num_of_classes(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float nms_threshold = 2;
  bool has_nms_threshold() const;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);

  // optional float det_threshold = 3;
  bool has_det_threshold() const;
  void clear_det_threshold();
  float det_threshold() const;
  void set_det_threshold(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DenseBoxParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_of_classes_;
  float nms_threshold_;
  float det_threshold_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MultiTaskParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MultiTaskParam) */ {
 public:
  MultiTaskParam();
  virtual ~MultiTaskParam();

  MultiTaskParam(const MultiTaskParam& from);
  MultiTaskParam(MultiTaskParam&& from) noexcept
    : MultiTaskParam() {
    *this = ::std::move(from);
  }

  inline MultiTaskParam& operator=(const MultiTaskParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline MultiTaskParam& operator=(MultiTaskParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const MultiTaskParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MultiTaskParam* internal_default_instance() {
    return reinterpret_cast<const MultiTaskParam*>(
               &_MultiTaskParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

  friend void swap(MultiTaskParam& a, MultiTaskParam& b) {
    a.Swap(&b);
  }
  inline void Swap(MultiTaskParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline MultiTaskParam* New() const final {
    return CreateMaybeMessage<MultiTaskParam>(nullptr);
  }

  MultiTaskParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<MultiTaskParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const MultiTaskParam& from);
  void MergeFrom(const MultiTaskParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MultiTaskParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MultiTaskParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kThConfFieldNumber = 1,
    kPriorBoxParamFieldNumber = 7,
    kLocNameFieldNumber = 8,
    kConfNameFieldNumber = 9,
    kSegNameFieldNumber = 10,
    kNumOfDetectionClassesFieldNumber = 2,
    kNumOfSegmentationClassesFieldNumber = 3,
    kKeepTopKFieldNumber = 4,
    kTopKFieldNumber = 5,
    kNmsThresholdFieldNumber = 6,
  };
  // repeated float th_conf = 1;
  int th_conf_size() const;
  void clear_th_conf();
  float th_conf(int index) const;
  void set_th_conf(int index, float value);
  void add_th_conf(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      th_conf() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_th_conf();

  // repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 7;
  int prior_box_param_size() const;
  void clear_prior_box_param();
  ::vitis::ai::proto::PriorBoxParam* mutable_prior_box_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
      mutable_prior_box_param();
  const ::vitis::ai::proto::PriorBoxParam& prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* add_prior_box_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
      prior_box_param() const;

  // repeated string loc_name = 8;
  int loc_name_size() const;
  void clear_loc_name();
  const std::string& loc_name(int index) const;
  std::string* mutable_loc_name(int index);
  void set_loc_name(int index, const std::string& value);
  void set_loc_name(int index, std::string&& value);
  void set_loc_name(int index, const char* value);
  void set_loc_name(int index, const char* value, size_t size);
  std::string* add_loc_name();
  void add_loc_name(const std::string& value);
  void add_loc_name(std::string&& value);
  void add_loc_name(const char* value);
  void add_loc_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& loc_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_loc_name();

  // repeated string conf_name = 9;
  int conf_name_size() const;
  void clear_conf_name();
  const std::string& conf_name(int index) const;
  std::string* mutable_conf_name(int index);
  void set_conf_name(int index, const std::string& value);
  void set_conf_name(int index, std::string&& value);
  void set_conf_name(int index, const char* value);
  void set_conf_name(int index, const char* value, size_t size);
  std::string* add_conf_name();
  void add_conf_name(const std::string& value);
  void add_conf_name(std::string&& value);
  void add_conf_name(const char* value);
  void add_conf_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& conf_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_conf_name();

  // optional string seg_name = 10;
  bool has_seg_name() const;
  void clear_seg_name();
  const std::string& seg_name() const;
  void set_seg_name(const std::string& value);
  void set_seg_name(std::string&& value);
  void set_seg_name(const char* value);
  void set_seg_name(const char* value, size_t size);
  std::string* mutable_seg_name();
  std::string* release_seg_name();
  void set_allocated_seg_name(std::string* seg_name);

  // optional int32 num_of_detection_classes = 2;
  bool has_num_of_detection_classes() const;
  void clear_num_of_detection_classes();
  ::PROTOBUF_NAMESPACE_ID::int32 num_of_detection_classes() const;
  void set_num_of_detection_classes(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 num_of_segmentation_classes = 3;
  bool has_num_of_segmentation_classes() const;
  void clear_num_of_segmentation_classes();
  ::PROTOBUF_NAMESPACE_ID::int32 num_of_segmentation_classes() const;
  void set_num_of_segmentation_classes(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 keep_top_k = 4;
  bool has_keep_top_k() const;
  void clear_keep_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k() const;
  void set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 top_k = 5;
  bool has_top_k() const;
  void clear_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 top_k() const;
  void set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float nms_threshold = 6;
  bool has_nms_threshold() const;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MultiTaskParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > th_conf_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam > prior_box_param_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> loc_name_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> conf_name_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr seg_name_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_of_detection_classes_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_of_segmentation_classes_;
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k_;
  ::PROTOBUF_NAMESPACE_ID::int32 top_k_;
  float nms_threshold_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RoadlineParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RoadlineParam) */ {
 public:
  RoadlineParam();
  virtual ~RoadlineParam();

  RoadlineParam(const RoadlineParam& from);
  RoadlineParam(RoadlineParam&& from) noexcept
    : RoadlineParam() {
    *this = ::std::move(from);
  }

  inline RoadlineParam& operator=(const RoadlineParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RoadlineParam& operator=(RoadlineParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RoadlineParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RoadlineParam* internal_default_instance() {
    return reinterpret_cast<const RoadlineParam*>(
               &_RoadlineParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

  friend void swap(RoadlineParam& a, RoadlineParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RoadlineParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RoadlineParam* New() const final {
    return CreateMaybeMessage<RoadlineParam>(nullptr);
  }

  RoadlineParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RoadlineParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RoadlineParam& from);
  void MergeFrom(const RoadlineParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RoadlineParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RoadlineParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kLayerNameFieldNumber = 17,
    kRatioFieldNumber = 1,
    kIpmWidthFieldNumber = 2,
    kIpmHeightFieldNumber = 3,
    kIpmLeftFieldNumber = 4,
    kIpmRightFieldNumber = 5,
    kIpmTopFieldNumber = 6,
    kIpmBottomFieldNumber = 7,
    kIpmInterpolationFieldNumber = 8,
    kIpmVpPortionFieldNumber = 9,
    kFocalLengthXFieldNumber = 10,
    kFocalLengthYFieldNumber = 11,
    kOpticalCenterXFieldNumber = 12,
    kOpticalCenterYFieldNumber = 13,
    kCameraHeightFieldNumber = 14,
    kPitchFieldNumber = 15,
    kYawFieldNumber = 16,
  };
  // repeated string layer_name = 17;
  int layer_name_size() const;
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();

  // optional int32 ratio = 1;
  bool has_ratio() const;
  void clear_ratio();
  ::PROTOBUF_NAMESPACE_ID::int32 ratio() const;
  void set_ratio(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float ipm_width = 2;
  bool has_ipm_width() const;
  void clear_ipm_width();
  float ipm_width() const;
  void set_ipm_width(float value);

  // optional float ipm_height = 3;
  bool has_ipm_height() const;
  void clear_ipm_height();
  float ipm_height() const;
  void set_ipm_height(float value);

  // optional float ipm_left = 4;
  bool has_ipm_left() const;
  void clear_ipm_left();
  float ipm_left() const;
  void set_ipm_left(float value);

  // optional float ipm_right = 5;
  bool has_ipm_right() const;
  void clear_ipm_right();
  float ipm_right() const;
  void set_ipm_right(float value);

  // optional float ipm_top = 6;
  bool has_ipm_top() const;
  void clear_ipm_top();
  float ipm_top() const;
  void set_ipm_top(float value);

  // optional float ipm_bottom = 7;
  bool has_ipm_bottom() const;
  void clear_ipm_bottom();
  float ipm_bottom() const;
  void set_ipm_bottom(float value);

  // optional float ipm_interpolation = 8;
  bool has_ipm_interpolation() const;
  void clear_ipm_interpolation();
  float ipm_interpolation() const;
  void set_ipm_interpolation(float value);

  // optional float ipm_vp_portion = 9;
  bool has_ipm_vp_portion() const;
  void clear_ipm_vp_portion();
  float ipm_vp_portion() const;
  void set_ipm_vp_portion(float value);

  // optional float focal_length_x = 10;
  bool has_focal_length_x() const;
  void clear_focal_length_x();
  float focal_length_x() const;
  void set_focal_length_x(float value);

  // optional float focal_length_y = 11;
  bool has_focal_length_y() const;
  void clear_focal_length_y();
  float focal_length_y() const;
  void set_focal_length_y(float value);

  // optional float optical_center_x = 12;
  bool has_optical_center_x() const;
  void clear_optical_center_x();
  float optical_center_x() const;
  void set_optical_center_x(float value);

  // optional float optical_center_y = 13;
  bool has_optical_center_y() const;
  void clear_optical_center_y();
  float optical_center_y() const;
  void set_optical_center_y(float value);

  // optional float camera_height = 14;
  bool has_camera_height() const;
  void clear_camera_height();
  float camera_height() const;
  void set_camera_height(float value);

  // optional float pitch = 15;
  bool has_pitch() const;
  void clear_pitch();
  float pitch() const;
  void set_pitch(float value);

  // optional float yaw = 16;
  bool has_yaw() const;
  void clear_yaw();
  float yaw() const;
  void set_yaw(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RoadlineParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
  ::PROTOBUF_NAMESPACE_ID::int32 ratio_;
  float ipm_width_;
  float ipm_height_;
  float ipm_left_;
  float ipm_right_;
  float ipm_top_;
  float ipm_bottom_;
  float ipm_interpolation_;
  float ipm_vp_portion_;
  float focal_length_x_;
  float focal_length_y_;
  float optical_center_x_;
  float optical_center_y_;
  float camera_height_;
  float pitch_;
  float yaw_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RoadlineDeephiParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RoadlineDeephiParam) */ {
 public:
  RoadlineDeephiParam();
  virtual ~RoadlineDeephiParam();

  RoadlineDeephiParam(const RoadlineDeephiParam& from);
  RoadlineDeephiParam(RoadlineDeephiParam&& from) noexcept
    : RoadlineDeephiParam() {
    *this = ::std::move(from);
  }

  inline RoadlineDeephiParam& operator=(const RoadlineDeephiParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RoadlineDeephiParam& operator=(RoadlineDeephiParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RoadlineDeephiParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RoadlineDeephiParam* internal_default_instance() {
    return reinterpret_cast<const RoadlineDeephiParam*>(
               &_RoadlineDeephiParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    15;

  friend void swap(RoadlineDeephiParam& a, RoadlineDeephiParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RoadlineDeephiParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RoadlineDeephiParam* New() const final {
    return CreateMaybeMessage<RoadlineDeephiParam>(nullptr);
  }

  RoadlineDeephiParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RoadlineDeephiParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RoadlineDeephiParam& from);
  void MergeFrom(const RoadlineDeephiParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RoadlineDeephiParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RoadlineDeephiParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kResizeWFieldNumber = 1,
    kResizeHFieldNumber = 2,
    kCropXFieldNumber = 3,
    kCropYFieldNumber = 4,
    kCropWFieldNumber = 5,
    kCropHFieldNumber = 6,
    kAreaThresholdFieldNumber = 7,
    kEpowFieldNumber = 8,
  };
  // optional int32 resize_w = 1;
  bool has_resize_w() const;
  void clear_resize_w();
  ::PROTOBUF_NAMESPACE_ID::int32 resize_w() const;
  void set_resize_w(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 resize_h = 2;
  bool has_resize_h() const;
  void clear_resize_h();
  ::PROTOBUF_NAMESPACE_ID::int32 resize_h() const;
  void set_resize_h(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 crop_x = 3;
  bool has_crop_x() const;
  void clear_crop_x();
  ::PROTOBUF_NAMESPACE_ID::int32 crop_x() const;
  void set_crop_x(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 crop_y = 4;
  bool has_crop_y() const;
  void clear_crop_y();
  ::PROTOBUF_NAMESPACE_ID::int32 crop_y() const;
  void set_crop_y(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 crop_w = 5;
  bool has_crop_w() const;
  void clear_crop_w();
  ::PROTOBUF_NAMESPACE_ID::int32 crop_w() const;
  void set_crop_w(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 crop_h = 6;
  bool has_crop_h() const;
  void clear_crop_h();
  ::PROTOBUF_NAMESPACE_ID::int32 crop_h() const;
  void set_crop_h(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 area_threshold = 7;
  bool has_area_threshold() const;
  void clear_area_threshold();
  ::PROTOBUF_NAMESPACE_ID::int32 area_threshold() const;
  void set_area_threshold(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 epow = 8;
  bool has_epow() const;
  void clear_epow();
  ::PROTOBUF_NAMESPACE_ID::int32 epow() const;
  void set_epow(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RoadlineDeephiParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 resize_w_;
  ::PROTOBUF_NAMESPACE_ID::int32 resize_h_;
  ::PROTOBUF_NAMESPACE_ID::int32 crop_x_;
  ::PROTOBUF_NAMESPACE_ID::int32 crop_y_;
  ::PROTOBUF_NAMESPACE_ID::int32 crop_w_;
  ::PROTOBUF_NAMESPACE_ID::int32 crop_h_;
  ::PROTOBUF_NAMESPACE_ID::int32 area_threshold_;
  ::PROTOBUF_NAMESPACE_ID::int32 epow_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SegmentationParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SegmentationParam) */ {
 public:
  SegmentationParam();
  virtual ~SegmentationParam();

  SegmentationParam(const SegmentationParam& from);
  SegmentationParam(SegmentationParam&& from) noexcept
    : SegmentationParam() {
    *this = ::std::move(from);
  }

  inline SegmentationParam& operator=(const SegmentationParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline SegmentationParam& operator=(SegmentationParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SegmentationParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SegmentationParam* internal_default_instance() {
    return reinterpret_cast<const SegmentationParam*>(
               &_SegmentationParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    16;

  friend void swap(SegmentationParam& a, SegmentationParam& b) {
    a.Swap(&b);
  }
  inline void Swap(SegmentationParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SegmentationParam* New() const final {
    return CreateMaybeMessage<SegmentationParam>(nullptr);
  }

  SegmentationParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SegmentationParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SegmentationParam& from);
  void MergeFrom(const SegmentationParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SegmentationParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SegmentationParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kColor1FieldNumber = 1,
    kColor2FieldNumber = 2,
    kColor3FieldNumber = 3,
  };
  // optional string color1 = 1;
  bool has_color1() const;
  void clear_color1();
  const std::string& color1() const;
  void set_color1(const std::string& value);
  void set_color1(std::string&& value);
  void set_color1(const char* value);
  void set_color1(const char* value, size_t size);
  std::string* mutable_color1();
  std::string* release_color1();
  void set_allocated_color1(std::string* color1);

  // optional string color2 = 2;
  bool has_color2() const;
  void clear_color2();
  const std::string& color2() const;
  void set_color2(const std::string& value);
  void set_color2(std::string&& value);
  void set_color2(const char* value);
  void set_color2(const char* value, size_t size);
  std::string* mutable_color2();
  std::string* release_color2();
  void set_allocated_color2(std::string* color2);

  // optional string color3 = 3;
  bool has_color3() const;
  void clear_color3();
  const std::string& color3() const;
  void set_color3(const std::string& value);
  void set_color3(std::string&& value);
  void set_color3(const char* value);
  void set_color3(const char* value, size_t size);
  std::string* mutable_color3();
  std::string* release_color3();
  void set_allocated_color3(std::string* color3);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SegmentationParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr color1_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr color2_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr color3_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PlatenumParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PlatenumParam) */ {
 public:
  PlatenumParam();
  virtual ~PlatenumParam();

  PlatenumParam(const PlatenumParam& from);
  PlatenumParam(PlatenumParam&& from) noexcept
    : PlatenumParam() {
    *this = ::std::move(from);
  }

  inline PlatenumParam& operator=(const PlatenumParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlatenumParam& operator=(PlatenumParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const PlatenumParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PlatenumParam* internal_default_instance() {
    return reinterpret_cast<const PlatenumParam*>(
               &_PlatenumParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    17;

  friend void swap(PlatenumParam& a, PlatenumParam& b) {
    a.Swap(&b);
  }
  inline void Swap(PlatenumParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PlatenumParam* New() const final {
    return CreateMaybeMessage<PlatenumParam>(nullptr);
  }

  PlatenumParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PlatenumParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PlatenumParam& from);
  void MergeFrom(const PlatenumParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PlatenumParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PlatenumParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFirstFieldNumber = 1,
    kSecondFieldNumber = 2,
    kOutputTensorNameFieldNumber = 3,
  };
  // repeated int32 first = 1;
  int first_size() const;
  void clear_first();
  ::PROTOBUF_NAMESPACE_ID::int32 first(int index) const;
  void set_first(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_first(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      first() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_first();

  // repeated int32 second = 2;
  int second_size() const;
  void clear_second();
  ::PROTOBUF_NAMESPACE_ID::int32 second(int index) const;
  void set_second(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_second(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      second() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_second();

  // repeated string output_tensor_name = 3;
  int output_tensor_name_size() const;
  void clear_output_tensor_name();
  const std::string& output_tensor_name(int index) const;
  std::string* mutable_output_tensor_name(int index);
  void set_output_tensor_name(int index, const std::string& value);
  void set_output_tensor_name(int index, std::string&& value);
  void set_output_tensor_name(int index, const char* value);
  void set_output_tensor_name(int index, const char* value, size_t size);
  std::string* add_output_tensor_name();
  void add_output_tensor_name(const std::string& value);
  void add_output_tensor_name(std::string&& value);
  void add_output_tensor_name(const char* value);
  void add_output_tensor_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& output_tensor_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_output_tensor_name();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PlatenumParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > first_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > second_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> output_tensor_name_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class LaneParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.LaneParam) */ {
 public:
  LaneParam();
  virtual ~LaneParam();

  LaneParam(const LaneParam& from);
  LaneParam(LaneParam&& from) noexcept
    : LaneParam() {
    *this = ::std::move(from);
  }

  inline LaneParam& operator=(const LaneParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline LaneParam& operator=(LaneParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const LaneParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const LaneParam* internal_default_instance() {
    return reinterpret_cast<const LaneParam*>(
               &_LaneParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    18;

  friend void swap(LaneParam& a, LaneParam& b) {
    a.Swap(&b);
  }
  inline void Swap(LaneParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline LaneParam* New() const final {
    return CreateMaybeMessage<LaneParam>(nullptr);
  }

  LaneParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<LaneParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const LaneParam& from);
  void MergeFrom(const LaneParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LaneParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.LaneParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kRoiXFieldNumber = 1,
    kRoiYFieldNumber = 2,
    kExpectHeightFieldNumber = 3,
  };
  // optional int32 roi_x = 1;
  bool has_roi_x() const;
  void clear_roi_x();
  ::PROTOBUF_NAMESPACE_ID::int32 roi_x() const;
  void set_roi_x(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 roi_y = 2;
  bool has_roi_y() const;
  void clear_roi_y();
  ::PROTOBUF_NAMESPACE_ID::int32 roi_y() const;
  void set_roi_y(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 expect_height = 3;
  bool has_expect_height() const;
  void clear_expect_height();
  ::PROTOBUF_NAMESPACE_ID::int32 expect_height() const;
  void set_expect_height(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.LaneParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 roi_x_;
  ::PROTOBUF_NAMESPACE_ID::int32 roi_y_;
  ::PROTOBUF_NAMESPACE_ID::int32 expect_height_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class BlinkerParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.BlinkerParam) */ {
 public:
  BlinkerParam();
  virtual ~BlinkerParam();

  BlinkerParam(const BlinkerParam& from);
  BlinkerParam(BlinkerParam&& from) noexcept
    : BlinkerParam() {
    *this = ::std::move(from);
  }

  inline BlinkerParam& operator=(const BlinkerParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline BlinkerParam& operator=(BlinkerParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const BlinkerParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const BlinkerParam* internal_default_instance() {
    return reinterpret_cast<const BlinkerParam*>(
               &_BlinkerParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    19;

  friend void swap(BlinkerParam& a, BlinkerParam& b) {
    a.Swap(&b);
  }
  inline void Swap(BlinkerParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline BlinkerParam* New() const final {
    return CreateMaybeMessage<BlinkerParam>(nullptr);
  }

  BlinkerParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<BlinkerParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const BlinkerParam& from);
  void MergeFrom(const BlinkerParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BlinkerParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.BlinkerParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPriorBoxParamFieldNumber = 1,
    kConfThresholdFieldNumber = 4,
    kNumClassesFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kKeepTopKFieldNumber = 5,
    kTopKFieldNumber = 6,
  };
  // repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
  int prior_box_param_size() const;
  void clear_prior_box_param();
  ::vitis::ai::proto::PriorBoxParam* mutable_prior_box_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
      mutable_prior_box_param();
  const ::vitis::ai::proto::PriorBoxParam& prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* add_prior_box_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
      prior_box_param() const;

  // repeated float conf_threshold = 4;
  int conf_threshold_size() const;
  void clear_conf_threshold();
  float conf_threshold(int index) const;
  void set_conf_threshold(int index, float value);
  void add_conf_threshold(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      conf_threshold() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_conf_threshold();

  // optional int32 num_classes = 2;
  bool has_num_classes() const;
  void clear_num_classes();
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes() const;
  void set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float nms_threshold = 3;
  bool has_nms_threshold() const;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);

  // optional int32 keep_top_k = 5;
  bool has_keep_top_k() const;
  void clear_keep_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k() const;
  void set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 top_k = 6;
  bool has_top_k() const;
  void clear_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 top_k() const;
  void set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.BlinkerParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam > prior_box_param_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > conf_threshold_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes_;
  float nms_threshold_;
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k_;
  ::PROTOBUF_NAMESPACE_ID::int32 top_k_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SegdetParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SegdetParam) */ {
 public:
  SegdetParam();
  virtual ~SegdetParam();

  SegdetParam(const SegdetParam& from);
  SegdetParam(SegdetParam&& from) noexcept
    : SegdetParam() {
    *this = ::std::move(from);
  }

  inline SegdetParam& operator=(const SegdetParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline SegdetParam& operator=(SegdetParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SegdetParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SegdetParam* internal_default_instance() {
    return reinterpret_cast<const SegdetParam*>(
               &_SegdetParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    20;

  friend void swap(SegdetParam& a, SegdetParam& b) {
    a.Swap(&b);
  }
  inline void Swap(SegdetParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SegdetParam* New() const final {
    return CreateMaybeMessage<SegdetParam>(nullptr);
  }

  SegdetParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SegdetParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SegdetParam& from);
  void MergeFrom(const SegdetParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SegdetParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SegdetParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPriorBoxParamFieldNumber = 1,
    kConfThresholdFieldNumber = 4,
    kNumClassesFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kKeepTopKFieldNumber = 5,
    kTopKFieldNumber = 6,
  };
  // repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
  int prior_box_param_size() const;
  void clear_prior_box_param();
  ::vitis::ai::proto::PriorBoxParam* mutable_prior_box_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
      mutable_prior_box_param();
  const ::vitis::ai::proto::PriorBoxParam& prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* add_prior_box_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
      prior_box_param() const;

  // repeated float conf_threshold = 4;
  int conf_threshold_size() const;
  void clear_conf_threshold();
  float conf_threshold(int index) const;
  void set_conf_threshold(int index, float value);
  void add_conf_threshold(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      conf_threshold() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_conf_threshold();

  // optional int32 num_classes = 2;
  bool has_num_classes() const;
  void clear_num_classes();
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes() const;
  void set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float nms_threshold = 3;
  bool has_nms_threshold() const;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);

  // optional int32 keep_top_k = 5;
  bool has_keep_top_k() const;
  void clear_keep_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k() const;
  void set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 top_k = 6;
  bool has_top_k() const;
  void clear_top_k();
  ::PROTOBUF_NAMESPACE_ID::int32 top_k() const;
  void set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SegdetParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam > prior_box_param_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > conf_threshold_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_classes_;
  float nms_threshold_;
  ::PROTOBUF_NAMESPACE_ID::int32 keep_top_k_;
  ::PROTOBUF_NAMESPACE_ID::int32 top_k_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FaceQuality5ptParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FaceQuality5ptParam) */ {
 public:
  FaceQuality5ptParam();
  virtual ~FaceQuality5ptParam();

  FaceQuality5ptParam(const FaceQuality5ptParam& from);
  FaceQuality5ptParam(FaceQuality5ptParam&& from) noexcept
    : FaceQuality5ptParam() {
    *this = ::std::move(from);
  }

  inline FaceQuality5ptParam& operator=(const FaceQuality5ptParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline FaceQuality5ptParam& operator=(FaceQuality5ptParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const FaceQuality5ptParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FaceQuality5ptParam* internal_default_instance() {
    return reinterpret_cast<const FaceQuality5ptParam*>(
               &_FaceQuality5ptParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    21;

  friend void swap(FaceQuality5ptParam& a, FaceQuality5ptParam& b) {
    a.Swap(&b);
  }
  inline void Swap(FaceQuality5ptParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FaceQuality5ptParam* New() const final {
    return CreateMaybeMessage<FaceQuality5ptParam>(nullptr);
  }

  FaceQuality5ptParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FaceQuality5ptParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FaceQuality5ptParam& from);
  void MergeFrom(const FaceQuality5ptParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FaceQuality5ptParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FaceQuality5ptParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kQualityLayerNameFieldNumber = 3,
    kPointLayerNameFieldNumber = 4,
    kUseDayNightModeFieldNumber = 1,
    kOriginalQualityFieldNumber = 2,
  };
  // optional string quality_layer_name = 3;
  bool has_quality_layer_name() const;
  void clear_quality_layer_name();
  const std::string& quality_layer_name() const;
  void set_quality_layer_name(const std::string& value);
  void set_quality_layer_name(std::string&& value);
  void set_quality_layer_name(const char* value);
  void set_quality_layer_name(const char* value, size_t size);
  std::string* mutable_quality_layer_name();
  std::string* release_quality_layer_name();
  void set_allocated_quality_layer_name(std::string* quality_layer_name);

  // optional string point_layer_name = 4;
  bool has_point_layer_name() const;
  void clear_point_layer_name();
  const std::string& point_layer_name() const;
  void set_point_layer_name(const std::string& value);
  void set_point_layer_name(std::string&& value);
  void set_point_layer_name(const char* value);
  void set_point_layer_name(const char* value, size_t size);
  std::string* mutable_point_layer_name();
  std::string* release_point_layer_name();
  void set_allocated_point_layer_name(std::string* point_layer_name);

  // optional bool use_day_night_mode = 1;
  bool has_use_day_night_mode() const;
  void clear_use_day_night_mode();
  bool use_day_night_mode() const;
  void set_use_day_night_mode(bool value);

  // optional bool original_quality = 2;
  bool has_original_quality() const;
  void clear_original_quality();
  bool original_quality() const;
  void set_original_quality(bool value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FaceQuality5ptParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr quality_layer_name_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr point_layer_name_;
  bool use_day_night_mode_;
  bool original_quality_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RetinaFaceParam_OutputAnchorInfo :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo) */ {
 public:
  RetinaFaceParam_OutputAnchorInfo();
  virtual ~RetinaFaceParam_OutputAnchorInfo();

  RetinaFaceParam_OutputAnchorInfo(const RetinaFaceParam_OutputAnchorInfo& from);
  RetinaFaceParam_OutputAnchorInfo(RetinaFaceParam_OutputAnchorInfo&& from) noexcept
    : RetinaFaceParam_OutputAnchorInfo() {
    *this = ::std::move(from);
  }

  inline RetinaFaceParam_OutputAnchorInfo& operator=(const RetinaFaceParam_OutputAnchorInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline RetinaFaceParam_OutputAnchorInfo& operator=(RetinaFaceParam_OutputAnchorInfo&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RetinaFaceParam_OutputAnchorInfo& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RetinaFaceParam_OutputAnchorInfo* internal_default_instance() {
    return reinterpret_cast<const RetinaFaceParam_OutputAnchorInfo*>(
               &_RetinaFaceParam_OutputAnchorInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    22;

  friend void swap(RetinaFaceParam_OutputAnchorInfo& a, RetinaFaceParam_OutputAnchorInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(RetinaFaceParam_OutputAnchorInfo* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RetinaFaceParam_OutputAnchorInfo* New() const final {
    return CreateMaybeMessage<RetinaFaceParam_OutputAnchorInfo>(nullptr);
  }

  RetinaFaceParam_OutputAnchorInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RetinaFaceParam_OutputAnchorInfo>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RetinaFaceParam_OutputAnchorInfo& from);
  void MergeFrom(const RetinaFaceParam_OutputAnchorInfo& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RetinaFaceParam_OutputAnchorInfo* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kTypeFieldNumber = 1,
    kIndexFieldNumber = 2,
  };
  // optional .vitis.ai.proto.RetinaFaceParam.AnchorType type = 1;
  bool has_type() const;
  void clear_type();
  ::vitis::ai::proto::RetinaFaceParam_AnchorType type() const;
  void set_type(::vitis::ai::proto::RetinaFaceParam_AnchorType value);

  // optional int32 index = 2;
  bool has_index() const;
  void clear_index();
  ::PROTOBUF_NAMESPACE_ID::int32 index() const;
  void set_index(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  int type_;
  ::PROTOBUF_NAMESPACE_ID::int32 index_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RetinaFaceParam_OutputInfo :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RetinaFaceParam.OutputInfo) */ {
 public:
  RetinaFaceParam_OutputInfo();
  virtual ~RetinaFaceParam_OutputInfo();

  RetinaFaceParam_OutputInfo(const RetinaFaceParam_OutputInfo& from);
  RetinaFaceParam_OutputInfo(RetinaFaceParam_OutputInfo&& from) noexcept
    : RetinaFaceParam_OutputInfo() {
    *this = ::std::move(from);
  }

  inline RetinaFaceParam_OutputInfo& operator=(const RetinaFaceParam_OutputInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline RetinaFaceParam_OutputInfo& operator=(RetinaFaceParam_OutputInfo&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RetinaFaceParam_OutputInfo& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RetinaFaceParam_OutputInfo* internal_default_instance() {
    return reinterpret_cast<const RetinaFaceParam_OutputInfo*>(
               &_RetinaFaceParam_OutputInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    23;

  friend void swap(RetinaFaceParam_OutputInfo& a, RetinaFaceParam_OutputInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(RetinaFaceParam_OutputInfo* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RetinaFaceParam_OutputInfo* New() const final {
    return CreateMaybeMessage<RetinaFaceParam_OutputInfo>(nullptr);
  }

  RetinaFaceParam_OutputInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RetinaFaceParam_OutputInfo>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RetinaFaceParam_OutputInfo& from);
  void MergeFrom(const RetinaFaceParam_OutputInfo& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RetinaFaceParam_OutputInfo* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RetinaFaceParam.OutputInfo";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kNameFieldNumber = 3,
    kOutputAnchorInfoFieldNumber = 4,
    kTypeFieldNumber = 1,
    kStrideFieldNumber = 2,
  };
  // optional string name = 3;
  bool has_name() const;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* name);

  // optional .vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo output_anchor_info = 4;
  bool has_output_anchor_info() const;
  void clear_output_anchor_info();
  const ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo& output_anchor_info() const;
  ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* release_output_anchor_info();
  ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* mutable_output_anchor_info();
  void set_allocated_output_anchor_info(::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* output_anchor_info);

  // optional .vitis.ai.proto.RetinaFaceParam.OutputType type = 1;
  bool has_type() const;
  void clear_type();
  ::vitis::ai::proto::RetinaFaceParam_OutputType type() const;
  void set_type(::vitis::ai::proto::RetinaFaceParam_OutputType value);

  // optional int32 stride = 2;
  bool has_stride() const;
  void clear_stride();
  ::PROTOBUF_NAMESPACE_ID::int32 stride() const;
  void set_stride(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RetinaFaceParam.OutputInfo)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* output_anchor_info_;
  int type_;
  ::PROTOBUF_NAMESPACE_ID::int32 stride_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RetinaFaceParam_AnchorParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RetinaFaceParam.AnchorParam) */ {
 public:
  RetinaFaceParam_AnchorParam();
  virtual ~RetinaFaceParam_AnchorParam();

  RetinaFaceParam_AnchorParam(const RetinaFaceParam_AnchorParam& from);
  RetinaFaceParam_AnchorParam(RetinaFaceParam_AnchorParam&& from) noexcept
    : RetinaFaceParam_AnchorParam() {
    *this = ::std::move(from);
  }

  inline RetinaFaceParam_AnchorParam& operator=(const RetinaFaceParam_AnchorParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RetinaFaceParam_AnchorParam& operator=(RetinaFaceParam_AnchorParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RetinaFaceParam_AnchorParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RetinaFaceParam_AnchorParam* internal_default_instance() {
    return reinterpret_cast<const RetinaFaceParam_AnchorParam*>(
               &_RetinaFaceParam_AnchorParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    24;

  friend void swap(RetinaFaceParam_AnchorParam& a, RetinaFaceParam_AnchorParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RetinaFaceParam_AnchorParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RetinaFaceParam_AnchorParam* New() const final {
    return CreateMaybeMessage<RetinaFaceParam_AnchorParam>(nullptr);
  }

  RetinaFaceParam_AnchorParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RetinaFaceParam_AnchorParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RetinaFaceParam_AnchorParam& from);
  void MergeFrom(const RetinaFaceParam_AnchorParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RetinaFaceParam_AnchorParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RetinaFaceParam.AnchorParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kRatiosFieldNumber = 3,
    kScalesFieldNumber = 4,
    kStrideFieldNumber = 1,
    kBaseSizeFieldNumber = 2,
  };
  // repeated float ratios = 3;
  int ratios_size() const;
  void clear_ratios();
  float ratios(int index) const;
  void set_ratios(int index, float value);
  void add_ratios(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      ratios() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_ratios();

  // repeated int32 scales = 4;
  int scales_size() const;
  void clear_scales();
  ::PROTOBUF_NAMESPACE_ID::int32 scales(int index) const;
  void set_scales(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_scales(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      scales() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_scales();

  // optional int32 stride = 1;
  bool has_stride() const;
  void clear_stride();
  ::PROTOBUF_NAMESPACE_ID::int32 stride() const;
  void set_stride(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional int32 base_size = 2;
  bool has_base_size() const;
  void clear_base_size();
  ::PROTOBUF_NAMESPACE_ID::int32 base_size() const;
  void set_base_size(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RetinaFaceParam.AnchorParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > ratios_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > scales_;
  ::PROTOBUF_NAMESPACE_ID::int32 stride_;
  ::PROTOBUF_NAMESPACE_ID::int32 base_size_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RetinaFaceParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RetinaFaceParam) */ {
 public:
  RetinaFaceParam();
  virtual ~RetinaFaceParam();

  RetinaFaceParam(const RetinaFaceParam& from);
  RetinaFaceParam(RetinaFaceParam&& from) noexcept
    : RetinaFaceParam() {
    *this = ::std::move(from);
  }

  inline RetinaFaceParam& operator=(const RetinaFaceParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RetinaFaceParam& operator=(RetinaFaceParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RetinaFaceParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RetinaFaceParam* internal_default_instance() {
    return reinterpret_cast<const RetinaFaceParam*>(
               &_RetinaFaceParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    25;

  friend void swap(RetinaFaceParam& a, RetinaFaceParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RetinaFaceParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RetinaFaceParam* New() const final {
    return CreateMaybeMessage<RetinaFaceParam>(nullptr);
  }

  RetinaFaceParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RetinaFaceParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RetinaFaceParam& from);
  void MergeFrom(const RetinaFaceParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RetinaFaceParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RetinaFaceParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef RetinaFaceParam_OutputAnchorInfo OutputAnchorInfo;
  typedef RetinaFaceParam_OutputInfo OutputInfo;
  typedef RetinaFaceParam_AnchorParam AnchorParam;

  typedef RetinaFaceParam_OutputType OutputType;
  static constexpr OutputType USELESS =
    RetinaFaceParam_OutputType_USELESS;
  static constexpr OutputType CONF =
    RetinaFaceParam_OutputType_CONF;
  static constexpr OutputType BBOX =
    RetinaFaceParam_OutputType_BBOX;
  static constexpr OutputType LANDMARK =
    RetinaFaceParam_OutputType_LANDMARK;
  static inline bool OutputType_IsValid(int value) {
    return RetinaFaceParam_OutputType_IsValid(value);
  }
  static constexpr OutputType OutputType_MIN =
    RetinaFaceParam_OutputType_OutputType_MIN;
  static constexpr OutputType OutputType_MAX =
    RetinaFaceParam_OutputType_OutputType_MAX;
  static constexpr int OutputType_ARRAYSIZE =
    RetinaFaceParam_OutputType_OutputType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  OutputType_descriptor() {
    return RetinaFaceParam_OutputType_descriptor();
  }
  template<typename T>
  static inline const std::string& OutputType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, OutputType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function OutputType_Name.");
    return RetinaFaceParam_OutputType_Name(enum_t_value);
  }
  static inline bool OutputType_Parse(const std::string& name,
      OutputType* value) {
    return RetinaFaceParam_OutputType_Parse(name, value);
  }

  typedef RetinaFaceParam_AnchorType AnchorType;
  static constexpr AnchorType BG =
    RetinaFaceParam_AnchorType_BG;
  static constexpr AnchorType FG =
    RetinaFaceParam_AnchorType_FG;
  static inline bool AnchorType_IsValid(int value) {
    return RetinaFaceParam_AnchorType_IsValid(value);
  }
  static constexpr AnchorType AnchorType_MIN =
    RetinaFaceParam_AnchorType_AnchorType_MIN;
  static constexpr AnchorType AnchorType_MAX =
    RetinaFaceParam_AnchorType_AnchorType_MAX;
  static constexpr int AnchorType_ARRAYSIZE =
    RetinaFaceParam_AnchorType_AnchorType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  AnchorType_descriptor() {
    return RetinaFaceParam_AnchorType_descriptor();
  }
  template<typename T>
  static inline const std::string& AnchorType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, AnchorType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function AnchorType_Name.");
    return RetinaFaceParam_AnchorType_Name(enum_t_value);
  }
  static inline bool AnchorType_Parse(const std::string& name,
      AnchorType* value) {
    return RetinaFaceParam_AnchorType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kOutputInfoFieldNumber = 1,
    kAnchorParamFieldNumber = 4,
    kNmsThresholdFieldNumber = 2,
    kDetThresholdFieldNumber = 3,
  };
  // repeated .vitis.ai.proto.RetinaFaceParam.OutputInfo output_info = 1;
  int output_info_size() const;
  void clear_output_info();
  ::vitis::ai::proto::RetinaFaceParam_OutputInfo* mutable_output_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_OutputInfo >*
      mutable_output_info();
  const ::vitis::ai::proto::RetinaFaceParam_OutputInfo& output_info(int index) const;
  ::vitis::ai::proto::RetinaFaceParam_OutputInfo* add_output_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_OutputInfo >&
      output_info() const;

  // repeated .vitis.ai.proto.RetinaFaceParam.AnchorParam anchor_param = 4;
  int anchor_param_size() const;
  void clear_anchor_param();
  ::vitis::ai::proto::RetinaFaceParam_AnchorParam* mutable_anchor_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_AnchorParam >*
      mutable_anchor_param();
  const ::vitis::ai::proto::RetinaFaceParam_AnchorParam& anchor_param(int index) const;
  ::vitis::ai::proto::RetinaFaceParam_AnchorParam* add_anchor_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_AnchorParam >&
      anchor_param() const;

  // optional float nms_threshold = 2;
  bool has_nms_threshold() const;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);

  // optional float det_threshold = 3;
  bool has_det_threshold() const;
  void clear_det_threshold();
  float det_threshold() const;
  void set_det_threshold(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RetinaFaceParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_OutputInfo > output_info_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_AnchorParam > anchor_param_;
  float nms_threshold_;
  float det_threshold_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DpuKernelParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DpuKernelParam) */ {
 public:
  DpuKernelParam();
  virtual ~DpuKernelParam();

  DpuKernelParam(const DpuKernelParam& from);
  DpuKernelParam(DpuKernelParam&& from) noexcept
    : DpuKernelParam() {
    *this = ::std::move(from);
  }

  inline DpuKernelParam& operator=(const DpuKernelParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline DpuKernelParam& operator=(DpuKernelParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const DpuKernelParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DpuKernelParam* internal_default_instance() {
    return reinterpret_cast<const DpuKernelParam*>(
               &_DpuKernelParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    26;

  friend void swap(DpuKernelParam& a, DpuKernelParam& b) {
    a.Swap(&b);
  }
  inline void Swap(DpuKernelParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DpuKernelParam* New() const final {
    return CreateMaybeMessage<DpuKernelParam>(nullptr);
  }

  DpuKernelParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DpuKernelParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DpuKernelParam& from);
  void MergeFrom(const DpuKernelParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DpuKernelParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DpuKernelParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMeanFieldNumber = 2,
    kScaleFieldNumber = 3,
    kNameFieldNumber = 1,
  };
  // repeated float mean = 2;
  int mean_size() const;
  void clear_mean();
  float mean(int index) const;
  void set_mean(int index, float value);
  void add_mean(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      mean() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_mean();

  // repeated float scale = 3;
  int scale_size() const;
  void clear_scale();
  float scale(int index) const;
  void set_scale(int index, float value);
  void add_scale(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      scale() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_scale();

  // optional string name = 1;
  bool has_name() const;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* name);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DpuKernelParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > mean_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > scale_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class TfssdParam_OutputInfo :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.TfssdParam.OutputInfo) */ {
 public:
  TfssdParam_OutputInfo();
  virtual ~TfssdParam_OutputInfo();

  TfssdParam_OutputInfo(const TfssdParam_OutputInfo& from);
  TfssdParam_OutputInfo(TfssdParam_OutputInfo&& from) noexcept
    : TfssdParam_OutputInfo() {
    *this = ::std::move(from);
  }

  inline TfssdParam_OutputInfo& operator=(const TfssdParam_OutputInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline TfssdParam_OutputInfo& operator=(TfssdParam_OutputInfo&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const TfssdParam_OutputInfo& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TfssdParam_OutputInfo* internal_default_instance() {
    return reinterpret_cast<const TfssdParam_OutputInfo*>(
               &_TfssdParam_OutputInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    27;

  friend void swap(TfssdParam_OutputInfo& a, TfssdParam_OutputInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(TfssdParam_OutputInfo* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline TfssdParam_OutputInfo* New() const final {
    return CreateMaybeMessage<TfssdParam_OutputInfo>(nullptr);
  }

  TfssdParam_OutputInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<TfssdParam_OutputInfo>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const TfssdParam_OutputInfo& from);
  void MergeFrom(const TfssdParam_OutputInfo& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(TfssdParam_OutputInfo* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.TfssdParam.OutputInfo";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kNameFieldNumber = 3,
    kTypeFieldNumber = 1,
    kOrderFieldNumber = 2,
  };
  // optional string name = 3;
  bool has_name() const;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* name);

  // optional .vitis.ai.proto.TfssdParam.OutputType type = 1;
  bool has_type() const;
  void clear_type();
  ::vitis::ai::proto::TfssdParam_OutputType type() const;
  void set_type(::vitis::ai::proto::TfssdParam_OutputType value);

  // optional int32 order = 2;
  bool has_order() const;
  void clear_order();
  ::PROTOBUF_NAMESPACE_ID::int32 order() const;
  void set_order(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.TfssdParam.OutputInfo)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  int type_;
  ::PROTOBUF_NAMESPACE_ID::int32 order_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class TfssdParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.TfssdParam) */ {
 public:
  TfssdParam();
  virtual ~TfssdParam();

  TfssdParam(const TfssdParam& from);
  TfssdParam(TfssdParam&& from) noexcept
    : TfssdParam() {
    *this = ::std::move(from);
  }

  inline TfssdParam& operator=(const TfssdParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline TfssdParam& operator=(TfssdParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const TfssdParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TfssdParam* internal_default_instance() {
    return reinterpret_cast<const TfssdParam*>(
               &_TfssdParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    28;

  friend void swap(TfssdParam& a, TfssdParam& b) {
    a.Swap(&b);
  }
  inline void Swap(TfssdParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline TfssdParam* New() const final {
    return CreateMaybeMessage<TfssdParam>(nullptr);
  }

  TfssdParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<TfssdParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const TfssdParam& from);
  void MergeFrom(const TfssdParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(TfssdParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.TfssdParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef TfssdParam_OutputInfo OutputInfo;

  typedef TfssdParam_OutputType OutputType;
  static constexpr OutputType USELESS =
    TfssdParam_OutputType_USELESS;
  static constexpr OutputType CONF =
    TfssdParam_OutputType_CONF;
  static constexpr OutputType BBOX =
    TfssdParam_OutputType_BBOX;
  static inline bool OutputType_IsValid(int value) {
    return TfssdParam_OutputType_IsValid(value);
  }
  static constexpr OutputType OutputType_MIN =
    TfssdParam_OutputType_OutputType_MIN;
  static constexpr OutputType OutputType_MAX =
    TfssdParam_OutputType_OutputType_MAX;
  static constexpr int OutputType_ARRAYSIZE =
    TfssdParam_OutputType_OutputType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  OutputType_descriptor() {
    return TfssdParam_OutputType_descriptor();
  }
  template<typename T>
  static inline const std::string& OutputType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, OutputType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function OutputType_Name.");
    return TfssdParam_OutputType_Name(enum_t_value);
  }
  static inline bool OutputType_Parse(const std::string& name,
      OutputType* value) {
    return TfssdParam_OutputType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kOutputInfoFieldNumber = 1,
    kFeatureMapListFieldNumber = 2,
    kOfficialCfgFieldNumber = 3,
  };
  // repeated .vitis.ai.proto.TfssdParam.OutputInfo output_info = 1;
  int output_info_size() const;
  void clear_output_info();
  ::vitis::ai::proto::TfssdParam_OutputInfo* mutable_output_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::TfssdParam_OutputInfo >*
      mutable_output_info();
  const ::vitis::ai::proto::TfssdParam_OutputInfo& output_info(int index) const;
  ::vitis::ai::proto::TfssdParam_OutputInfo* add_output_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::TfssdParam_OutputInfo >&
      output_info() const;

  // repeated int32 feature_map_list = 2;
  int feature_map_list_size() const;
  void clear_feature_map_list();
  ::PROTOBUF_NAMESPACE_ID::int32 feature_map_list(int index) const;
  void set_feature_map_list(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_feature_map_list(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      feature_map_list() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_feature_map_list();

  // optional string official_cfg = 3;
  bool has_official_cfg() const;
  void clear_official_cfg();
  const std::string& official_cfg() const;
  void set_official_cfg(const std::string& value);
  void set_official_cfg(std::string&& value);
  void set_official_cfg(const char* value);
  void set_official_cfg(const char* value, size_t size);
  std::string* mutable_official_cfg();
  std::string* release_official_cfg();
  void set_allocated_official_cfg(std::string* official_cfg);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.TfssdParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::TfssdParam_OutputInfo > output_info_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > feature_map_list_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr official_cfg_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DpuModelParam :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DpuModelParam) */ {
 public:
  DpuModelParam();
  virtual ~DpuModelParam();

  DpuModelParam(const DpuModelParam& from);
  DpuModelParam(DpuModelParam&& from) noexcept
    : DpuModelParam() {
    *this = ::std::move(from);
  }

  inline DpuModelParam& operator=(const DpuModelParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline DpuModelParam& operator=(DpuModelParam&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const DpuModelParam& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DpuModelParam* internal_default_instance() {
    return reinterpret_cast<const DpuModelParam*>(
               &_DpuModelParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    29;

  friend void swap(DpuModelParam& a, DpuModelParam& b) {
    a.Swap(&b);
  }
  inline void Swap(DpuModelParam* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DpuModelParam* New() const final {
    return CreateMaybeMessage<DpuModelParam>(nullptr);
  }

  DpuModelParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DpuModelParam>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DpuModelParam& from);
  void MergeFrom(const DpuModelParam& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DpuModelParam* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DpuModelParam";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef DpuModelParam_ModelType ModelType;
  static constexpr ModelType UNKNOWN_TYPE =
    DpuModelParam_ModelType_UNKNOWN_TYPE;
  static constexpr ModelType REFINEDET =
    DpuModelParam_ModelType_REFINEDET;
  static constexpr ModelType SSD =
    DpuModelParam_ModelType_SSD;
  static constexpr ModelType YOLOv3 =
    DpuModelParam_ModelType_YOLOv3;
  static constexpr ModelType CLASSIFICATION =
    DpuModelParam_ModelType_CLASSIFICATION;
  static constexpr ModelType DENSE_BOX =
    DpuModelParam_ModelType_DENSE_BOX;
  static constexpr ModelType MULTI_TASK =
    DpuModelParam_ModelType_MULTI_TASK;
  static constexpr ModelType OPENPOSE =
    DpuModelParam_ModelType_OPENPOSE;
  static constexpr ModelType ROADLINE =
    DpuModelParam_ModelType_ROADLINE;
  static constexpr ModelType SEGMENTATION =
    DpuModelParam_ModelType_SEGMENTATION;
  static constexpr ModelType POSEDETECT =
    DpuModelParam_ModelType_POSEDETECT;
  static constexpr ModelType LANE =
    DpuModelParam_ModelType_LANE;
  static constexpr ModelType BLINKER =
    DpuModelParam_ModelType_BLINKER;
  static constexpr ModelType SEGDET =
    DpuModelParam_ModelType_SEGDET;
  static constexpr ModelType ROADLINE_DEEPHI =
    DpuModelParam_ModelType_ROADLINE_DEEPHI;
  static constexpr ModelType FACEQUALITY5PT =
    DpuModelParam_ModelType_FACEQUALITY5PT;
  static constexpr ModelType REID =
    DpuModelParam_ModelType_REID;
  static constexpr ModelType YOLOv2 =
    DpuModelParam_ModelType_YOLOv2;
  static constexpr ModelType TFSSD =
    DpuModelParam_ModelType_TFSSD;
  static constexpr ModelType FACELANDMARK =
    DpuModelParam_ModelType_FACELANDMARK;
  static constexpr ModelType PLATEDETECT =
    DpuModelParam_ModelType_PLATEDETECT;
  static constexpr ModelType PLATENUM =
    DpuModelParam_ModelType_PLATENUM;
  static constexpr ModelType PLATERECOG =
    DpuModelParam_ModelType_PLATERECOG;
  static constexpr ModelType FACEFEATURE =
    DpuModelParam_ModelType_FACEFEATURE;
  static constexpr ModelType SEGMENTATION8UC1 =
    DpuModelParam_ModelType_SEGMENTATION8UC1;
  static constexpr ModelType SEGMENTATION8UC3 =
    DpuModelParam_ModelType_SEGMENTATION8UC3;
  static constexpr ModelType MEDICALSEGMENTATION =
    DpuModelParam_ModelType_MEDICALSEGMENTATION;
  static constexpr ModelType MULTITASK8UC1 =
    DpuModelParam_ModelType_MULTITASK8UC1;
  static constexpr ModelType MULTITASK8UC3 =
    DpuModelParam_ModelType_MULTITASK8UC3;
  static constexpr ModelType MEDICALREFINEDET =
    DpuModelParam_ModelType_MEDICALREFINEDET;
  static constexpr ModelType FACEDETECTRECOG =
    DpuModelParam_ModelType_FACEDETECTRECOG;
  static constexpr ModelType HOURGLASS =
    DpuModelParam_ModelType_HOURGLASS;
  static constexpr ModelType RETINAFACE =
    DpuModelParam_ModelType_RETINAFACE;
  static constexpr ModelType TFREFINEDET =
    DpuModelParam_ModelType_TFREFINEDET;
  static inline bool ModelType_IsValid(int value) {
    return DpuModelParam_ModelType_IsValid(value);
  }
  static constexpr ModelType ModelType_MIN =
    DpuModelParam_ModelType_ModelType_MIN;
  static constexpr ModelType ModelType_MAX =
    DpuModelParam_ModelType_ModelType_MAX;
  static constexpr int ModelType_ARRAYSIZE =
    DpuModelParam_ModelType_ModelType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  ModelType_descriptor() {
    return DpuModelParam_ModelType_descriptor();
  }
  template<typename T>
  static inline const std::string& ModelType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, ModelType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function ModelType_Name.");
    return DpuModelParam_ModelType_Name(enum_t_value);
  }
  static inline bool ModelType_Parse(const std::string& name,
      ModelType* value) {
    return DpuModelParam_ModelType_Parse(name, value);
  }

  typedef DpuModelParam_OrderType OrderType;
  static constexpr OrderType UNKNOWNORDER =
    DpuModelParam_OrderType_UNKNOWNORDER;
  static constexpr OrderType BGR =
    DpuModelParam_OrderType_BGR;
  static constexpr OrderType RGB =
    DpuModelParam_OrderType_RGB;
  static constexpr OrderType GREY =
    DpuModelParam_OrderType_GREY;
  static inline bool OrderType_IsValid(int value) {
    return DpuModelParam_OrderType_IsValid(value);
  }
  static constexpr OrderType OrderType_MIN =
    DpuModelParam_OrderType_OrderType_MIN;
  static constexpr OrderType OrderType_MAX =
    DpuModelParam_OrderType_OrderType_MAX;
  static constexpr int OrderType_ARRAYSIZE =
    DpuModelParam_OrderType_OrderType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  OrderType_descriptor() {
    return DpuModelParam_OrderType_descriptor();
  }
  template<typename T>
  static inline const std::string& OrderType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, OrderType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function OrderType_Name.");
    return DpuModelParam_OrderType_Name(enum_t_value);
  }
  static inline bool OrderType_Parse(const std::string& name,
      OrderType* value) {
    return DpuModelParam_OrderType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kKernelFieldNumber = 2,
    kNameFieldNumber = 1,
    kRefineDetParamFieldNumber = 4,
    kYoloV3ParamFieldNumber = 5,
    kSsdParamFieldNumber = 6,
    kClassificationParamFieldNumber = 7,
    kDenseBoxParamFieldNumber = 8,
    kMultiTaskParamFieldNumber = 9,
    kRoadlineParamFieldNumber = 10,
    kSegmentationParamFieldNumber = 11,
    kLaneParamFieldNumber = 12,
    kBlinkerParamFieldNumber = 13,
    kSegdetParamFieldNumber = 14,
    kRoadlineDpParamFieldNumber = 15,
    kFaceQuality5PtParamFieldNumber = 17,
    kTfssdParamFieldNumber = 18,
    kOpenPoseParamFieldNumber = 19,
    kReidParamFieldNumber = 20,
    kMedicalRefineDetParamFieldNumber = 21,
    kPlatenumParamFieldNumber = 22,
    kRetinafaceParamFieldNumber = 24,
    kTfrefinedetParamFieldNumber = 25,
    kModelTypeFieldNumber = 3,
    kIsTfFieldNumber = 16,
    kOrderTypeFieldNumber = 23,
  };
  // repeated .vitis.ai.proto.DpuKernelParam kernel = 2;
  int kernel_size() const;
  void clear_kernel();
  ::vitis::ai::proto::DpuKernelParam* mutable_kernel(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuKernelParam >*
      mutable_kernel();
  const ::vitis::ai::proto::DpuKernelParam& kernel(int index) const;
  ::vitis::ai::proto::DpuKernelParam* add_kernel();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuKernelParam >&
      kernel() const;

  // optional string name = 1;
  bool has_name() const;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* name);

  // optional .vitis.ai.proto.RefineDetParam refine_det_param = 4;
  bool has_refine_det_param() const;
  void clear_refine_det_param();
  const ::vitis::ai::proto::RefineDetParam& refine_det_param() const;
  ::vitis::ai::proto::RefineDetParam* release_refine_det_param();
  ::vitis::ai::proto::RefineDetParam* mutable_refine_det_param();
  void set_allocated_refine_det_param(::vitis::ai::proto::RefineDetParam* refine_det_param);

  // optional .vitis.ai.proto.YoloV3Param yolo_v3_param = 5;
  bool has_yolo_v3_param() const;
  void clear_yolo_v3_param();
  const ::vitis::ai::proto::YoloV3Param& yolo_v3_param() const;
  ::vitis::ai::proto::YoloV3Param* release_yolo_v3_param();
  ::vitis::ai::proto::YoloV3Param* mutable_yolo_v3_param();
  void set_allocated_yolo_v3_param(::vitis::ai::proto::YoloV3Param* yolo_v3_param);

  // optional .vitis.ai.proto.SSDParam ssd_param = 6;
  bool has_ssd_param() const;
  void clear_ssd_param();
  const ::vitis::ai::proto::SSDParam& ssd_param() const;
  ::vitis::ai::proto::SSDParam* release_ssd_param();
  ::vitis::ai::proto::SSDParam* mutable_ssd_param();
  void set_allocated_ssd_param(::vitis::ai::proto::SSDParam* ssd_param);

  // optional .vitis.ai.proto.ClassificationParam classification_param = 7;
  bool has_classification_param() const;
  void clear_classification_param();
  const ::vitis::ai::proto::ClassificationParam& classification_param() const;
  ::vitis::ai::proto::ClassificationParam* release_classification_param();
  ::vitis::ai::proto::ClassificationParam* mutable_classification_param();
  void set_allocated_classification_param(::vitis::ai::proto::ClassificationParam* classification_param);

  // optional .vitis.ai.proto.DenseBoxParam dense_box_param = 8;
  bool has_dense_box_param() const;
  void clear_dense_box_param();
  const ::vitis::ai::proto::DenseBoxParam& dense_box_param() const;
  ::vitis::ai::proto::DenseBoxParam* release_dense_box_param();
  ::vitis::ai::proto::DenseBoxParam* mutable_dense_box_param();
  void set_allocated_dense_box_param(::vitis::ai::proto::DenseBoxParam* dense_box_param);

  // optional .vitis.ai.proto.MultiTaskParam multi_task_param = 9;
  bool has_multi_task_param() const;
  void clear_multi_task_param();
  const ::vitis::ai::proto::MultiTaskParam& multi_task_param() const;
  ::vitis::ai::proto::MultiTaskParam* release_multi_task_param();
  ::vitis::ai::proto::MultiTaskParam* mutable_multi_task_param();
  void set_allocated_multi_task_param(::vitis::ai::proto::MultiTaskParam* multi_task_param);

  // optional .vitis.ai.proto.RoadlineParam roadline_param = 10;
  bool has_roadline_param() const;
  void clear_roadline_param();
  const ::vitis::ai::proto::RoadlineParam& roadline_param() const;
  ::vitis::ai::proto::RoadlineParam* release_roadline_param();
  ::vitis::ai::proto::RoadlineParam* mutable_roadline_param();
  void set_allocated_roadline_param(::vitis::ai::proto::RoadlineParam* roadline_param);

  // optional .vitis.ai.proto.SegmentationParam segmentation_param = 11;
  bool has_segmentation_param() const;
  void clear_segmentation_param();
  const ::vitis::ai::proto::SegmentationParam& segmentation_param() const;
  ::vitis::ai::proto::SegmentationParam* release_segmentation_param();
  ::vitis::ai::proto::SegmentationParam* mutable_segmentation_param();
  void set_allocated_segmentation_param(::vitis::ai::proto::SegmentationParam* segmentation_param);

  // optional .vitis.ai.proto.LaneParam lane_param = 12;
  bool has_lane_param() const;
  void clear_lane_param();
  const ::vitis::ai::proto::LaneParam& lane_param() const;
  ::vitis::ai::proto::LaneParam* release_lane_param();
  ::vitis::ai::proto::LaneParam* mutable_lane_param();
  void set_allocated_lane_param(::vitis::ai::proto::LaneParam* lane_param);

  // optional .vitis.ai.proto.BlinkerParam blinker_param = 13;
  bool has_blinker_param() const;
  void clear_blinker_param();
  const ::vitis::ai::proto::BlinkerParam& blinker_param() const;
  ::vitis::ai::proto::BlinkerParam* release_blinker_param();
  ::vitis::ai::proto::BlinkerParam* mutable_blinker_param();
  void set_allocated_blinker_param(::vitis::ai::proto::BlinkerParam* blinker_param);

  // optional .vitis.ai.proto.SegdetParam segdet_param = 14;
  bool has_segdet_param() const;
  void clear_segdet_param();
  const ::vitis::ai::proto::SegdetParam& segdet_param() const;
  ::vitis::ai::proto::SegdetParam* release_segdet_param();
  ::vitis::ai::proto::SegdetParam* mutable_segdet_param();
  void set_allocated_segdet_param(::vitis::ai::proto::SegdetParam* segdet_param);

  // optional .vitis.ai.proto.RoadlineDeephiParam roadline_dp_param = 15;
  bool has_roadline_dp_param() const;
  void clear_roadline_dp_param();
  const ::vitis::ai::proto::RoadlineDeephiParam& roadline_dp_param() const;
  ::vitis::ai::proto::RoadlineDeephiParam* release_roadline_dp_param();
  ::vitis::ai::proto::RoadlineDeephiParam* mutable_roadline_dp_param();
  void set_allocated_roadline_dp_param(::vitis::ai::proto::RoadlineDeephiParam* roadline_dp_param);

  // optional .vitis.ai.proto.FaceQuality5ptParam face_quality5pt_param = 17;
  bool has_face_quality5pt_param() const;
  void clear_face_quality5pt_param();
  const ::vitis::ai::proto::FaceQuality5ptParam& face_quality5pt_param() const;
  ::vitis::ai::proto::FaceQuality5ptParam* release_face_quality5pt_param();
  ::vitis::ai::proto::FaceQuality5ptParam* mutable_face_quality5pt_param();
  void set_allocated_face_quality5pt_param(::vitis::ai::proto::FaceQuality5ptParam* face_quality5pt_param);

  // optional .vitis.ai.proto.TfssdParam tfssd_param = 18;
  bool has_tfssd_param() const;
  void clear_tfssd_param();
  const ::vitis::ai::proto::TfssdParam& tfssd_param() const;
  ::vitis::ai::proto::TfssdParam* release_tfssd_param();
  ::vitis::ai::proto::TfssdParam* mutable_tfssd_param();
  void set_allocated_tfssd_param(::vitis::ai::proto::TfssdParam* tfssd_param);

  // optional .vitis.ai.proto.OpenPoseParam open_pose_param = 19;
  bool has_open_pose_param() const;
  void clear_open_pose_param();
  const ::vitis::ai::proto::OpenPoseParam& open_pose_param() const;
  ::vitis::ai::proto::OpenPoseParam* release_open_pose_param();
  ::vitis::ai::proto::OpenPoseParam* mutable_open_pose_param();
  void set_allocated_open_pose_param(::vitis::ai::proto::OpenPoseParam* open_pose_param);

  // optional .vitis.ai.proto.ReidParam reid_param = 20;
  bool has_reid_param() const;
  void clear_reid_param();
  const ::vitis::ai::proto::ReidParam& reid_param() const;
  ::vitis::ai::proto::ReidParam* release_reid_param();
  ::vitis::ai::proto::ReidParam* mutable_reid_param();
  void set_allocated_reid_param(::vitis::ai::proto::ReidParam* reid_param);

  // optional .vitis.ai.proto.MedicalRefineDetParam medical_refine_det_param = 21;
  bool has_medical_refine_det_param() const;
  void clear_medical_refine_det_param();
  const ::vitis::ai::proto::MedicalRefineDetParam& medical_refine_det_param() const;
  ::vitis::ai::proto::MedicalRefineDetParam* release_medical_refine_det_param();
  ::vitis::ai::proto::MedicalRefineDetParam* mutable_medical_refine_det_param();
  void set_allocated_medical_refine_det_param(::vitis::ai::proto::MedicalRefineDetParam* medical_refine_det_param);

  // optional .vitis.ai.proto.PlatenumParam platenum_param = 22;
  bool has_platenum_param() const;
  void clear_platenum_param();
  const ::vitis::ai::proto::PlatenumParam& platenum_param() const;
  ::vitis::ai::proto::PlatenumParam* release_platenum_param();
  ::vitis::ai::proto::PlatenumParam* mutable_platenum_param();
  void set_allocated_platenum_param(::vitis::ai::proto::PlatenumParam* platenum_param);

  // optional .vitis.ai.proto.RetinaFaceParam retinaface_param = 24;
  bool has_retinaface_param() const;
  void clear_retinaface_param();
  const ::vitis::ai::proto::RetinaFaceParam& retinaface_param() const;
  ::vitis::ai::proto::RetinaFaceParam* release_retinaface_param();
  ::vitis::ai::proto::RetinaFaceParam* mutable_retinaface_param();
  void set_allocated_retinaface_param(::vitis::ai::proto::RetinaFaceParam* retinaface_param);

  // optional .vitis.ai.proto.TFRefineDetParam tfrefinedet_param = 25;
  bool has_tfrefinedet_param() const;
  void clear_tfrefinedet_param();
  const ::vitis::ai::proto::TFRefineDetParam& tfrefinedet_param() const;
  ::vitis::ai::proto::TFRefineDetParam* release_tfrefinedet_param();
  ::vitis::ai::proto::TFRefineDetParam* mutable_tfrefinedet_param();
  void set_allocated_tfrefinedet_param(::vitis::ai::proto::TFRefineDetParam* tfrefinedet_param);

  // optional .vitis.ai.proto.DpuModelParam.ModelType model_type = 3;
  bool has_model_type() const;
  void clear_model_type();
  ::vitis::ai::proto::DpuModelParam_ModelType model_type() const;
  void set_model_type(::vitis::ai::proto::DpuModelParam_ModelType value);

  // optional bool is_tf = 16;
  bool has_is_tf() const;
  void clear_is_tf();
  bool is_tf() const;
  void set_is_tf(bool value);

  // optional .vitis.ai.proto.DpuModelParam.OrderType order_type = 23;
  bool has_order_type() const;
  void clear_order_type();
  ::vitis::ai::proto::DpuModelParam_OrderType order_type() const;
  void set_order_type(::vitis::ai::proto::DpuModelParam_OrderType value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DpuModelParam)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuKernelParam > kernel_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::vitis::ai::proto::RefineDetParam* refine_det_param_;
  ::vitis::ai::proto::YoloV3Param* yolo_v3_param_;
  ::vitis::ai::proto::SSDParam* ssd_param_;
  ::vitis::ai::proto::ClassificationParam* classification_param_;
  ::vitis::ai::proto::DenseBoxParam* dense_box_param_;
  ::vitis::ai::proto::MultiTaskParam* multi_task_param_;
  ::vitis::ai::proto::RoadlineParam* roadline_param_;
  ::vitis::ai::proto::SegmentationParam* segmentation_param_;
  ::vitis::ai::proto::LaneParam* lane_param_;
  ::vitis::ai::proto::BlinkerParam* blinker_param_;
  ::vitis::ai::proto::SegdetParam* segdet_param_;
  ::vitis::ai::proto::RoadlineDeephiParam* roadline_dp_param_;
  ::vitis::ai::proto::FaceQuality5ptParam* face_quality5pt_param_;
  ::vitis::ai::proto::TfssdParam* tfssd_param_;
  ::vitis::ai::proto::OpenPoseParam* open_pose_param_;
  ::vitis::ai::proto::ReidParam* reid_param_;
  ::vitis::ai::proto::MedicalRefineDetParam* medical_refine_det_param_;
  ::vitis::ai::proto::PlatenumParam* platenum_param_;
  ::vitis::ai::proto::RetinaFaceParam* retinaface_param_;
  ::vitis::ai::proto::TFRefineDetParam* tfrefinedet_param_;
  int model_type_;
  bool is_tf_;
  int order_type_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DpuModelParamList :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DpuModelParamList) */ {
 public:
  DpuModelParamList();
  virtual ~DpuModelParamList();

  DpuModelParamList(const DpuModelParamList& from);
  DpuModelParamList(DpuModelParamList&& from) noexcept
    : DpuModelParamList() {
    *this = ::std::move(from);
  }

  inline DpuModelParamList& operator=(const DpuModelParamList& from) {
    CopyFrom(from);
    return *this;
  }
  inline DpuModelParamList& operator=(DpuModelParamList&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const DpuModelParamList& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DpuModelParamList* internal_default_instance() {
    return reinterpret_cast<const DpuModelParamList*>(
               &_DpuModelParamList_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    30;

  friend void swap(DpuModelParamList& a, DpuModelParamList& b) {
    a.Swap(&b);
  }
  inline void Swap(DpuModelParamList* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DpuModelParamList* New() const final {
    return CreateMaybeMessage<DpuModelParamList>(nullptr);
  }

  DpuModelParamList* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DpuModelParamList>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DpuModelParamList& from);
  void MergeFrom(const DpuModelParamList& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DpuModelParamList* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DpuModelParamList";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kModelFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.DpuModelParam model = 1;
  int model_size() const;
  void clear_model();
  ::vitis::ai::proto::DpuModelParam* mutable_model(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuModelParam >*
      mutable_model();
  const ::vitis::ai::proto::DpuModelParam& model(int index) const;
  ::vitis::ai::proto::DpuModelParam* add_model();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuModelParam >&
      model() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DpuModelParamList)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuModelParam > model_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class Attribute :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.Attribute) */ {
 public:
  Attribute();
  virtual ~Attribute();

  Attribute(const Attribute& from);
  Attribute(Attribute&& from) noexcept
    : Attribute() {
    *this = ::std::move(from);
  }

  inline Attribute& operator=(const Attribute& from) {
    CopyFrom(from);
    return *this;
  }
  inline Attribute& operator=(Attribute&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const Attribute& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Attribute* internal_default_instance() {
    return reinterpret_cast<const Attribute*>(
               &_Attribute_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    31;

  friend void swap(Attribute& a, Attribute& b) {
    a.Swap(&b);
  }
  inline void Swap(Attribute* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline Attribute* New() const final {
    return CreateMaybeMessage<Attribute>(nullptr);
  }

  Attribute* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Attribute>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Attribute& from);
  void MergeFrom(const Attribute& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Attribute* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.Attribute";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kLabelFieldNumber = 1,
    kValueFieldNumber = 2,
    kScoreFieldNumber = 3,
  };
  // optional string label = 1;
  bool has_label() const;
  void clear_label();
  const std::string& label() const;
  void set_label(const std::string& value);
  void set_label(std::string&& value);
  void set_label(const char* value);
  void set_label(const char* value, size_t size);
  std::string* mutable_label();
  std::string* release_label();
  void set_allocated_label(std::string* label);

  // optional uint32 value = 2;
  bool has_value() const;
  void clear_value();
  ::PROTOBUF_NAMESPACE_ID::uint32 value() const;
  void set_value(::PROTOBUF_NAMESPACE_ID::uint32 value);

  // optional float score = 3;
  bool has_score() const;
  void clear_score();
  float score() const;
  void set_score(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.Attribute)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr label_;
  ::PROTOBUF_NAMESPACE_ID::uint32 value_;
  float score_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class Point :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.Point) */ {
 public:
  Point();
  virtual ~Point();

  Point(const Point& from);
  Point(Point&& from) noexcept
    : Point() {
    *this = ::std::move(from);
  }

  inline Point& operator=(const Point& from) {
    CopyFrom(from);
    return *this;
  }
  inline Point& operator=(Point&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const Point& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Point* internal_default_instance() {
    return reinterpret_cast<const Point*>(
               &_Point_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    32;

  friend void swap(Point& a, Point& b) {
    a.Swap(&b);
  }
  inline void Swap(Point* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline Point* New() const final {
    return CreateMaybeMessage<Point>(nullptr);
  }

  Point* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Point>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Point& from);
  void MergeFrom(const Point& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Point* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.Point";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kXFieldNumber = 1,
    kYFieldNumber = 2,
  };
  // optional float x = 1;
  bool has_x() const;
  void clear_x();
  float x() const;
  void set_x(float value);

  // optional float y = 2;
  bool has_y() const;
  void clear_y();
  float y() const;
  void set_y(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.Point)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float x_;
  float y_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class BoundingBox :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.BoundingBox) */ {
 public:
  BoundingBox();
  virtual ~BoundingBox();

  BoundingBox(const BoundingBox& from);
  BoundingBox(BoundingBox&& from) noexcept
    : BoundingBox() {
    *this = ::std::move(from);
  }

  inline BoundingBox& operator=(const BoundingBox& from) {
    CopyFrom(from);
    return *this;
  }
  inline BoundingBox& operator=(BoundingBox&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const BoundingBox& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const BoundingBox* internal_default_instance() {
    return reinterpret_cast<const BoundingBox*>(
               &_BoundingBox_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    33;

  friend void swap(BoundingBox& a, BoundingBox& b) {
    a.Swap(&b);
  }
  inline void Swap(BoundingBox* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline BoundingBox* New() const final {
    return CreateMaybeMessage<BoundingBox>(nullptr);
  }

  BoundingBox* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<BoundingBox>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const BoundingBox& from);
  void MergeFrom(const BoundingBox& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BoundingBox* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.BoundingBox";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kLabelFieldNumber = 1,
    kScoreFieldNumber = 2,
    kXFieldNumber = 3,
    kYFieldNumber = 4,
    kWidthFieldNumber = 5,
    kHeightFieldNumber = 6,
  };
  // optional uint32 label = 1;
  bool has_label() const;
  void clear_label();
  ::PROTOBUF_NAMESPACE_ID::uint32 label() const;
  void set_label(::PROTOBUF_NAMESPACE_ID::uint32 value);

  // optional float score = 2;
  bool has_score() const;
  void clear_score();
  float score() const;
  void set_score(float value);

  // optional float x = 3;
  bool has_x() const;
  void clear_x();
  float x() const;
  void set_x(float value);

  // optional float y = 4;
  bool has_y() const;
  void clear_y();
  float y() const;
  void set_y(float value);

  // optional float width = 5;
  bool has_width() const;
  void clear_width();
  float width() const;
  void set_width(float value);

  // optional float height = 6;
  bool has_height() const;
  void clear_height();
  float height() const;
  void set_height(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.BoundingBox)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 label_;
  float score_;
  float x_;
  float y_;
  float width_;
  float height_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class AttributeResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.AttributeResult) */ {
 public:
  AttributeResult();
  virtual ~AttributeResult();

  AttributeResult(const AttributeResult& from);
  AttributeResult(AttributeResult&& from) noexcept
    : AttributeResult() {
    *this = ::std::move(from);
  }

  inline AttributeResult& operator=(const AttributeResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline AttributeResult& operator=(AttributeResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const AttributeResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AttributeResult* internal_default_instance() {
    return reinterpret_cast<const AttributeResult*>(
               &_AttributeResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    34;

  friend void swap(AttributeResult& a, AttributeResult& b) {
    a.Swap(&b);
  }
  inline void Swap(AttributeResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AttributeResult* New() const final {
    return CreateMaybeMessage<AttributeResult>(nullptr);
  }

  AttributeResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AttributeResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AttributeResult& from);
  void MergeFrom(const AttributeResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AttributeResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.AttributeResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAttributeFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.Attribute attribute = 1;
  int attribute_size() const;
  void clear_attribute();
  ::vitis::ai::proto::Attribute* mutable_attribute(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Attribute >*
      mutable_attribute();
  const ::vitis::ai::proto::Attribute& attribute(int index) const;
  ::vitis::ai::proto::Attribute* add_attribute();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Attribute >&
      attribute() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.AttributeResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Attribute > attribute_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class LandmarkResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.LandmarkResult) */ {
 public:
  LandmarkResult();
  virtual ~LandmarkResult();

  LandmarkResult(const LandmarkResult& from);
  LandmarkResult(LandmarkResult&& from) noexcept
    : LandmarkResult() {
    *this = ::std::move(from);
  }

  inline LandmarkResult& operator=(const LandmarkResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline LandmarkResult& operator=(LandmarkResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const LandmarkResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const LandmarkResult* internal_default_instance() {
    return reinterpret_cast<const LandmarkResult*>(
               &_LandmarkResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    35;

  friend void swap(LandmarkResult& a, LandmarkResult& b) {
    a.Swap(&b);
  }
  inline void Swap(LandmarkResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline LandmarkResult* New() const final {
    return CreateMaybeMessage<LandmarkResult>(nullptr);
  }

  LandmarkResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<LandmarkResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const LandmarkResult& from);
  void MergeFrom(const LandmarkResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LandmarkResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.LandmarkResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPointFieldNumber = 2,
    kScoreFieldNumber = 1,
    kGenderFieldNumber = 3,
    kAgeFieldNumber = 4,
  };
  // repeated .vitis.ai.proto.Point point = 2;
  int point_size() const;
  void clear_point();
  ::vitis::ai::proto::Point* mutable_point(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
      mutable_point();
  const ::vitis::ai::proto::Point& point(int index) const;
  ::vitis::ai::proto::Point* add_point();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
      point() const;

  // optional float score = 1;
  bool has_score() const;
  void clear_score();
  float score() const;
  void set_score(float value);

  // optional uint32 gender = 3;
  bool has_gender() const;
  void clear_gender();
  ::PROTOBUF_NAMESPACE_ID::uint32 gender() const;
  void set_gender(::PROTOBUF_NAMESPACE_ID::uint32 value);

  // optional uint32 age = 4;
  bool has_age() const;
  void clear_age();
  ::PROTOBUF_NAMESPACE_ID::uint32 age() const;
  void set_age(::PROTOBUF_NAMESPACE_ID::uint32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.LandmarkResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point > point_;
  float score_;
  ::PROTOBUF_NAMESPACE_ID::uint32 gender_;
  ::PROTOBUF_NAMESPACE_ID::uint32 age_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DetectResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DetectResult) */ {
 public:
  DetectResult();
  virtual ~DetectResult();

  DetectResult(const DetectResult& from);
  DetectResult(DetectResult&& from) noexcept
    : DetectResult() {
    *this = ::std::move(from);
  }

  inline DetectResult& operator=(const DetectResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline DetectResult& operator=(DetectResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const DetectResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DetectResult* internal_default_instance() {
    return reinterpret_cast<const DetectResult*>(
               &_DetectResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    36;

  friend void swap(DetectResult& a, DetectResult& b) {
    a.Swap(&b);
  }
  inline void Swap(DetectResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DetectResult* New() const final {
    return CreateMaybeMessage<DetectResult>(nullptr);
  }

  DetectResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DetectResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DetectResult& from);
  void MergeFrom(const DetectResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DetectResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DetectResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kBoundingBoxFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
  int bounding_box_size() const;
  void clear_bounding_box();
  ::vitis::ai::proto::BoundingBox* mutable_bounding_box(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
      mutable_bounding_box();
  const ::vitis::ai::proto::BoundingBox& bounding_box(int index) const;
  ::vitis::ai::proto::BoundingBox* add_bounding_box();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
      bounding_box() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DetectResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox > bounding_box_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RefineDetResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RefineDetResult) */ {
 public:
  RefineDetResult();
  virtual ~RefineDetResult();

  RefineDetResult(const RefineDetResult& from);
  RefineDetResult(RefineDetResult&& from) noexcept
    : RefineDetResult() {
    *this = ::std::move(from);
  }

  inline RefineDetResult& operator=(const RefineDetResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline RefineDetResult& operator=(RefineDetResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RefineDetResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RefineDetResult* internal_default_instance() {
    return reinterpret_cast<const RefineDetResult*>(
               &_RefineDetResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    37;

  friend void swap(RefineDetResult& a, RefineDetResult& b) {
    a.Swap(&b);
  }
  inline void Swap(RefineDetResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RefineDetResult* New() const final {
    return CreateMaybeMessage<RefineDetResult>(nullptr);
  }

  RefineDetResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RefineDetResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RefineDetResult& from);
  void MergeFrom(const RefineDetResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RefineDetResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RefineDetResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kBoundingBoxFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
  int bounding_box_size() const;
  void clear_bounding_box();
  ::vitis::ai::proto::BoundingBox* mutable_bounding_box(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
      mutable_bounding_box();
  const ::vitis::ai::proto::BoundingBox& bounding_box(int index) const;
  ::vitis::ai::proto::BoundingBox* add_bounding_box();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
      bounding_box() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RefineDetResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox > bounding_box_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class LineAtt :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.LineAtt) */ {
 public:
  LineAtt();
  virtual ~LineAtt();

  LineAtt(const LineAtt& from);
  LineAtt(LineAtt&& from) noexcept
    : LineAtt() {
    *this = ::std::move(from);
  }

  inline LineAtt& operator=(const LineAtt& from) {
    CopyFrom(from);
    return *this;
  }
  inline LineAtt& operator=(LineAtt&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const LineAtt& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const LineAtt* internal_default_instance() {
    return reinterpret_cast<const LineAtt*>(
               &_LineAtt_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    38;

  friend void swap(LineAtt& a, LineAtt& b) {
    a.Swap(&b);
  }
  inline void Swap(LineAtt* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline LineAtt* New() const final {
    return CreateMaybeMessage<LineAtt>(nullptr);
  }

  LineAtt* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<LineAtt>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const LineAtt& from);
  void MergeFrom(const LineAtt& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LineAtt* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.LineAtt";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPointFieldNumber = 2,
    kTypeFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.Point point = 2;
  int point_size() const;
  void clear_point();
  ::vitis::ai::proto::Point* mutable_point(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
      mutable_point();
  const ::vitis::ai::proto::Point& point(int index) const;
  ::vitis::ai::proto::Point* add_point();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
      point() const;

  // optional int32 type = 1;
  bool has_type() const;
  void clear_type();
  ::PROTOBUF_NAMESPACE_ID::int32 type() const;
  void set_type(::PROTOBUF_NAMESPACE_ID::int32 value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.LineAtt)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point > point_;
  ::PROTOBUF_NAMESPACE_ID::int32 type_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RoadlineResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RoadlineResult) */ {
 public:
  RoadlineResult();
  virtual ~RoadlineResult();

  RoadlineResult(const RoadlineResult& from);
  RoadlineResult(RoadlineResult&& from) noexcept
    : RoadlineResult() {
    *this = ::std::move(from);
  }

  inline RoadlineResult& operator=(const RoadlineResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline RoadlineResult& operator=(RoadlineResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RoadlineResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RoadlineResult* internal_default_instance() {
    return reinterpret_cast<const RoadlineResult*>(
               &_RoadlineResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    39;

  friend void swap(RoadlineResult& a, RoadlineResult& b) {
    a.Swap(&b);
  }
  inline void Swap(RoadlineResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RoadlineResult* New() const final {
    return CreateMaybeMessage<RoadlineResult>(nullptr);
  }

  RoadlineResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RoadlineResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RoadlineResult& from);
  void MergeFrom(const RoadlineResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RoadlineResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RoadlineResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kLineAttFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.LineAtt line_att = 1;
  int line_att_size() const;
  void clear_line_att();
  ::vitis::ai::proto::LineAtt* mutable_line_att(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::LineAtt >*
      mutable_line_att();
  const ::vitis::ai::proto::LineAtt& line_att(int index) const;
  ::vitis::ai::proto::LineAtt* add_line_att();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::LineAtt >&
      line_att() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RoadlineResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::LineAtt > line_att_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class Score :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.Score) */ {
 public:
  Score();
  virtual ~Score();

  Score(const Score& from);
  Score(Score&& from) noexcept
    : Score() {
    *this = ::std::move(from);
  }

  inline Score& operator=(const Score& from) {
    CopyFrom(from);
    return *this;
  }
  inline Score& operator=(Score&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const Score& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Score* internal_default_instance() {
    return reinterpret_cast<const Score*>(
               &_Score_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    40;

  friend void swap(Score& a, Score& b) {
    a.Swap(&b);
  }
  inline void Swap(Score* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline Score* New() const final {
    return CreateMaybeMessage<Score>(nullptr);
  }

  Score* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Score>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Score& from);
  void MergeFrom(const Score& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Score* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.Score";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kIndexFieldNumber = 1,
    kScoreFieldNumber = 2,
  };
  // optional int32 index = 1;
  bool has_index() const;
  void clear_index();
  ::PROTOBUF_NAMESPACE_ID::int32 index() const;
  void set_index(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float score = 2;
  bool has_score() const;
  void clear_score();
  float score() const;
  void set_score(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.Score)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 index_;
  float score_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ClassificationResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ClassificationResult) */ {
 public:
  ClassificationResult();
  virtual ~ClassificationResult();

  ClassificationResult(const ClassificationResult& from);
  ClassificationResult(ClassificationResult&& from) noexcept
    : ClassificationResult() {
    *this = ::std::move(from);
  }

  inline ClassificationResult& operator=(const ClassificationResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline ClassificationResult& operator=(ClassificationResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ClassificationResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ClassificationResult* internal_default_instance() {
    return reinterpret_cast<const ClassificationResult*>(
               &_ClassificationResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    41;

  friend void swap(ClassificationResult& a, ClassificationResult& b) {
    a.Swap(&b);
  }
  inline void Swap(ClassificationResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ClassificationResult* New() const final {
    return CreateMaybeMessage<ClassificationResult>(nullptr);
  }

  ClassificationResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ClassificationResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ClassificationResult& from);
  void MergeFrom(const ClassificationResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ClassificationResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ClassificationResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kScoreFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.Score score = 1;
  int score_size() const;
  void clear_score();
  ::vitis::ai::proto::Score* mutable_score(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Score >*
      mutable_score();
  const ::vitis::ai::proto::Score& score(int index) const;
  ::vitis::ai::proto::Score* add_score();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Score >&
      score() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ClassificationResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Score > score_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FaceLandmarkResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FaceLandmarkResult) */ {
 public:
  FaceLandmarkResult();
  virtual ~FaceLandmarkResult();

  FaceLandmarkResult(const FaceLandmarkResult& from);
  FaceLandmarkResult(FaceLandmarkResult&& from) noexcept
    : FaceLandmarkResult() {
    *this = ::std::move(from);
  }

  inline FaceLandmarkResult& operator=(const FaceLandmarkResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline FaceLandmarkResult& operator=(FaceLandmarkResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const FaceLandmarkResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FaceLandmarkResult* internal_default_instance() {
    return reinterpret_cast<const FaceLandmarkResult*>(
               &_FaceLandmarkResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    42;

  friend void swap(FaceLandmarkResult& a, FaceLandmarkResult& b) {
    a.Swap(&b);
  }
  inline void Swap(FaceLandmarkResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FaceLandmarkResult* New() const final {
    return CreateMaybeMessage<FaceLandmarkResult>(nullptr);
  }

  FaceLandmarkResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FaceLandmarkResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FaceLandmarkResult& from);
  void MergeFrom(const FaceLandmarkResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FaceLandmarkResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FaceLandmarkResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPointFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.Point point = 1;
  int point_size() const;
  void clear_point();
  ::vitis::ai::proto::Point* mutable_point(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
      mutable_point();
  const ::vitis::ai::proto::Point& point(int index) const;
  ::vitis::ai::proto::Point* add_point();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
      point() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FaceLandmarkResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point > point_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PlateDetectResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PlateDetectResult) */ {
 public:
  PlateDetectResult();
  virtual ~PlateDetectResult();

  PlateDetectResult(const PlateDetectResult& from);
  PlateDetectResult(PlateDetectResult&& from) noexcept
    : PlateDetectResult() {
    *this = ::std::move(from);
  }

  inline PlateDetectResult& operator=(const PlateDetectResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlateDetectResult& operator=(PlateDetectResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const PlateDetectResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PlateDetectResult* internal_default_instance() {
    return reinterpret_cast<const PlateDetectResult*>(
               &_PlateDetectResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    43;

  friend void swap(PlateDetectResult& a, PlateDetectResult& b) {
    a.Swap(&b);
  }
  inline void Swap(PlateDetectResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PlateDetectResult* New() const final {
    return CreateMaybeMessage<PlateDetectResult>(nullptr);
  }

  PlateDetectResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PlateDetectResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PlateDetectResult& from);
  void MergeFrom(const PlateDetectResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PlateDetectResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PlateDetectResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kBoundingBoxFieldNumber = 1,
  };
  // optional .vitis.ai.proto.BoundingBox bounding_box = 1;
  bool has_bounding_box() const;
  void clear_bounding_box();
  const ::vitis::ai::proto::BoundingBox& bounding_box() const;
  ::vitis::ai::proto::BoundingBox* release_bounding_box();
  ::vitis::ai::proto::BoundingBox* mutable_bounding_box();
  void set_allocated_bounding_box(::vitis::ai::proto::BoundingBox* bounding_box);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PlateDetectResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::vitis::ai::proto::BoundingBox* bounding_box_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PlateNumResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PlateNumResult) */ {
 public:
  PlateNumResult();
  virtual ~PlateNumResult();

  PlateNumResult(const PlateNumResult& from);
  PlateNumResult(PlateNumResult&& from) noexcept
    : PlateNumResult() {
    *this = ::std::move(from);
  }

  inline PlateNumResult& operator=(const PlateNumResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlateNumResult& operator=(PlateNumResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const PlateNumResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PlateNumResult* internal_default_instance() {
    return reinterpret_cast<const PlateNumResult*>(
               &_PlateNumResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    44;

  friend void swap(PlateNumResult& a, PlateNumResult& b) {
    a.Swap(&b);
  }
  inline void Swap(PlateNumResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PlateNumResult* New() const final {
    return CreateMaybeMessage<PlateNumResult>(nullptr);
  }

  PlateNumResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PlateNumResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PlateNumResult& from);
  void MergeFrom(const PlateNumResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PlateNumResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PlateNumResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPlateNumberFieldNumber = 1,
    kPlateColorFieldNumber = 2,
  };
  // optional string plate_number = 1;
  bool has_plate_number() const;
  void clear_plate_number();
  const std::string& plate_number() const;
  void set_plate_number(const std::string& value);
  void set_plate_number(std::string&& value);
  void set_plate_number(const char* value);
  void set_plate_number(const char* value, size_t size);
  std::string* mutable_plate_number();
  std::string* release_plate_number();
  void set_allocated_plate_number(std::string* plate_number);

  // optional string plate_color = 2;
  bool has_plate_color() const;
  void clear_plate_color();
  const std::string& plate_color() const;
  void set_plate_color(const std::string& value);
  void set_plate_color(std::string&& value);
  void set_plate_color(const char* value);
  void set_plate_color(const char* value, size_t size);
  std::string* mutable_plate_color();
  std::string* release_plate_color();
  void set_allocated_plate_color(std::string* plate_color);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PlateNumResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr plate_number_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr plate_color_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PlateRecogResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PlateRecogResult) */ {
 public:
  PlateRecogResult();
  virtual ~PlateRecogResult();

  PlateRecogResult(const PlateRecogResult& from);
  PlateRecogResult(PlateRecogResult&& from) noexcept
    : PlateRecogResult() {
    *this = ::std::move(from);
  }

  inline PlateRecogResult& operator=(const PlateRecogResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlateRecogResult& operator=(PlateRecogResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const PlateRecogResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PlateRecogResult* internal_default_instance() {
    return reinterpret_cast<const PlateRecogResult*>(
               &_PlateRecogResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    45;

  friend void swap(PlateRecogResult& a, PlateRecogResult& b) {
    a.Swap(&b);
  }
  inline void Swap(PlateRecogResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PlateRecogResult* New() const final {
    return CreateMaybeMessage<PlateRecogResult>(nullptr);
  }

  PlateRecogResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PlateRecogResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PlateRecogResult& from);
  void MergeFrom(const PlateRecogResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PlateRecogResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PlateRecogResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPlateNumberFieldNumber = 2,
    kPlateColorFieldNumber = 3,
    kBoundingBoxFieldNumber = 1,
  };
  // optional string plate_number = 2;
  bool has_plate_number() const;
  void clear_plate_number();
  const std::string& plate_number() const;
  void set_plate_number(const std::string& value);
  void set_plate_number(std::string&& value);
  void set_plate_number(const char* value);
  void set_plate_number(const char* value, size_t size);
  std::string* mutable_plate_number();
  std::string* release_plate_number();
  void set_allocated_plate_number(std::string* plate_number);

  // optional string plate_color = 3;
  bool has_plate_color() const;
  void clear_plate_color();
  const std::string& plate_color() const;
  void set_plate_color(const std::string& value);
  void set_plate_color(std::string&& value);
  void set_plate_color(const char* value);
  void set_plate_color(const char* value, size_t size);
  std::string* mutable_plate_color();
  std::string* release_plate_color();
  void set_allocated_plate_color(std::string* plate_color);

  // optional .vitis.ai.proto.BoundingBox bounding_box = 1;
  bool has_bounding_box() const;
  void clear_bounding_box();
  const ::vitis::ai::proto::BoundingBox& bounding_box() const;
  ::vitis::ai::proto::BoundingBox* release_bounding_box();
  ::vitis::ai::proto::BoundingBox* mutable_bounding_box();
  void set_allocated_bounding_box(::vitis::ai::proto::BoundingBox* bounding_box);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PlateRecogResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr plate_number_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr plate_color_;
  ::vitis::ai::proto::BoundingBox* bounding_box_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PoseDetectResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PoseDetectResult) */ {
 public:
  PoseDetectResult();
  virtual ~PoseDetectResult();

  PoseDetectResult(const PoseDetectResult& from);
  PoseDetectResult(PoseDetectResult&& from) noexcept
    : PoseDetectResult() {
    *this = ::std::move(from);
  }

  inline PoseDetectResult& operator=(const PoseDetectResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline PoseDetectResult& operator=(PoseDetectResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const PoseDetectResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PoseDetectResult* internal_default_instance() {
    return reinterpret_cast<const PoseDetectResult*>(
               &_PoseDetectResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    46;

  friend void swap(PoseDetectResult& a, PoseDetectResult& b) {
    a.Swap(&b);
  }
  inline void Swap(PoseDetectResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PoseDetectResult* New() const final {
    return CreateMaybeMessage<PoseDetectResult>(nullptr);
  }

  PoseDetectResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PoseDetectResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PoseDetectResult& from);
  void MergeFrom(const PoseDetectResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PoseDetectResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PoseDetectResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kRightShoulderFieldNumber = 1,
    kRightElbowFieldNumber = 2,
    kRightWristFieldNumber = 3,
    kLeftShoulderFieldNumber = 4,
    kLeftElbowFieldNumber = 5,
    kLeftWristFieldNumber = 6,
    kRightHipFieldNumber = 7,
    kRightKneeFieldNumber = 8,
    kRightAnkleFieldNumber = 9,
    kLeftHipFieldNumber = 10,
    kLeftKneeFieldNumber = 11,
    kLeftAnkleFieldNumber = 12,
    kHeadFieldNumber = 13,
    kNeckFieldNumber = 14,
  };
  // optional .vitis.ai.proto.Point right_shoulder = 1;
  bool has_right_shoulder() const;
  void clear_right_shoulder();
  const ::vitis::ai::proto::Point& right_shoulder() const;
  ::vitis::ai::proto::Point* release_right_shoulder();
  ::vitis::ai::proto::Point* mutable_right_shoulder();
  void set_allocated_right_shoulder(::vitis::ai::proto::Point* right_shoulder);

  // optional .vitis.ai.proto.Point right_elbow = 2;
  bool has_right_elbow() const;
  void clear_right_elbow();
  const ::vitis::ai::proto::Point& right_elbow() const;
  ::vitis::ai::proto::Point* release_right_elbow();
  ::vitis::ai::proto::Point* mutable_right_elbow();
  void set_allocated_right_elbow(::vitis::ai::proto::Point* right_elbow);

  // optional .vitis.ai.proto.Point right_wrist = 3;
  bool has_right_wrist() const;
  void clear_right_wrist();
  const ::vitis::ai::proto::Point& right_wrist() const;
  ::vitis::ai::proto::Point* release_right_wrist();
  ::vitis::ai::proto::Point* mutable_right_wrist();
  void set_allocated_right_wrist(::vitis::ai::proto::Point* right_wrist);

  // optional .vitis.ai.proto.Point left_shoulder = 4;
  bool has_left_shoulder() const;
  void clear_left_shoulder();
  const ::vitis::ai::proto::Point& left_shoulder() const;
  ::vitis::ai::proto::Point* release_left_shoulder();
  ::vitis::ai::proto::Point* mutable_left_shoulder();
  void set_allocated_left_shoulder(::vitis::ai::proto::Point* left_shoulder);

  // optional .vitis.ai.proto.Point left_elbow = 5;
  bool has_left_elbow() const;
  void clear_left_elbow();
  const ::vitis::ai::proto::Point& left_elbow() const;
  ::vitis::ai::proto::Point* release_left_elbow();
  ::vitis::ai::proto::Point* mutable_left_elbow();
  void set_allocated_left_elbow(::vitis::ai::proto::Point* left_elbow);

  // optional .vitis.ai.proto.Point left_wrist = 6;
  bool has_left_wrist() const;
  void clear_left_wrist();
  const ::vitis::ai::proto::Point& left_wrist() const;
  ::vitis::ai::proto::Point* release_left_wrist();
  ::vitis::ai::proto::Point* mutable_left_wrist();
  void set_allocated_left_wrist(::vitis::ai::proto::Point* left_wrist);

  // optional .vitis.ai.proto.Point right_hip = 7;
  bool has_right_hip() const;
  void clear_right_hip();
  const ::vitis::ai::proto::Point& right_hip() const;
  ::vitis::ai::proto::Point* release_right_hip();
  ::vitis::ai::proto::Point* mutable_right_hip();
  void set_allocated_right_hip(::vitis::ai::proto::Point* right_hip);

  // optional .vitis.ai.proto.Point right_knee = 8;
  bool has_right_knee() const;
  void clear_right_knee();
  const ::vitis::ai::proto::Point& right_knee() const;
  ::vitis::ai::proto::Point* release_right_knee();
  ::vitis::ai::proto::Point* mutable_right_knee();
  void set_allocated_right_knee(::vitis::ai::proto::Point* right_knee);

  // optional .vitis.ai.proto.Point right_ankle = 9;
  bool has_right_ankle() const;
  void clear_right_ankle();
  const ::vitis::ai::proto::Point& right_ankle() const;
  ::vitis::ai::proto::Point* release_right_ankle();
  ::vitis::ai::proto::Point* mutable_right_ankle();
  void set_allocated_right_ankle(::vitis::ai::proto::Point* right_ankle);

  // optional .vitis.ai.proto.Point left_hip = 10;
  bool has_left_hip() const;
  void clear_left_hip();
  const ::vitis::ai::proto::Point& left_hip() const;
  ::vitis::ai::proto::Point* release_left_hip();
  ::vitis::ai::proto::Point* mutable_left_hip();
  void set_allocated_left_hip(::vitis::ai::proto::Point* left_hip);

  // optional .vitis.ai.proto.Point left_knee = 11;
  bool has_left_knee() const;
  void clear_left_knee();
  const ::vitis::ai::proto::Point& left_knee() const;
  ::vitis::ai::proto::Point* release_left_knee();
  ::vitis::ai::proto::Point* mutable_left_knee();
  void set_allocated_left_knee(::vitis::ai::proto::Point* left_knee);

  // optional .vitis.ai.proto.Point left_ankle = 12;
  bool has_left_ankle() const;
  void clear_left_ankle();
  const ::vitis::ai::proto::Point& left_ankle() const;
  ::vitis::ai::proto::Point* release_left_ankle();
  ::vitis::ai::proto::Point* mutable_left_ankle();
  void set_allocated_left_ankle(::vitis::ai::proto::Point* left_ankle);

  // optional .vitis.ai.proto.Point head = 13;
  bool has_head() const;
  void clear_head();
  const ::vitis::ai::proto::Point& head() const;
  ::vitis::ai::proto::Point* release_head();
  ::vitis::ai::proto::Point* mutable_head();
  void set_allocated_head(::vitis::ai::proto::Point* head);

  // optional .vitis.ai.proto.Point neck = 14;
  bool has_neck() const;
  void clear_neck();
  const ::vitis::ai::proto::Point& neck() const;
  ::vitis::ai::proto::Point* release_neck();
  ::vitis::ai::proto::Point* mutable_neck();
  void set_allocated_neck(::vitis::ai::proto::Point* neck);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PoseDetectResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::vitis::ai::proto::Point* right_shoulder_;
  ::vitis::ai::proto::Point* right_elbow_;
  ::vitis::ai::proto::Point* right_wrist_;
  ::vitis::ai::proto::Point* left_shoulder_;
  ::vitis::ai::proto::Point* left_elbow_;
  ::vitis::ai::proto::Point* left_wrist_;
  ::vitis::ai::proto::Point* right_hip_;
  ::vitis::ai::proto::Point* right_knee_;
  ::vitis::ai::proto::Point* right_ankle_;
  ::vitis::ai::proto::Point* left_hip_;
  ::vitis::ai::proto::Point* left_knee_;
  ::vitis::ai::proto::Point* left_ankle_;
  ::vitis::ai::proto::Point* head_;
  ::vitis::ai::proto::Point* neck_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FaceFeatureFloatResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FaceFeatureFloatResult) */ {
 public:
  FaceFeatureFloatResult();
  virtual ~FaceFeatureFloatResult();

  FaceFeatureFloatResult(const FaceFeatureFloatResult& from);
  FaceFeatureFloatResult(FaceFeatureFloatResult&& from) noexcept
    : FaceFeatureFloatResult() {
    *this = ::std::move(from);
  }

  inline FaceFeatureFloatResult& operator=(const FaceFeatureFloatResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline FaceFeatureFloatResult& operator=(FaceFeatureFloatResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const FaceFeatureFloatResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FaceFeatureFloatResult* internal_default_instance() {
    return reinterpret_cast<const FaceFeatureFloatResult*>(
               &_FaceFeatureFloatResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    47;

  friend void swap(FaceFeatureFloatResult& a, FaceFeatureFloatResult& b) {
    a.Swap(&b);
  }
  inline void Swap(FaceFeatureFloatResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FaceFeatureFloatResult* New() const final {
    return CreateMaybeMessage<FaceFeatureFloatResult>(nullptr);
  }

  FaceFeatureFloatResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FaceFeatureFloatResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FaceFeatureFloatResult& from);
  void MergeFrom(const FaceFeatureFloatResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FaceFeatureFloatResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FaceFeatureFloatResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFeatureFieldNumber = 1,
  };
  // repeated float feature = 1;
  int feature_size() const;
  void clear_feature();
  float feature(int index) const;
  void set_feature(int index, float value);
  void add_feature(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      feature() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_feature();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FaceFeatureFloatResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > feature_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FaceFeatureFixedResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FaceFeatureFixedResult) */ {
 public:
  FaceFeatureFixedResult();
  virtual ~FaceFeatureFixedResult();

  FaceFeatureFixedResult(const FaceFeatureFixedResult& from);
  FaceFeatureFixedResult(FaceFeatureFixedResult&& from) noexcept
    : FaceFeatureFixedResult() {
    *this = ::std::move(from);
  }

  inline FaceFeatureFixedResult& operator=(const FaceFeatureFixedResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline FaceFeatureFixedResult& operator=(FaceFeatureFixedResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const FaceFeatureFixedResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FaceFeatureFixedResult* internal_default_instance() {
    return reinterpret_cast<const FaceFeatureFixedResult*>(
               &_FaceFeatureFixedResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    48;

  friend void swap(FaceFeatureFixedResult& a, FaceFeatureFixedResult& b) {
    a.Swap(&b);
  }
  inline void Swap(FaceFeatureFixedResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FaceFeatureFixedResult* New() const final {
    return CreateMaybeMessage<FaceFeatureFixedResult>(nullptr);
  }

  FaceFeatureFixedResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FaceFeatureFixedResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FaceFeatureFixedResult& from);
  void MergeFrom(const FaceFeatureFixedResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FaceFeatureFixedResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FaceFeatureFixedResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFeatureFieldNumber = 1,
  };
  // repeated int32 feature = 1;
  int feature_size() const;
  void clear_feature();
  ::PROTOBUF_NAMESPACE_ID::int32 feature(int index) const;
  void set_feature(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_feature(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      feature() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_feature();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FaceFeatureFixedResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > feature_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FaceDetectRecogFloatResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FaceDetectRecogFloatResult) */ {
 public:
  FaceDetectRecogFloatResult();
  virtual ~FaceDetectRecogFloatResult();

  FaceDetectRecogFloatResult(const FaceDetectRecogFloatResult& from);
  FaceDetectRecogFloatResult(FaceDetectRecogFloatResult&& from) noexcept
    : FaceDetectRecogFloatResult() {
    *this = ::std::move(from);
  }

  inline FaceDetectRecogFloatResult& operator=(const FaceDetectRecogFloatResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline FaceDetectRecogFloatResult& operator=(FaceDetectRecogFloatResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const FaceDetectRecogFloatResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FaceDetectRecogFloatResult* internal_default_instance() {
    return reinterpret_cast<const FaceDetectRecogFloatResult*>(
               &_FaceDetectRecogFloatResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    49;

  friend void swap(FaceDetectRecogFloatResult& a, FaceDetectRecogFloatResult& b) {
    a.Swap(&b);
  }
  inline void Swap(FaceDetectRecogFloatResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FaceDetectRecogFloatResult* New() const final {
    return CreateMaybeMessage<FaceDetectRecogFloatResult>(nullptr);
  }

  FaceDetectRecogFloatResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FaceDetectRecogFloatResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FaceDetectRecogFloatResult& from);
  void MergeFrom(const FaceDetectRecogFloatResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FaceDetectRecogFloatResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FaceDetectRecogFloatResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kBoundingBoxFieldNumber = 1,
    kFloatFeatureFieldNumber = 2,
  };
  // repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
  int bounding_box_size() const;
  void clear_bounding_box();
  ::vitis::ai::proto::BoundingBox* mutable_bounding_box(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
      mutable_bounding_box();
  const ::vitis::ai::proto::BoundingBox& bounding_box(int index) const;
  ::vitis::ai::proto::BoundingBox* add_bounding_box();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
      bounding_box() const;

  // repeated .vitis.ai.proto.FaceFeatureFloatResult float_feature = 2;
  int float_feature_size() const;
  void clear_float_feature();
  ::vitis::ai::proto::FaceFeatureFloatResult* mutable_float_feature(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureFloatResult >*
      mutable_float_feature();
  const ::vitis::ai::proto::FaceFeatureFloatResult& float_feature(int index) const;
  ::vitis::ai::proto::FaceFeatureFloatResult* add_float_feature();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureFloatResult >&
      float_feature() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FaceDetectRecogFloatResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox > bounding_box_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureFloatResult > float_feature_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FaceDetectRecogFixedResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FaceDetectRecogFixedResult) */ {
 public:
  FaceDetectRecogFixedResult();
  virtual ~FaceDetectRecogFixedResult();

  FaceDetectRecogFixedResult(const FaceDetectRecogFixedResult& from);
  FaceDetectRecogFixedResult(FaceDetectRecogFixedResult&& from) noexcept
    : FaceDetectRecogFixedResult() {
    *this = ::std::move(from);
  }

  inline FaceDetectRecogFixedResult& operator=(const FaceDetectRecogFixedResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline FaceDetectRecogFixedResult& operator=(FaceDetectRecogFixedResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const FaceDetectRecogFixedResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FaceDetectRecogFixedResult* internal_default_instance() {
    return reinterpret_cast<const FaceDetectRecogFixedResult*>(
               &_FaceDetectRecogFixedResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    50;

  friend void swap(FaceDetectRecogFixedResult& a, FaceDetectRecogFixedResult& b) {
    a.Swap(&b);
  }
  inline void Swap(FaceDetectRecogFixedResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FaceDetectRecogFixedResult* New() const final {
    return CreateMaybeMessage<FaceDetectRecogFixedResult>(nullptr);
  }

  FaceDetectRecogFixedResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FaceDetectRecogFixedResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FaceDetectRecogFixedResult& from);
  void MergeFrom(const FaceDetectRecogFixedResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FaceDetectRecogFixedResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FaceDetectRecogFixedResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kBoundingBoxFieldNumber = 1,
    kFixedFeatureFieldNumber = 3,
    kScaleFieldNumber = 2,
  };
  // repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
  int bounding_box_size() const;
  void clear_bounding_box();
  ::vitis::ai::proto::BoundingBox* mutable_bounding_box(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
      mutable_bounding_box();
  const ::vitis::ai::proto::BoundingBox& bounding_box(int index) const;
  ::vitis::ai::proto::BoundingBox* add_bounding_box();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
      bounding_box() const;

  // repeated .vitis.ai.proto.FaceFeatureFixedResult fixed_feature = 3;
  int fixed_feature_size() const;
  void clear_fixed_feature();
  ::vitis::ai::proto::FaceFeatureFixedResult* mutable_fixed_feature(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureFixedResult >*
      mutable_fixed_feature();
  const ::vitis::ai::proto::FaceFeatureFixedResult& fixed_feature(int index) const;
  ::vitis::ai::proto::FaceFeatureFixedResult* add_fixed_feature();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureFixedResult >&
      fixed_feature() const;

  // optional float scale = 2;
  bool has_scale() const;
  void clear_scale();
  float scale() const;
  void set_scale(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FaceDetectRecogFixedResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox > bounding_box_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureFixedResult > fixed_feature_;
  float scale_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SegmetationResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SegmetationResult) */ {
 public:
  SegmetationResult();
  virtual ~SegmetationResult();

  SegmetationResult(const SegmetationResult& from);
  SegmetationResult(SegmetationResult&& from) noexcept
    : SegmetationResult() {
    *this = ::std::move(from);
  }

  inline SegmetationResult& operator=(const SegmetationResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline SegmetationResult& operator=(SegmetationResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SegmetationResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SegmetationResult* internal_default_instance() {
    return reinterpret_cast<const SegmetationResult*>(
               &_SegmetationResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    51;

  friend void swap(SegmetationResult& a, SegmetationResult& b) {
    a.Swap(&b);
  }
  inline void Swap(SegmetationResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SegmetationResult* New() const final {
    return CreateMaybeMessage<SegmetationResult>(nullptr);
  }

  SegmetationResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SegmetationResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SegmetationResult& from);
  void MergeFrom(const SegmetationResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SegmetationResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SegmetationResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDataFieldNumber = 1,
  };
  // repeated uint32 data = 1;
  int data_size() const;
  void clear_data();
  ::PROTOBUF_NAMESPACE_ID::uint32 data(int index) const;
  void set_data(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value);
  void add_data(::PROTOBUF_NAMESPACE_ID::uint32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
      data() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
      mutable_data();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SegmetationResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 > data_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MedicalSegmetationResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MedicalSegmetationResult) */ {
 public:
  MedicalSegmetationResult();
  virtual ~MedicalSegmetationResult();

  MedicalSegmetationResult(const MedicalSegmetationResult& from);
  MedicalSegmetationResult(MedicalSegmetationResult&& from) noexcept
    : MedicalSegmetationResult() {
    *this = ::std::move(from);
  }

  inline MedicalSegmetationResult& operator=(const MedicalSegmetationResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline MedicalSegmetationResult& operator=(MedicalSegmetationResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const MedicalSegmetationResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MedicalSegmetationResult* internal_default_instance() {
    return reinterpret_cast<const MedicalSegmetationResult*>(
               &_MedicalSegmetationResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    52;

  friend void swap(MedicalSegmetationResult& a, MedicalSegmetationResult& b) {
    a.Swap(&b);
  }
  inline void Swap(MedicalSegmetationResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline MedicalSegmetationResult* New() const final {
    return CreateMaybeMessage<MedicalSegmetationResult>(nullptr);
  }

  MedicalSegmetationResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<MedicalSegmetationResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const MedicalSegmetationResult& from);
  void MergeFrom(const MedicalSegmetationResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MedicalSegmetationResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MedicalSegmetationResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kSegmentationFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.SegmetationResult segmentation = 1;
  int segmentation_size() const;
  void clear_segmentation();
  ::vitis::ai::proto::SegmetationResult* mutable_segmentation(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SegmetationResult >*
      mutable_segmentation();
  const ::vitis::ai::proto::SegmetationResult& segmentation(int index) const;
  ::vitis::ai::proto::SegmetationResult* add_segmentation();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SegmetationResult >&
      segmentation() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MedicalSegmetationResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SegmetationResult > segmentation_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class VehicleResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.VehicleResult) */ {
 public:
  VehicleResult();
  virtual ~VehicleResult();

  VehicleResult(const VehicleResult& from);
  VehicleResult(VehicleResult&& from) noexcept
    : VehicleResult() {
    *this = ::std::move(from);
  }

  inline VehicleResult& operator=(const VehicleResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline VehicleResult& operator=(VehicleResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const VehicleResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const VehicleResult* internal_default_instance() {
    return reinterpret_cast<const VehicleResult*>(
               &_VehicleResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    53;

  friend void swap(VehicleResult& a, VehicleResult& b) {
    a.Swap(&b);
  }
  inline void Swap(VehicleResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline VehicleResult* New() const final {
    return CreateMaybeMessage<VehicleResult>(nullptr);
  }

  VehicleResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<VehicleResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const VehicleResult& from);
  void MergeFrom(const VehicleResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(VehicleResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.VehicleResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kLabelFieldNumber = 1,
    kScoreFieldNumber = 2,
    kXFieldNumber = 3,
    kYFieldNumber = 4,
    kWidthFieldNumber = 5,
    kHeightFieldNumber = 6,
    kAngleFieldNumber = 7,
  };
  // optional int32 label = 1;
  bool has_label() const;
  void clear_label();
  ::PROTOBUF_NAMESPACE_ID::int32 label() const;
  void set_label(::PROTOBUF_NAMESPACE_ID::int32 value);

  // optional float score = 2;
  bool has_score() const;
  void clear_score();
  float score() const;
  void set_score(float value);

  // optional float x = 3;
  bool has_x() const;
  void clear_x();
  float x() const;
  void set_x(float value);

  // optional float y = 4;
  bool has_y() const;
  void clear_y();
  float y() const;
  void set_y(float value);

  // optional float width = 5;
  bool has_width() const;
  void clear_width();
  float width() const;
  void set_width(float value);

  // optional float height = 6;
  bool has_height() const;
  void clear_height();
  float height() const;
  void set_height(float value);

  // optional float angle = 7;
  bool has_angle() const;
  void clear_angle();
  float angle() const;
  void set_angle(float value);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.VehicleResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::int32 label_;
  float score_;
  float x_;
  float y_;
  float width_;
  float height_;
  float angle_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MultiTaskResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MultiTaskResult) */ {
 public:
  MultiTaskResult();
  virtual ~MultiTaskResult();

  MultiTaskResult(const MultiTaskResult& from);
  MultiTaskResult(MultiTaskResult&& from) noexcept
    : MultiTaskResult() {
    *this = ::std::move(from);
  }

  inline MultiTaskResult& operator=(const MultiTaskResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline MultiTaskResult& operator=(MultiTaskResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const MultiTaskResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MultiTaskResult* internal_default_instance() {
    return reinterpret_cast<const MultiTaskResult*>(
               &_MultiTaskResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    54;

  friend void swap(MultiTaskResult& a, MultiTaskResult& b) {
    a.Swap(&b);
  }
  inline void Swap(MultiTaskResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline MultiTaskResult* New() const final {
    return CreateMaybeMessage<MultiTaskResult>(nullptr);
  }

  MultiTaskResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<MultiTaskResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const MultiTaskResult& from);
  void MergeFrom(const MultiTaskResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MultiTaskResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MultiTaskResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kVehicleReusltFieldNumber = 2,
    kSegmentationFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.VehicleResult vehicle_reuslt = 2;
  int vehicle_reuslt_size() const;
  void clear_vehicle_reuslt();
  ::vitis::ai::proto::VehicleResult* mutable_vehicle_reuslt(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::VehicleResult >*
      mutable_vehicle_reuslt();
  const ::vitis::ai::proto::VehicleResult& vehicle_reuslt(int index) const;
  ::vitis::ai::proto::VehicleResult* add_vehicle_reuslt();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::VehicleResult >&
      vehicle_reuslt() const;

  // optional .vitis.ai.proto.SegmetationResult segmentation = 1;
  bool has_segmentation() const;
  void clear_segmentation();
  const ::vitis::ai::proto::SegmetationResult& segmentation() const;
  ::vitis::ai::proto::SegmetationResult* release_segmentation();
  ::vitis::ai::proto::SegmetationResult* mutable_segmentation();
  void set_allocated_segmentation(::vitis::ai::proto::SegmetationResult* segmentation);

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MultiTaskResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::VehicleResult > vehicle_reuslt_;
  ::vitis::ai::proto::SegmetationResult* segmentation_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ReidResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ReidResult) */ {
 public:
  ReidResult();
  virtual ~ReidResult();

  ReidResult(const ReidResult& from);
  ReidResult(ReidResult&& from) noexcept
    : ReidResult() {
    *this = ::std::move(from);
  }

  inline ReidResult& operator=(const ReidResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline ReidResult& operator=(ReidResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ReidResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ReidResult* internal_default_instance() {
    return reinterpret_cast<const ReidResult*>(
               &_ReidResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    55;

  friend void swap(ReidResult& a, ReidResult& b) {
    a.Swap(&b);
  }
  inline void Swap(ReidResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ReidResult* New() const final {
    return CreateMaybeMessage<ReidResult>(nullptr);
  }

  ReidResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ReidResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ReidResult& from);
  void MergeFrom(const ReidResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ReidResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ReidResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDataFieldNumber = 1,
  };
  // repeated uint32 data = 1;
  int data_size() const;
  void clear_data();
  ::PROTOBUF_NAMESPACE_ID::uint32 data(int index) const;
  void set_data(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value);
  void add_data(::PROTOBUF_NAMESPACE_ID::uint32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
      data() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
      mutable_data();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ReidResult)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 > data_;
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DpuModelResult :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DpuModelResult) */ {
 public:
  DpuModelResult();
  virtual ~DpuModelResult();

  DpuModelResult(const DpuModelResult& from);
  DpuModelResult(DpuModelResult&& from) noexcept
    : DpuModelResult() {
    *this = ::std::move(from);
  }

  inline DpuModelResult& operator=(const DpuModelResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline DpuModelResult& operator=(DpuModelResult&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const DpuModelResult& default_instance();

  enum DpuModelResultCase {
    kLandmarkResult = 1,
    kDetectResult = 2,
    kAttributeResult = 3,
    kRefineDetResult = 4,
    kClassificationResult = 5,
    kRoadlineResult = 6,
    kFacelandmarkResult = 7,
    kPlateDetectResult = 8,
    kPlateNumResult = 9,
    kPlateRecogResult = 10,
    kPoseDetectResult = 11,
    kFaceFeatureFloatResult = 12,
    kSegmentationResult = 13,
    kMedicalSegmentationResult = 14,
    kMultitaskResult = 15,
    kReidResult = 16,
    kFaceDetectRecogFloatResult = 17,
    kFaceDetectRecogFixedResult = 18,
    DPU_MODEL_RESULT_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DpuModelResult* internal_default_instance() {
    return reinterpret_cast<const DpuModelResult*>(
               &_DpuModelResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    56;

  friend void swap(DpuModelResult& a, DpuModelResult& b) {
    a.Swap(&b);
  }
  inline void Swap(DpuModelResult* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DpuModelResult* New() const final {
    return CreateMaybeMessage<DpuModelResult>(nullptr);
  }

  DpuModelResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DpuModelResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DpuModelResult& from);
  void MergeFrom(const DpuModelResult& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DpuModelResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DpuModelResult";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto);
    return ::descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kLandmarkResultFieldNumber = 1,
    kDetectResultFieldNumber = 2,
    kAttributeResultFieldNumber = 3,
    kRefineDetResultFieldNumber = 4,
    kClassificationResultFieldNumber = 5,
    kRoadlineResultFieldNumber = 6,
    kFacelandmarkResultFieldNumber = 7,
    kPlateDetectResultFieldNumber = 8,
    kPlateNumResultFieldNumber = 9,
    kPlateRecogResultFieldNumber = 10,
    kPoseDetectResultFieldNumber = 11,
    kFaceFeatureFloatResultFieldNumber = 12,
    kSegmentationResultFieldNumber = 13,
    kMedicalSegmentationResultFieldNumber = 14,
    kMultitaskResultFieldNumber = 15,
    kReidResultFieldNumber = 16,
    kFaceDetectRecogFloatResultFieldNumber = 17,
    kFaceDetectRecogFixedResultFieldNumber = 18,
  };
  // optional .vitis.ai.proto.LandmarkResult landmark_result = 1;
  bool has_landmark_result() const;
  void clear_landmark_result();
  const ::vitis::ai::proto::LandmarkResult& landmark_result() const;
  ::vitis::ai::proto::LandmarkResult* release_landmark_result();
  ::vitis::ai::proto::LandmarkResult* mutable_landmark_result();
  void set_allocated_landmark_result(::vitis::ai::proto::LandmarkResult* landmark_result);

  // optional .vitis.ai.proto.DetectResult detect_result = 2;
  bool has_detect_result() const;
  void clear_detect_result();
  const ::vitis::ai::proto::DetectResult& detect_result() const;
  ::vitis::ai::proto::DetectResult* release_detect_result();
  ::vitis::ai::proto::DetectResult* mutable_detect_result();
  void set_allocated_detect_result(::vitis::ai::proto::DetectResult* detect_result);

  // optional .vitis.ai.proto.AttributeResult attribute_result = 3;
  bool has_attribute_result() const;
  void clear_attribute_result();
  const ::vitis::ai::proto::AttributeResult& attribute_result() const;
  ::vitis::ai::proto::AttributeResult* release_attribute_result();
  ::vitis::ai::proto::AttributeResult* mutable_attribute_result();
  void set_allocated_attribute_result(::vitis::ai::proto::AttributeResult* attribute_result);

  // optional .vitis.ai.proto.RefineDetResult refine_det_result = 4;
  bool has_refine_det_result() const;
  void clear_refine_det_result();
  const ::vitis::ai::proto::RefineDetResult& refine_det_result() const;
  ::vitis::ai::proto::RefineDetResult* release_refine_det_result();
  ::vitis::ai::proto::RefineDetResult* mutable_refine_det_result();
  void set_allocated_refine_det_result(::vitis::ai::proto::RefineDetResult* refine_det_result);

  // optional .vitis.ai.proto.ClassificationResult classification_result = 5;
  bool has_classification_result() const;
  void clear_classification_result();
  const ::vitis::ai::proto::ClassificationResult& classification_result() const;
  ::vitis::ai::proto::ClassificationResult* release_classification_result();
  ::vitis::ai::proto::ClassificationResult* mutable_classification_result();
  void set_allocated_classification_result(::vitis::ai::proto::ClassificationResult* classification_result);

  // optional .vitis.ai.proto.RoadlineResult roadline_result = 6;
  bool has_roadline_result() const;
  void clear_roadline_result();
  const ::vitis::ai::proto::RoadlineResult& roadline_result() const;
  ::vitis::ai::proto::RoadlineResult* release_roadline_result();
  ::vitis::ai::proto::RoadlineResult* mutable_roadline_result();
  void set_allocated_roadline_result(::vitis::ai::proto::RoadlineResult* roadline_result);

  // optional .vitis.ai.proto.FaceLandmarkResult facelandmark_result = 7;
  bool has_facelandmark_result() const;
  void clear_facelandmark_result();
  const ::vitis::ai::proto::FaceLandmarkResult& facelandmark_result() const;
  ::vitis::ai::proto::FaceLandmarkResult* release_facelandmark_result();
  ::vitis::ai::proto::FaceLandmarkResult* mutable_facelandmark_result();
  void set_allocated_facelandmark_result(::vitis::ai::proto::FaceLandmarkResult* facelandmark_result);

  // optional .vitis.ai.proto.PlateDetectResult plate_detect_result = 8;
  bool has_plate_detect_result() const;
  void clear_plate_detect_result();
  const ::vitis::ai::proto::PlateDetectResult& plate_detect_result() const;
  ::vitis::ai::proto::PlateDetectResult* release_plate_detect_result();
  ::vitis::ai::proto::PlateDetectResult* mutable_plate_detect_result();
  void set_allocated_plate_detect_result(::vitis::ai::proto::PlateDetectResult* plate_detect_result);

  // optional .vitis.ai.proto.PlateNumResult plate_num_result = 9;
  bool has_plate_num_result() const;
  void clear_plate_num_result();
  const ::vitis::ai::proto::PlateNumResult& plate_num_result() const;
  ::vitis::ai::proto::PlateNumResult* release_plate_num_result();
  ::vitis::ai::proto::PlateNumResult* mutable_plate_num_result();
  void set_allocated_plate_num_result(::vitis::ai::proto::PlateNumResult* plate_num_result);

  // optional .vitis.ai.proto.PlateRecogResult plate_recog_result = 10;
  bool has_plate_recog_result() const;
  void clear_plate_recog_result();
  const ::vitis::ai::proto::PlateRecogResult& plate_recog_result() const;
  ::vitis::ai::proto::PlateRecogResult* release_plate_recog_result();
  ::vitis::ai::proto::PlateRecogResult* mutable_plate_recog_result();
  void set_allocated_plate_recog_result(::vitis::ai::proto::PlateRecogResult* plate_recog_result);

  // optional .vitis.ai.proto.PoseDetectResult pose_detect_result = 11;
  bool has_pose_detect_result() const;
  void clear_pose_detect_result();
  const ::vitis::ai::proto::PoseDetectResult& pose_detect_result() const;
  ::vitis::ai::proto::PoseDetectResult* release_pose_detect_result();
  ::vitis::ai::proto::PoseDetectResult* mutable_pose_detect_result();
  void set_allocated_pose_detect_result(::vitis::ai::proto::PoseDetectResult* pose_detect_result);

  // optional .vitis.ai.proto.FaceFeatureFloatResult face_feature_float_result = 12;
  bool has_face_feature_float_result() const;
  void clear_face_feature_float_result();
  const ::vitis::ai::proto::FaceFeatureFloatResult& face_feature_float_result() const;
  ::vitis::ai::proto::FaceFeatureFloatResult* release_face_feature_float_result();
  ::vitis::ai::proto::FaceFeatureFloatResult* mutable_face_feature_float_result();
  void set_allocated_face_feature_float_result(::vitis::ai::proto::FaceFeatureFloatResult* face_feature_float_result);

  // optional .vitis.ai.proto.SegmetationResult segmentation_result = 13;
  bool has_segmentation_result() const;
  void clear_segmentation_result();
  const ::vitis::ai::proto::SegmetationResult& segmentation_result() const;
  ::vitis::ai::proto::SegmetationResult* release_segmentation_result();
  ::vitis::ai::proto::SegmetationResult* mutable_segmentation_result();
  void set_allocated_segmentation_result(::vitis::ai::proto::SegmetationResult* segmentation_result);

  // optional .vitis.ai.proto.MedicalSegmetationResult medical_segmentation_result = 14;
  bool has_medical_segmentation_result() const;
  void clear_medical_segmentation_result();
  const ::vitis::ai::proto::MedicalSegmetationResult& medical_segmentation_result() const;
  ::vitis::ai::proto::MedicalSegmetationResult* release_medical_segmentation_result();
  ::vitis::ai::proto::MedicalSegmetationResult* mutable_medical_segmentation_result();
  void set_allocated_medical_segmentation_result(::vitis::ai::proto::MedicalSegmetationResult* medical_segmentation_result);

  // optional .vitis.ai.proto.MultiTaskResult multitask_result = 15;
  bool has_multitask_result() const;
  void clear_multitask_result();
  const ::vitis::ai::proto::MultiTaskResult& multitask_result() const;
  ::vitis::ai::proto::MultiTaskResult* release_multitask_result();
  ::vitis::ai::proto::MultiTaskResult* mutable_multitask_result();
  void set_allocated_multitask_result(::vitis::ai::proto::MultiTaskResult* multitask_result);

  // optional .vitis.ai.proto.ReidResult reid_result = 16;
  bool has_reid_result() const;
  void clear_reid_result();
  const ::vitis::ai::proto::ReidResult& reid_result() const;
  ::vitis::ai::proto::ReidResult* release_reid_result();
  ::vitis::ai::proto::ReidResult* mutable_reid_result();
  void set_allocated_reid_result(::vitis::ai::proto::ReidResult* reid_result);

  // optional .vitis.ai.proto.FaceDetectRecogFloatResult face_detect_recog_float_result = 17;
  bool has_face_detect_recog_float_result() const;
  void clear_face_detect_recog_float_result();
  const ::vitis::ai::proto::FaceDetectRecogFloatResult& face_detect_recog_float_result() const;
  ::vitis::ai::proto::FaceDetectRecogFloatResult* release_face_detect_recog_float_result();
  ::vitis::ai::proto::FaceDetectRecogFloatResult* mutable_face_detect_recog_float_result();
  void set_allocated_face_detect_recog_float_result(::vitis::ai::proto::FaceDetectRecogFloatResult* face_detect_recog_float_result);

  // optional .vitis.ai.proto.FaceDetectRecogFixedResult face_detect_recog_fixed_result = 18;
  bool has_face_detect_recog_fixed_result() const;
  void clear_face_detect_recog_fixed_result();
  const ::vitis::ai::proto::FaceDetectRecogFixedResult& face_detect_recog_fixed_result() const;
  ::vitis::ai::proto::FaceDetectRecogFixedResult* release_face_detect_recog_fixed_result();
  ::vitis::ai::proto::FaceDetectRecogFixedResult* mutable_face_detect_recog_fixed_result();
  void set_allocated_face_detect_recog_fixed_result(::vitis::ai::proto::FaceDetectRecogFixedResult* face_detect_recog_fixed_result);

  void clear_dpu_model_result();
  DpuModelResultCase dpu_model_result_case() const;
  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DpuModelResult)
 private:
  class _Internal;
  void set_has_landmark_result();
  void set_has_detect_result();
  void set_has_attribute_result();
  void set_has_refine_det_result();
  void set_has_classification_result();
  void set_has_roadline_result();
  void set_has_facelandmark_result();
  void set_has_plate_detect_result();
  void set_has_plate_num_result();
  void set_has_plate_recog_result();
  void set_has_pose_detect_result();
  void set_has_face_feature_float_result();
  void set_has_segmentation_result();
  void set_has_medical_segmentation_result();
  void set_has_multitask_result();
  void set_has_reid_result();
  void set_has_face_detect_recog_float_result();
  void set_has_face_detect_recog_fixed_result();

  inline bool has_dpu_model_result() const;
  inline void clear_has_dpu_model_result();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  union DpuModelResultUnion {
    DpuModelResultUnion() {}
    ::vitis::ai::proto::LandmarkResult* landmark_result_;
    ::vitis::ai::proto::DetectResult* detect_result_;
    ::vitis::ai::proto::AttributeResult* attribute_result_;
    ::vitis::ai::proto::RefineDetResult* refine_det_result_;
    ::vitis::ai::proto::ClassificationResult* classification_result_;
    ::vitis::ai::proto::RoadlineResult* roadline_result_;
    ::vitis::ai::proto::FaceLandmarkResult* facelandmark_result_;
    ::vitis::ai::proto::PlateDetectResult* plate_detect_result_;
    ::vitis::ai::proto::PlateNumResult* plate_num_result_;
    ::vitis::ai::proto::PlateRecogResult* plate_recog_result_;
    ::vitis::ai::proto::PoseDetectResult* pose_detect_result_;
    ::vitis::ai::proto::FaceFeatureFloatResult* face_feature_float_result_;
    ::vitis::ai::proto::SegmetationResult* segmentation_result_;
    ::vitis::ai::proto::MedicalSegmetationResult* medical_segmentation_result_;
    ::vitis::ai::proto::MultiTaskResult* multitask_result_;
    ::vitis::ai::proto::ReidResult* reid_result_;
    ::vitis::ai::proto::FaceDetectRecogFloatResult* face_detect_recog_float_result_;
    ::vitis::ai::proto::FaceDetectRecogFixedResult* face_detect_recog_fixed_result_;
  } dpu_model_result_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// ===================================================================


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

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// YoloV3Param

// optional int32 num_classes = 1;
inline bool YoloV3Param::has_num_classes() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void YoloV3Param::clear_num_classes() {
  num_classes_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 YoloV3Param::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.num_classes)
  return num_classes_;
}
inline void YoloV3Param::set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  num_classes_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.num_classes)
}

// optional int32 anchorCnt = 2;
inline bool YoloV3Param::has_anchorcnt() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void YoloV3Param::clear_anchorcnt() {
  anchorcnt_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 YoloV3Param::anchorcnt() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.anchorCnt)
  return anchorcnt_;
}
inline void YoloV3Param::set_anchorcnt(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  anchorcnt_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.anchorCnt)
}

// optional float conf_threshold = 3;
inline bool YoloV3Param::has_conf_threshold() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void YoloV3Param::clear_conf_threshold() {
  conf_threshold_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float YoloV3Param::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.conf_threshold)
  return conf_threshold_;
}
inline void YoloV3Param::set_conf_threshold(float value) {
  _has_bits_[0] |= 0x00000004u;
  conf_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.conf_threshold)
}

// optional float nms_threshold = 4;
inline bool YoloV3Param::has_nms_threshold() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void YoloV3Param::clear_nms_threshold() {
  nms_threshold_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float YoloV3Param::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.nms_threshold)
  return nms_threshold_;
}
inline void YoloV3Param::set_nms_threshold(float value) {
  _has_bits_[0] |= 0x00000008u;
  nms_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.nms_threshold)
}

// repeated float biases = 5;
inline int YoloV3Param::biases_size() const {
  return biases_.size();
}
inline void YoloV3Param::clear_biases() {
  biases_.Clear();
}
inline float YoloV3Param::biases(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.biases)
  return biases_.Get(index);
}
inline void YoloV3Param::set_biases(int index, float value) {
  biases_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.biases)
}
inline void YoloV3Param::add_biases(float value) {
  biases_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV3Param.biases)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV3Param::biases() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV3Param.biases)
  return biases_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV3Param::mutable_biases() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV3Param.biases)
  return &biases_;
}

// optional bool test_mAP = 6;
inline bool YoloV3Param::has_test_map() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void YoloV3Param::clear_test_map() {
  test_map_ = false;
  _has_bits_[0] &= ~0x00000010u;
}
inline bool YoloV3Param::test_map() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.test_mAP)
  return test_map_;
}
inline void YoloV3Param::set_test_map(bool value) {
  _has_bits_[0] |= 0x00000010u;
  test_map_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.test_mAP)
}

// repeated string layer_name = 7;
inline int YoloV3Param::layer_name_size() const {
  return layer_name_.size();
}
inline void YoloV3Param::clear_layer_name() {
  layer_name_.Clear();
}
inline const std::string& YoloV3Param::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.layer_name)
  return layer_name_.Get(index);
}
inline std::string* YoloV3Param::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.YoloV3Param.layer_name)
  return layer_name_.Mutable(index);
}
inline void YoloV3Param::set_layer_name(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.layer_name)
  layer_name_.Mutable(index)->assign(value);
}
inline void YoloV3Param::set_layer_name(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.layer_name)
  layer_name_.Mutable(index)->assign(std::move(value));
}
inline void YoloV3Param::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.YoloV3Param.layer_name)
}
inline void YoloV3Param::set_layer_name(int index, const char* value, size_t size) {
  layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.YoloV3Param.layer_name)
}
inline std::string* YoloV3Param::add_layer_name() {
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.YoloV3Param.layer_name)
  return layer_name_.Add();
}
inline void YoloV3Param::add_layer_name(const std::string& value) {
  layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV3Param.layer_name)
}
inline void YoloV3Param::add_layer_name(std::string&& value) {
  layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV3Param.layer_name)
}
inline void YoloV3Param::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.YoloV3Param.layer_name)
}
inline void YoloV3Param::add_layer_name(const char* value, size_t size) {
  layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.YoloV3Param.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
YoloV3Param::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV3Param.layer_name)
  return layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
YoloV3Param::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV3Param.layer_name)
  return &layer_name_;
}

// -------------------------------------------------------------------

// MedicalPriorBoxParam

// repeated int32 input_shape = 1;
inline int MedicalPriorBoxParam::input_shape_size() const {
  return input_shape_.size();
}
inline void MedicalPriorBoxParam::clear_input_shape() {
  input_shape_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MedicalPriorBoxParam::input_shape(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.input_shape)
  return input_shape_.Get(index);
}
inline void MedicalPriorBoxParam::set_input_shape(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  input_shape_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.input_shape)
}
inline void MedicalPriorBoxParam::add_input_shape(::PROTOBUF_NAMESPACE_ID::int32 value) {
  input_shape_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.input_shape)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
MedicalPriorBoxParam::input_shape() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.input_shape)
  return input_shape_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
MedicalPriorBoxParam::mutable_input_shape() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.input_shape)
  return &input_shape_;
}

// repeated int32 feature_shapes = 2;
inline int MedicalPriorBoxParam::feature_shapes_size() const {
  return feature_shapes_.size();
}
inline void MedicalPriorBoxParam::clear_feature_shapes() {
  feature_shapes_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MedicalPriorBoxParam::feature_shapes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.feature_shapes)
  return feature_shapes_.Get(index);
}
inline void MedicalPriorBoxParam::set_feature_shapes(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  feature_shapes_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.feature_shapes)
}
inline void MedicalPriorBoxParam::add_feature_shapes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  feature_shapes_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.feature_shapes)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
MedicalPriorBoxParam::feature_shapes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.feature_shapes)
  return feature_shapes_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
MedicalPriorBoxParam::mutable_feature_shapes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.feature_shapes)
  return &feature_shapes_;
}

// repeated int32 min_sizes = 3;
inline int MedicalPriorBoxParam::min_sizes_size() const {
  return min_sizes_.size();
}
inline void MedicalPriorBoxParam::clear_min_sizes() {
  min_sizes_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MedicalPriorBoxParam::min_sizes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.min_sizes)
  return min_sizes_.Get(index);
}
inline void MedicalPriorBoxParam::set_min_sizes(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  min_sizes_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.min_sizes)
}
inline void MedicalPriorBoxParam::add_min_sizes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  min_sizes_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.min_sizes)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
MedicalPriorBoxParam::min_sizes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.min_sizes)
  return min_sizes_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
MedicalPriorBoxParam::mutable_min_sizes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.min_sizes)
  return &min_sizes_;
}

// repeated int32 max_sizes = 4;
inline int MedicalPriorBoxParam::max_sizes_size() const {
  return max_sizes_.size();
}
inline void MedicalPriorBoxParam::clear_max_sizes() {
  max_sizes_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MedicalPriorBoxParam::max_sizes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.max_sizes)
  return max_sizes_.Get(index);
}
inline void MedicalPriorBoxParam::set_max_sizes(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  max_sizes_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.max_sizes)
}
inline void MedicalPriorBoxParam::add_max_sizes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  max_sizes_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.max_sizes)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
MedicalPriorBoxParam::max_sizes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.max_sizes)
  return max_sizes_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
MedicalPriorBoxParam::mutable_max_sizes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.max_sizes)
  return &max_sizes_;
}

// repeated float aspect_ratios = 5;
inline int MedicalPriorBoxParam::aspect_ratios_size() const {
  return aspect_ratios_.size();
}
inline void MedicalPriorBoxParam::clear_aspect_ratios() {
  aspect_ratios_.Clear();
}
inline float MedicalPriorBoxParam::aspect_ratios(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.aspect_ratios)
  return aspect_ratios_.Get(index);
}
inline void MedicalPriorBoxParam::set_aspect_ratios(int index, float value) {
  aspect_ratios_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.aspect_ratios)
}
inline void MedicalPriorBoxParam::add_aspect_ratios(float value) {
  aspect_ratios_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.aspect_ratios)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
MedicalPriorBoxParam::aspect_ratios() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.aspect_ratios)
  return aspect_ratios_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
MedicalPriorBoxParam::mutable_aspect_ratios() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.aspect_ratios)
  return &aspect_ratios_;
}

// repeated int32 steps = 6;
inline int MedicalPriorBoxParam::steps_size() const {
  return steps_.size();
}
inline void MedicalPriorBoxParam::clear_steps() {
  steps_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MedicalPriorBoxParam::steps(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.steps)
  return steps_.Get(index);
}
inline void MedicalPriorBoxParam::set_steps(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  steps_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.steps)
}
inline void MedicalPriorBoxParam::add_steps(::PROTOBUF_NAMESPACE_ID::int32 value) {
  steps_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.steps)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
MedicalPriorBoxParam::steps() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.steps)
  return steps_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
MedicalPriorBoxParam::mutable_steps() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.steps)
  return &steps_;
}

// optional float offset = 7;
inline bool MedicalPriorBoxParam::has_offset() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MedicalPriorBoxParam::clear_offset() {
  offset_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float MedicalPriorBoxParam::offset() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.offset)
  return offset_;
}
inline void MedicalPriorBoxParam::set_offset(float value) {
  _has_bits_[0] |= 0x00000001u;
  offset_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.offset)
}

// -------------------------------------------------------------------

// PriorBoxParam

// optional int32 layer_width = 1;
inline bool PriorBoxParam::has_layer_width() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PriorBoxParam::clear_layer_width() {
  layer_width_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PriorBoxParam::layer_width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.layer_width)
  return layer_width_;
}
inline void PriorBoxParam::set_layer_width(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  layer_width_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.layer_width)
}

// optional int32 layer_height = 2;
inline bool PriorBoxParam::has_layer_height() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PriorBoxParam::clear_layer_height() {
  layer_height_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PriorBoxParam::layer_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.layer_height)
  return layer_height_;
}
inline void PriorBoxParam::set_layer_height(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  layer_height_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.layer_height)
}

// repeated float variances = 4;
inline int PriorBoxParam::variances_size() const {
  return variances_.size();
}
inline void PriorBoxParam::clear_variances() {
  variances_.Clear();
}
inline float PriorBoxParam::variances(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.variances)
  return variances_.Get(index);
}
inline void PriorBoxParam::set_variances(int index, float value) {
  variances_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.variances)
}
inline void PriorBoxParam::add_variances(float value) {
  variances_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PriorBoxParam.variances)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::variances() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PriorBoxParam.variances)
  return variances_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::mutable_variances() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PriorBoxParam.variances)
  return &variances_;
}

// repeated float min_sizes = 5;
inline int PriorBoxParam::min_sizes_size() const {
  return min_sizes_.size();
}
inline void PriorBoxParam::clear_min_sizes() {
  min_sizes_.Clear();
}
inline float PriorBoxParam::min_sizes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.min_sizes)
  return min_sizes_.Get(index);
}
inline void PriorBoxParam::set_min_sizes(int index, float value) {
  min_sizes_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.min_sizes)
}
inline void PriorBoxParam::add_min_sizes(float value) {
  min_sizes_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PriorBoxParam.min_sizes)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::min_sizes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PriorBoxParam.min_sizes)
  return min_sizes_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::mutable_min_sizes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PriorBoxParam.min_sizes)
  return &min_sizes_;
}

// repeated float max_sizes = 6;
inline int PriorBoxParam::max_sizes_size() const {
  return max_sizes_.size();
}
inline void PriorBoxParam::clear_max_sizes() {
  max_sizes_.Clear();
}
inline float PriorBoxParam::max_sizes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.max_sizes)
  return max_sizes_.Get(index);
}
inline void PriorBoxParam::set_max_sizes(int index, float value) {
  max_sizes_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.max_sizes)
}
inline void PriorBoxParam::add_max_sizes(float value) {
  max_sizes_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PriorBoxParam.max_sizes)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::max_sizes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PriorBoxParam.max_sizes)
  return max_sizes_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::mutable_max_sizes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PriorBoxParam.max_sizes)
  return &max_sizes_;
}

// repeated float aspect_ratios = 7;
inline int PriorBoxParam::aspect_ratios_size() const {
  return aspect_ratios_.size();
}
inline void PriorBoxParam::clear_aspect_ratios() {
  aspect_ratios_.Clear();
}
inline float PriorBoxParam::aspect_ratios(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.aspect_ratios)
  return aspect_ratios_.Get(index);
}
inline void PriorBoxParam::set_aspect_ratios(int index, float value) {
  aspect_ratios_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.aspect_ratios)
}
inline void PriorBoxParam::add_aspect_ratios(float value) {
  aspect_ratios_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PriorBoxParam.aspect_ratios)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::aspect_ratios() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PriorBoxParam.aspect_ratios)
  return aspect_ratios_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::mutable_aspect_ratios() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PriorBoxParam.aspect_ratios)
  return &aspect_ratios_;
}

// optional float offset = 8;
inline bool PriorBoxParam::has_offset() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PriorBoxParam::clear_offset() {
  offset_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float PriorBoxParam::offset() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.offset)
  return offset_;
}
inline void PriorBoxParam::set_offset(float value) {
  _has_bits_[0] |= 0x00000004u;
  offset_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.offset)
}

// optional float step_width = 9;
inline bool PriorBoxParam::has_step_width() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PriorBoxParam::clear_step_width() {
  step_width_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float PriorBoxParam::step_width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.step_width)
  return step_width_;
}
inline void PriorBoxParam::set_step_width(float value) {
  _has_bits_[0] |= 0x00000008u;
  step_width_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.step_width)
}

// optional float step_height = 10;
inline bool PriorBoxParam::has_step_height() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PriorBoxParam::clear_step_height() {
  step_height_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline float PriorBoxParam::step_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.step_height)
  return step_height_;
}
inline void PriorBoxParam::set_step_height(float value) {
  _has_bits_[0] |= 0x00000010u;
  step_height_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.step_height)
}

// optional bool flip = 11;
inline bool PriorBoxParam::has_flip() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PriorBoxParam::clear_flip() {
  flip_ = false;
  _has_bits_[0] &= ~0x00000020u;
}
inline bool PriorBoxParam::flip() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.flip)
  return flip_;
}
inline void PriorBoxParam::set_flip(bool value) {
  _has_bits_[0] |= 0x00000020u;
  flip_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.flip)
}

// optional bool clip = 12;
inline bool PriorBoxParam::has_clip() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void PriorBoxParam::clear_clip() {
  clip_ = false;
  _has_bits_[0] &= ~0x00000040u;
}
inline bool PriorBoxParam::clip() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.clip)
  return clip_;
}
inline void PriorBoxParam::set_clip(bool value) {
  _has_bits_[0] |= 0x00000040u;
  clip_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.clip)
}

// -------------------------------------------------------------------

// SSDParam_OutputInfo

// optional .vitis.ai.proto.SSDParam.OutputType type = 1;
inline bool SSDParam_OutputInfo::has_type() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SSDParam_OutputInfo::clear_type() {
  type_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::vitis::ai::proto::SSDParam_OutputType SSDParam_OutputInfo::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.OutputInfo.type)
  return static_cast< ::vitis::ai::proto::SSDParam_OutputType >(type_);
}
inline void SSDParam_OutputInfo::set_type(::vitis::ai::proto::SSDParam_OutputType value) {
  assert(::vitis::ai::proto::SSDParam_OutputType_IsValid(value));
  _has_bits_[0] |= 0x00000002u;
  type_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.OutputInfo.type)
}

// optional int32 order = 2;
inline bool SSDParam_OutputInfo::has_order() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SSDParam_OutputInfo::clear_order() {
  order_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SSDParam_OutputInfo::order() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.OutputInfo.order)
  return order_;
}
inline void SSDParam_OutputInfo::set_order(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  order_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.OutputInfo.order)
}

// optional string name = 3;
inline bool SSDParam_OutputInfo::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SSDParam_OutputInfo::clear_name() {
  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& SSDParam_OutputInfo::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.OutputInfo.name)
  return name_.GetNoArena();
}
inline void SSDParam_OutputInfo::set_name(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.OutputInfo.name)
}
inline void SSDParam_OutputInfo::set_name(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.SSDParam.OutputInfo.name)
}
inline void SSDParam_OutputInfo::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.SSDParam.OutputInfo.name)
}
inline void SSDParam_OutputInfo::set_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.SSDParam.OutputInfo.name)
}
inline std::string* SSDParam_OutputInfo::mutable_name() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SSDParam.OutputInfo.name)
  return name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* SSDParam_OutputInfo::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SSDParam.OutputInfo.name)
  if (!has_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return name_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void SSDParam_OutputInfo::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SSDParam.OutputInfo.name)
}

// -------------------------------------------------------------------

// SSDParam

// repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
inline int SSDParam::prior_box_param_size() const {
  return prior_box_param_.size();
}
inline void SSDParam::clear_prior_box_param() {
  prior_box_param_.Clear();
}
inline ::vitis::ai::proto::PriorBoxParam* SSDParam::mutable_prior_box_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SSDParam.prior_box_param)
  return prior_box_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
SSDParam::mutable_prior_box_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SSDParam.prior_box_param)
  return &prior_box_param_;
}
inline const ::vitis::ai::proto::PriorBoxParam& SSDParam::prior_box_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.prior_box_param)
  return prior_box_param_.Get(index);
}
inline ::vitis::ai::proto::PriorBoxParam* SSDParam::add_prior_box_param() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SSDParam.prior_box_param)
  return prior_box_param_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
SSDParam::prior_box_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SSDParam.prior_box_param)
  return prior_box_param_;
}

// optional int32 num_classes = 2;
inline bool SSDParam::has_num_classes() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SSDParam::clear_num_classes() {
  num_classes_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SSDParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.num_classes)
  return num_classes_;
}
inline void SSDParam::set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  num_classes_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.num_classes)
}

// optional float nms_threshold = 3;
inline bool SSDParam::has_nms_threshold() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SSDParam::clear_nms_threshold() {
  nms_threshold_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float SSDParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.nms_threshold)
  return nms_threshold_;
}
inline void SSDParam::set_nms_threshold(float value) {
  _has_bits_[0] |= 0x00000002u;
  nms_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.nms_threshold)
}

// repeated float conf_threshold = 4;
inline int SSDParam::conf_threshold_size() const {
  return conf_threshold_.size();
}
inline void SSDParam::clear_conf_threshold() {
  conf_threshold_.Clear();
}
inline float SSDParam::conf_threshold(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.conf_threshold)
  return conf_threshold_.Get(index);
}
inline void SSDParam::set_conf_threshold(int index, float value) {
  conf_threshold_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.conf_threshold)
}
inline void SSDParam::add_conf_threshold(float value) {
  conf_threshold_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SSDParam.conf_threshold)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SSDParam::conf_threshold() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SSDParam.conf_threshold)
  return conf_threshold_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SSDParam::mutable_conf_threshold() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SSDParam.conf_threshold)
  return &conf_threshold_;
}

// optional int32 keep_top_k = 5;
inline bool SSDParam::has_keep_top_k() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SSDParam::clear_keep_top_k() {
  keep_top_k_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SSDParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.keep_top_k)
  return keep_top_k_;
}
inline void SSDParam::set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  keep_top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.keep_top_k)
}

// optional int32 top_k = 6;
inline bool SSDParam::has_top_k() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SSDParam::clear_top_k() {
  top_k_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SSDParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.top_k)
  return top_k_;
}
inline void SSDParam::set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.top_k)
}

// optional bool is_mlperf = 7;
inline bool SSDParam::has_is_mlperf() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void SSDParam::clear_is_mlperf() {
  is_mlperf_ = false;
  _has_bits_[0] &= ~0x00000010u;
}
inline bool SSDParam::is_mlperf() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.is_mlperf)
  return is_mlperf_;
}
inline void SSDParam::set_is_mlperf(bool value) {
  _has_bits_[0] |= 0x00000010u;
  is_mlperf_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.is_mlperf)
}

// repeated int32 bbox_layer_index = 8;
inline int SSDParam::bbox_layer_index_size() const {
  return bbox_layer_index_.size();
}
inline void SSDParam::clear_bbox_layer_index() {
  bbox_layer_index_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SSDParam::bbox_layer_index(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.bbox_layer_index)
  return bbox_layer_index_.Get(index);
}
inline void SSDParam::set_bbox_layer_index(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  bbox_layer_index_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.bbox_layer_index)
}
inline void SSDParam::add_bbox_layer_index(::PROTOBUF_NAMESPACE_ID::int32 value) {
  bbox_layer_index_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SSDParam.bbox_layer_index)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
SSDParam::bbox_layer_index() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SSDParam.bbox_layer_index)
  return bbox_layer_index_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
SSDParam::mutable_bbox_layer_index() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SSDParam.bbox_layer_index)
  return &bbox_layer_index_;
}

// repeated .vitis.ai.proto.SSDParam.OutputInfo output_info = 9;
inline int SSDParam::output_info_size() const {
  return output_info_.size();
}
inline void SSDParam::clear_output_info() {
  output_info_.Clear();
}
inline ::vitis::ai::proto::SSDParam_OutputInfo* SSDParam::mutable_output_info(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SSDParam.output_info)
  return output_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SSDParam_OutputInfo >*
SSDParam::mutable_output_info() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SSDParam.output_info)
  return &output_info_;
}
inline const ::vitis::ai::proto::SSDParam_OutputInfo& SSDParam::output_info(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.output_info)
  return output_info_.Get(index);
}
inline ::vitis::ai::proto::SSDParam_OutputInfo* SSDParam::add_output_info() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SSDParam.output_info)
  return output_info_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SSDParam_OutputInfo >&
SSDParam::output_info() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SSDParam.output_info)
  return output_info_;
}

// -------------------------------------------------------------------

// RefineDetParam

// repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
inline int RefineDetParam::prior_box_param_size() const {
  return prior_box_param_.size();
}
inline void RefineDetParam::clear_prior_box_param() {
  prior_box_param_.Clear();
}
inline ::vitis::ai::proto::PriorBoxParam* RefineDetParam::mutable_prior_box_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RefineDetParam.prior_box_param)
  return prior_box_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
RefineDetParam::mutable_prior_box_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RefineDetParam.prior_box_param)
  return &prior_box_param_;
}
inline const ::vitis::ai::proto::PriorBoxParam& RefineDetParam::prior_box_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.prior_box_param)
  return prior_box_param_.Get(index);
}
inline ::vitis::ai::proto::PriorBoxParam* RefineDetParam::add_prior_box_param() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RefineDetParam.prior_box_param)
  return prior_box_param_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
RefineDetParam::prior_box_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RefineDetParam.prior_box_param)
  return prior_box_param_;
}

// optional int32 num_classes = 2;
inline bool RefineDetParam::has_num_classes() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RefineDetParam::clear_num_classes() {
  num_classes_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RefineDetParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.num_classes)
  return num_classes_;
}
inline void RefineDetParam::set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  num_classes_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.num_classes)
}

// optional float nms_threshold = 3;
inline bool RefineDetParam::has_nms_threshold() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RefineDetParam::clear_nms_threshold() {
  nms_threshold_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float RefineDetParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.nms_threshold)
  return nms_threshold_;
}
inline void RefineDetParam::set_nms_threshold(float value) {
  _has_bits_[0] |= 0x00000002u;
  nms_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.nms_threshold)
}

// repeated float conf_threshold = 4;
inline int RefineDetParam::conf_threshold_size() const {
  return conf_threshold_.size();
}
inline void RefineDetParam::clear_conf_threshold() {
  conf_threshold_.Clear();
}
inline float RefineDetParam::conf_threshold(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.conf_threshold)
  return conf_threshold_.Get(index);
}
inline void RefineDetParam::set_conf_threshold(int index, float value) {
  conf_threshold_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.conf_threshold)
}
inline void RefineDetParam::add_conf_threshold(float value) {
  conf_threshold_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RefineDetParam.conf_threshold)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RefineDetParam::conf_threshold() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RefineDetParam.conf_threshold)
  return conf_threshold_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RefineDetParam::mutable_conf_threshold() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RefineDetParam.conf_threshold)
  return &conf_threshold_;
}

// optional int32 keep_top_k = 5;
inline bool RefineDetParam::has_keep_top_k() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RefineDetParam::clear_keep_top_k() {
  keep_top_k_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RefineDetParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.keep_top_k)
  return keep_top_k_;
}
inline void RefineDetParam::set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  keep_top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.keep_top_k)
}

// optional int32 top_k = 6;
inline bool RefineDetParam::has_top_k() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void RefineDetParam::clear_top_k() {
  top_k_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RefineDetParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.top_k)
  return top_k_;
}
inline void RefineDetParam::set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.top_k)
}

// repeated string layer_name = 7;
inline int RefineDetParam::layer_name_size() const {
  return layer_name_.size();
}
inline void RefineDetParam::clear_layer_name() {
  layer_name_.Clear();
}
inline const std::string& RefineDetParam::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.layer_name)
  return layer_name_.Get(index);
}
inline std::string* RefineDetParam::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RefineDetParam.layer_name)
  return layer_name_.Mutable(index);
}
inline void RefineDetParam::set_layer_name(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.layer_name)
  layer_name_.Mutable(index)->assign(value);
}
inline void RefineDetParam::set_layer_name(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.layer_name)
  layer_name_.Mutable(index)->assign(std::move(value));
}
inline void RefineDetParam::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.RefineDetParam.layer_name)
}
inline void RefineDetParam::set_layer_name(int index, const char* value, size_t size) {
  layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.RefineDetParam.layer_name)
}
inline std::string* RefineDetParam::add_layer_name() {
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.RefineDetParam.layer_name)
  return layer_name_.Add();
}
inline void RefineDetParam::add_layer_name(const std::string& value) {
  layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RefineDetParam.layer_name)
}
inline void RefineDetParam::add_layer_name(std::string&& value) {
  layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RefineDetParam.layer_name)
}
inline void RefineDetParam::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.RefineDetParam.layer_name)
}
inline void RefineDetParam::add_layer_name(const char* value, size_t size) {
  layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.RefineDetParam.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
RefineDetParam::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RefineDetParam.layer_name)
  return layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
RefineDetParam::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RefineDetParam.layer_name)
  return &layer_name_;
}

// -------------------------------------------------------------------

// TFRefineDetParam

// optional .vitis.ai.proto.MedicalPriorBoxParam prior_box_param = 1;
inline bool TFRefineDetParam::has_prior_box_param() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TFRefineDetParam::clear_prior_box_param() {
  if (prior_box_param_ != nullptr) prior_box_param_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::vitis::ai::proto::MedicalPriorBoxParam& TFRefineDetParam::prior_box_param() const {
  const ::vitis::ai::proto::MedicalPriorBoxParam* p = prior_box_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.prior_box_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::MedicalPriorBoxParam*>(
      &::vitis::ai::proto::_MedicalPriorBoxParam_default_instance_);
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* TFRefineDetParam::release_prior_box_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.TFRefineDetParam.prior_box_param)
  _has_bits_[0] &= ~0x00000001u;
  ::vitis::ai::proto::MedicalPriorBoxParam* temp = prior_box_param_;
  prior_box_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* TFRefineDetParam::mutable_prior_box_param() {
  _has_bits_[0] |= 0x00000001u;
  if (prior_box_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::MedicalPriorBoxParam>(GetArenaNoVirtual());
    prior_box_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.TFRefineDetParam.prior_box_param)
  return prior_box_param_;
}
inline void TFRefineDetParam::set_allocated_prior_box_param(::vitis::ai::proto::MedicalPriorBoxParam* prior_box_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete prior_box_param_;
  }
  if (prior_box_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      prior_box_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, prior_box_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  prior_box_param_ = prior_box_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.TFRefineDetParam.prior_box_param)
}

// optional int32 num_classes = 2;
inline bool TFRefineDetParam::has_num_classes() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TFRefineDetParam::clear_num_classes() {
  num_classes_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TFRefineDetParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.num_classes)
  return num_classes_;
}
inline void TFRefineDetParam::set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  num_classes_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.num_classes)
}

// optional float nms_threshold = 3;
inline bool TFRefineDetParam::has_nms_threshold() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TFRefineDetParam::clear_nms_threshold() {
  nms_threshold_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float TFRefineDetParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.nms_threshold)
  return nms_threshold_;
}
inline void TFRefineDetParam::set_nms_threshold(float value) {
  _has_bits_[0] |= 0x00000004u;
  nms_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.nms_threshold)
}

// optional float conf_threshold = 4;
inline bool TFRefineDetParam::has_conf_threshold() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void TFRefineDetParam::clear_conf_threshold() {
  conf_threshold_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float TFRefineDetParam::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.conf_threshold)
  return conf_threshold_;
}
inline void TFRefineDetParam::set_conf_threshold(float value) {
  _has_bits_[0] |= 0x00000008u;
  conf_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.conf_threshold)
}

// optional int32 keep_top_k = 5;
inline bool TFRefineDetParam::has_keep_top_k() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void TFRefineDetParam::clear_keep_top_k() {
  keep_top_k_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TFRefineDetParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.keep_top_k)
  return keep_top_k_;
}
inline void TFRefineDetParam::set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000010u;
  keep_top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.keep_top_k)
}

// optional int32 top_k = 6;
inline bool TFRefineDetParam::has_top_k() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void TFRefineDetParam::clear_top_k() {
  top_k_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TFRefineDetParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.top_k)
  return top_k_;
}
inline void TFRefineDetParam::set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000020u;
  top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.top_k)
}

// repeated string layer_name = 7;
inline int TFRefineDetParam::layer_name_size() const {
  return layer_name_.size();
}
inline void TFRefineDetParam::clear_layer_name() {
  layer_name_.Clear();
}
inline const std::string& TFRefineDetParam::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.layer_name)
  return layer_name_.Get(index);
}
inline std::string* TFRefineDetParam::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.TFRefineDetParam.layer_name)
  return layer_name_.Mutable(index);
}
inline void TFRefineDetParam::set_layer_name(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.layer_name)
  layer_name_.Mutable(index)->assign(value);
}
inline void TFRefineDetParam::set_layer_name(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.layer_name)
  layer_name_.Mutable(index)->assign(std::move(value));
}
inline void TFRefineDetParam::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline void TFRefineDetParam::set_layer_name(int index, const char* value, size_t size) {
  layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline std::string* TFRefineDetParam::add_layer_name() {
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.TFRefineDetParam.layer_name)
  return layer_name_.Add();
}
inline void TFRefineDetParam::add_layer_name(const std::string& value) {
  layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline void TFRefineDetParam::add_layer_name(std::string&& value) {
  layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline void TFRefineDetParam::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline void TFRefineDetParam::add_layer_name(const char* value, size_t size) {
  layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
TFRefineDetParam::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.TFRefineDetParam.layer_name)
  return layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
TFRefineDetParam::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.TFRefineDetParam.layer_name)
  return &layer_name_;
}

// optional float scale_xy = 8;
inline bool TFRefineDetParam::has_scale_xy() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void TFRefineDetParam::clear_scale_xy() {
  scale_xy_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline float TFRefineDetParam::scale_xy() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.scale_xy)
  return scale_xy_;
}
inline void TFRefineDetParam::set_scale_xy(float value) {
  _has_bits_[0] |= 0x00000040u;
  scale_xy_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.scale_xy)
}

// optional float scale_wh = 9;
inline bool TFRefineDetParam::has_scale_wh() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void TFRefineDetParam::clear_scale_wh() {
  scale_wh_ = 0;
  _has_bits_[0] &= ~0x00000080u;
}
inline float TFRefineDetParam::scale_wh() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.scale_wh)
  return scale_wh_;
}
inline void TFRefineDetParam::set_scale_wh(float value) {
  _has_bits_[0] |= 0x00000080u;
  scale_wh_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.scale_wh)
}

// -------------------------------------------------------------------

// MedicalRefineDetParam

// optional int32 num_classes = 1;
inline bool MedicalRefineDetParam::has_num_classes() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void MedicalRefineDetParam::clear_num_classes() {
  num_classes_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MedicalRefineDetParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.num_classes)
  return num_classes_;
}
inline void MedicalRefineDetParam::set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  num_classes_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.num_classes)
}

// optional float scale_xy = 2;
inline bool MedicalRefineDetParam::has_scale_xy() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void MedicalRefineDetParam::clear_scale_xy() {
  scale_xy_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float MedicalRefineDetParam::scale_xy() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.scale_xy)
  return scale_xy_;
}
inline void MedicalRefineDetParam::set_scale_xy(float value) {
  _has_bits_[0] |= 0x00000004u;
  scale_xy_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.scale_xy)
}

// optional float scale_wh = 3;
inline bool MedicalRefineDetParam::has_scale_wh() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void MedicalRefineDetParam::clear_scale_wh() {
  scale_wh_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float MedicalRefineDetParam::scale_wh() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.scale_wh)
  return scale_wh_;
}
inline void MedicalRefineDetParam::set_scale_wh(float value) {
  _has_bits_[0] |= 0x00000008u;
  scale_wh_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.scale_wh)
}

// optional float nms_threshold = 4;
inline bool MedicalRefineDetParam::has_nms_threshold() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void MedicalRefineDetParam::clear_nms_threshold() {
  nms_threshold_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline float MedicalRefineDetParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.nms_threshold)
  return nms_threshold_;
}
inline void MedicalRefineDetParam::set_nms_threshold(float value) {
  _has_bits_[0] |= 0x00000010u;
  nms_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.nms_threshold)
}

// optional float conf_threshold = 5;
inline bool MedicalRefineDetParam::has_conf_threshold() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void MedicalRefineDetParam::clear_conf_threshold() {
  conf_threshold_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline float MedicalRefineDetParam::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.conf_threshold)
  return conf_threshold_;
}
inline void MedicalRefineDetParam::set_conf_threshold(float value) {
  _has_bits_[0] |= 0x00000020u;
  conf_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.conf_threshold)
}

// optional int32 keep_top_k = 6;
inline bool MedicalRefineDetParam::has_keep_top_k() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void MedicalRefineDetParam::clear_keep_top_k() {
  keep_top_k_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MedicalRefineDetParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.keep_top_k)
  return keep_top_k_;
}
inline void MedicalRefineDetParam::set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000040u;
  keep_top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.keep_top_k)
}

// optional int32 top_k = 7;
inline bool MedicalRefineDetParam::has_top_k() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void MedicalRefineDetParam::clear_top_k() {
  top_k_ = 0;
  _has_bits_[0] &= ~0x00000080u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MedicalRefineDetParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.top_k)
  return top_k_;
}
inline void MedicalRefineDetParam::set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000080u;
  top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.top_k)
}

// optional .vitis.ai.proto.MedicalPriorBoxParam medical_prior_box_param = 8;
inline bool MedicalRefineDetParam::has_medical_prior_box_param() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MedicalRefineDetParam::clear_medical_prior_box_param() {
  if (medical_prior_box_param_ != nullptr) medical_prior_box_param_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::vitis::ai::proto::MedicalPriorBoxParam& MedicalRefineDetParam::medical_prior_box_param() const {
  const ::vitis::ai::proto::MedicalPriorBoxParam* p = medical_prior_box_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.medical_prior_box_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::MedicalPriorBoxParam*>(
      &::vitis::ai::proto::_MedicalPriorBoxParam_default_instance_);
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* MedicalRefineDetParam::release_medical_prior_box_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.MedicalRefineDetParam.medical_prior_box_param)
  _has_bits_[0] &= ~0x00000001u;
  ::vitis::ai::proto::MedicalPriorBoxParam* temp = medical_prior_box_param_;
  medical_prior_box_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* MedicalRefineDetParam::mutable_medical_prior_box_param() {
  _has_bits_[0] |= 0x00000001u;
  if (medical_prior_box_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::MedicalPriorBoxParam>(GetArenaNoVirtual());
    medical_prior_box_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MedicalRefineDetParam.medical_prior_box_param)
  return medical_prior_box_param_;
}
inline void MedicalRefineDetParam::set_allocated_medical_prior_box_param(::vitis::ai::proto::MedicalPriorBoxParam* medical_prior_box_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete medical_prior_box_param_;
  }
  if (medical_prior_box_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      medical_prior_box_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, medical_prior_box_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  medical_prior_box_param_ = medical_prior_box_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.MedicalRefineDetParam.medical_prior_box_param)
}

// -------------------------------------------------------------------

// ReidParam

// repeated float bn_means = 1;
inline int ReidParam::bn_means_size() const {
  return bn_means_.size();
}
inline void ReidParam::clear_bn_means() {
  bn_means_.Clear();
}
inline float ReidParam::bn_means(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ReidParam.bn_means)
  return bn_means_.Get(index);
}
inline void ReidParam::set_bn_means(int index, float value) {
  bn_means_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ReidParam.bn_means)
}
inline void ReidParam::add_bn_means(float value) {
  bn_means_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.ReidParam.bn_means)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
ReidParam::bn_means() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.ReidParam.bn_means)
  return bn_means_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
ReidParam::mutable_bn_means() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.ReidParam.bn_means)
  return &bn_means_;
}

// repeated float bn_weights = 2;
inline int ReidParam::bn_weights_size() const {
  return bn_weights_.size();
}
inline void ReidParam::clear_bn_weights() {
  bn_weights_.Clear();
}
inline float ReidParam::bn_weights(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ReidParam.bn_weights)
  return bn_weights_.Get(index);
}
inline void ReidParam::set_bn_weights(int index, float value) {
  bn_weights_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ReidParam.bn_weights)
}
inline void ReidParam::add_bn_weights(float value) {
  bn_weights_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.ReidParam.bn_weights)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
ReidParam::bn_weights() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.ReidParam.bn_weights)
  return bn_weights_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
ReidParam::mutable_bn_weights() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.ReidParam.bn_weights)
  return &bn_weights_;
}

// repeated float bn_vars = 3;
inline int ReidParam::bn_vars_size() const {
  return bn_vars_.size();
}
inline void ReidParam::clear_bn_vars() {
  bn_vars_.Clear();
}
inline float ReidParam::bn_vars(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ReidParam.bn_vars)
  return bn_vars_.Get(index);
}
inline void ReidParam::set_bn_vars(int index, float value) {
  bn_vars_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ReidParam.bn_vars)
}
inline void ReidParam::add_bn_vars(float value) {
  bn_vars_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.ReidParam.bn_vars)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
ReidParam::bn_vars() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.ReidParam.bn_vars)
  return bn_vars_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
ReidParam::mutable_bn_vars() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.ReidParam.bn_vars)
  return &bn_vars_;
}

// -------------------------------------------------------------------

// OpenPoseParam

// repeated string layer_name = 1;
inline int OpenPoseParam::layer_name_size() const {
  return layer_name_.size();
}
inline void OpenPoseParam::clear_layer_name() {
  layer_name_.Clear();
}
inline const std::string& OpenPoseParam::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.OpenPoseParam.layer_name)
  return layer_name_.Get(index);
}
inline std::string* OpenPoseParam::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.OpenPoseParam.layer_name)
  return layer_name_.Mutable(index);
}
inline void OpenPoseParam::set_layer_name(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.OpenPoseParam.layer_name)
  layer_name_.Mutable(index)->assign(value);
}
inline void OpenPoseParam::set_layer_name(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.OpenPoseParam.layer_name)
  layer_name_.Mutable(index)->assign(std::move(value));
}
inline void OpenPoseParam::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline void OpenPoseParam::set_layer_name(int index, const char* value, size_t size) {
  layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline std::string* OpenPoseParam::add_layer_name() {
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.OpenPoseParam.layer_name)
  return layer_name_.Add();
}
inline void OpenPoseParam::add_layer_name(const std::string& value) {
  layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline void OpenPoseParam::add_layer_name(std::string&& value) {
  layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline void OpenPoseParam::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline void OpenPoseParam::add_layer_name(const char* value, size_t size) {
  layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
OpenPoseParam::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.OpenPoseParam.layer_name)
  return layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
OpenPoseParam::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.OpenPoseParam.layer_name)
  return &layer_name_;
}

// -------------------------------------------------------------------

// ClassificationParam_AvgPoolParam

// optional int32 scale = 1;
inline bool ClassificationParam_AvgPoolParam::has_scale() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ClassificationParam_AvgPoolParam::clear_scale() {
  scale_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 ClassificationParam_AvgPoolParam::scale() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.AvgPoolParam.scale)
  return scale_;
}
inline void ClassificationParam_AvgPoolParam::set_scale(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  scale_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.AvgPoolParam.scale)
}

// -------------------------------------------------------------------

// ClassificationParam

// optional int32 top_k = 1;
inline bool ClassificationParam::has_top_k() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void ClassificationParam::clear_top_k() {
  top_k_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 ClassificationParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.top_k)
  return top_k_;
}
inline void ClassificationParam::set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.top_k)
}

// optional bool test_accuracy = 2;
inline bool ClassificationParam::has_test_accuracy() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void ClassificationParam::clear_test_accuracy() {
  test_accuracy_ = false;
  _has_bits_[0] &= ~0x00000010u;
}
inline bool ClassificationParam::test_accuracy() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.test_accuracy)
  return test_accuracy_;
}
inline void ClassificationParam::set_test_accuracy(bool value) {
  _has_bits_[0] |= 0x00000010u;
  test_accuracy_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.test_accuracy)
}

// optional .vitis.ai.proto.ClassificationParam.PreprocessType preprocess_type = 3;
inline bool ClassificationParam::has_preprocess_type() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void ClassificationParam::clear_preprocess_type() {
  preprocess_type_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::vitis::ai::proto::ClassificationParam_PreprocessType ClassificationParam::preprocess_type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.preprocess_type)
  return static_cast< ::vitis::ai::proto::ClassificationParam_PreprocessType >(preprocess_type_);
}
inline void ClassificationParam::set_preprocess_type(::vitis::ai::proto::ClassificationParam_PreprocessType value) {
  assert(::vitis::ai::proto::ClassificationParam_PreprocessType_IsValid(value));
  _has_bits_[0] |= 0x00000020u;
  preprocess_type_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.preprocess_type)
}

// optional string layer_name = 4;
inline bool ClassificationParam::has_layer_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ClassificationParam::clear_layer_name() {
  layer_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& ClassificationParam::layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.layer_name)
  return layer_name_.GetNoArena();
}
inline void ClassificationParam::set_layer_name(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  layer_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.layer_name)
}
inline void ClassificationParam::set_layer_name(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  layer_name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.ClassificationParam.layer_name)
}
inline void ClassificationParam::set_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  layer_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.ClassificationParam.layer_name)
}
inline void ClassificationParam::set_layer_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  layer_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.ClassificationParam.layer_name)
}
inline std::string* ClassificationParam::mutable_layer_name() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.ClassificationParam.layer_name)
  return layer_name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ClassificationParam::release_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.ClassificationParam.layer_name)
  if (!has_layer_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return layer_name_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ClassificationParam::set_allocated_layer_name(std::string* layer_name) {
  if (layer_name != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  layer_name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), layer_name);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.ClassificationParam.layer_name)
}

// optional string label_type = 5;
inline bool ClassificationParam::has_label_type() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ClassificationParam::clear_label_type() {
  label_type_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& ClassificationParam::label_type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.label_type)
  return label_type_.GetNoArena();
}
inline void ClassificationParam::set_label_type(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  label_type_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.label_type)
}
inline void ClassificationParam::set_label_type(std::string&& value) {
  _has_bits_[0] |= 0x00000002u;
  label_type_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.ClassificationParam.label_type)
}
inline void ClassificationParam::set_label_type(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000002u;
  label_type_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.ClassificationParam.label_type)
}
inline void ClassificationParam::set_label_type(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000002u;
  label_type_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.ClassificationParam.label_type)
}
inline std::string* ClassificationParam::mutable_label_type() {
  _has_bits_[0] |= 0x00000002u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.ClassificationParam.label_type)
  return label_type_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ClassificationParam::release_label_type() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.ClassificationParam.label_type)
  if (!has_label_type()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  return label_type_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ClassificationParam::set_allocated_label_type(std::string* label_type) {
  if (label_type != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  label_type_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), label_type);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.ClassificationParam.label_type)
}

// optional .vitis.ai.proto.ClassificationParam.AvgPoolParam avg_pool_param = 6;
inline bool ClassificationParam::has_avg_pool_param() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ClassificationParam::clear_avg_pool_param() {
  if (avg_pool_param_ != nullptr) avg_pool_param_->Clear();
  _has_bits_[0] &= ~0x00000004u;
}
inline const ::vitis::ai::proto::ClassificationParam_AvgPoolParam& ClassificationParam::avg_pool_param() const {
  const ::vitis::ai::proto::ClassificationParam_AvgPoolParam* p = avg_pool_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.avg_pool_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::ClassificationParam_AvgPoolParam*>(
      &::vitis::ai::proto::_ClassificationParam_AvgPoolParam_default_instance_);
}
inline ::vitis::ai::proto::ClassificationParam_AvgPoolParam* ClassificationParam::release_avg_pool_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.ClassificationParam.avg_pool_param)
  _has_bits_[0] &= ~0x00000004u;
  ::vitis::ai::proto::ClassificationParam_AvgPoolParam* temp = avg_pool_param_;
  avg_pool_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::ClassificationParam_AvgPoolParam* ClassificationParam::mutable_avg_pool_param() {
  _has_bits_[0] |= 0x00000004u;
  if (avg_pool_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::ClassificationParam_AvgPoolParam>(GetArenaNoVirtual());
    avg_pool_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.ClassificationParam.avg_pool_param)
  return avg_pool_param_;
}
inline void ClassificationParam::set_allocated_avg_pool_param(::vitis::ai::proto::ClassificationParam_AvgPoolParam* avg_pool_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete avg_pool_param_;
  }
  if (avg_pool_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      avg_pool_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, avg_pool_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  avg_pool_param_ = avg_pool_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.ClassificationParam.avg_pool_param)
}

// -------------------------------------------------------------------

// DenseBoxParam

// optional int32 num_of_classes = 1;
inline bool DenseBoxParam::has_num_of_classes() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void DenseBoxParam::clear_num_of_classes() {
  num_of_classes_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DenseBoxParam::num_of_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DenseBoxParam.num_of_classes)
  return num_of_classes_;
}
inline void DenseBoxParam::set_num_of_classes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  num_of_classes_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DenseBoxParam.num_of_classes)
}

// optional float nms_threshold = 2;
inline bool DenseBoxParam::has_nms_threshold() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void DenseBoxParam::clear_nms_threshold() {
  nms_threshold_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float DenseBoxParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DenseBoxParam.nms_threshold)
  return nms_threshold_;
}
inline void DenseBoxParam::set_nms_threshold(float value) {
  _has_bits_[0] |= 0x00000002u;
  nms_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DenseBoxParam.nms_threshold)
}

// optional float det_threshold = 3;
inline bool DenseBoxParam::has_det_threshold() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void DenseBoxParam::clear_det_threshold() {
  det_threshold_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float DenseBoxParam::det_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DenseBoxParam.det_threshold)
  return det_threshold_;
}
inline void DenseBoxParam::set_det_threshold(float value) {
  _has_bits_[0] |= 0x00000004u;
  det_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DenseBoxParam.det_threshold)
}

// -------------------------------------------------------------------

// MultiTaskParam

// repeated float th_conf = 1;
inline int MultiTaskParam::th_conf_size() const {
  return th_conf_.size();
}
inline void MultiTaskParam::clear_th_conf() {
  th_conf_.Clear();
}
inline float MultiTaskParam::th_conf(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.th_conf)
  return th_conf_.Get(index);
}
inline void MultiTaskParam::set_th_conf(int index, float value) {
  th_conf_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.th_conf)
}
inline void MultiTaskParam::add_th_conf(float value) {
  th_conf_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.th_conf)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
MultiTaskParam::th_conf() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskParam.th_conf)
  return th_conf_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
MultiTaskParam::mutable_th_conf() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskParam.th_conf)
  return &th_conf_;
}

// optional int32 num_of_detection_classes = 2;
inline bool MultiTaskParam::has_num_of_detection_classes() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void MultiTaskParam::clear_num_of_detection_classes() {
  num_of_detection_classes_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MultiTaskParam::num_of_detection_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.num_of_detection_classes)
  return num_of_detection_classes_;
}
inline void MultiTaskParam::set_num_of_detection_classes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  num_of_detection_classes_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.num_of_detection_classes)
}

// optional int32 num_of_segmentation_classes = 3;
inline bool MultiTaskParam::has_num_of_segmentation_classes() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void MultiTaskParam::clear_num_of_segmentation_classes() {
  num_of_segmentation_classes_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MultiTaskParam::num_of_segmentation_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.num_of_segmentation_classes)
  return num_of_segmentation_classes_;
}
inline void MultiTaskParam::set_num_of_segmentation_classes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  num_of_segmentation_classes_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.num_of_segmentation_classes)
}

// optional int32 keep_top_k = 4;
inline bool MultiTaskParam::has_keep_top_k() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void MultiTaskParam::clear_keep_top_k() {
  keep_top_k_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MultiTaskParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.keep_top_k)
  return keep_top_k_;
}
inline void MultiTaskParam::set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  keep_top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.keep_top_k)
}

// optional int32 top_k = 5;
inline bool MultiTaskParam::has_top_k() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void MultiTaskParam::clear_top_k() {
  top_k_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 MultiTaskParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.top_k)
  return top_k_;
}
inline void MultiTaskParam::set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000010u;
  top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.top_k)
}

// optional float nms_threshold = 6;
inline bool MultiTaskParam::has_nms_threshold() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void MultiTaskParam::clear_nms_threshold() {
  nms_threshold_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline float MultiTaskParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.nms_threshold)
  return nms_threshold_;
}
inline void MultiTaskParam::set_nms_threshold(float value) {
  _has_bits_[0] |= 0x00000020u;
  nms_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.nms_threshold)
}

// repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 7;
inline int MultiTaskParam::prior_box_param_size() const {
  return prior_box_param_.size();
}
inline void MultiTaskParam::clear_prior_box_param() {
  prior_box_param_.Clear();
}
inline ::vitis::ai::proto::PriorBoxParam* MultiTaskParam::mutable_prior_box_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.prior_box_param)
  return prior_box_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
MultiTaskParam::mutable_prior_box_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskParam.prior_box_param)
  return &prior_box_param_;
}
inline const ::vitis::ai::proto::PriorBoxParam& MultiTaskParam::prior_box_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.prior_box_param)
  return prior_box_param_.Get(index);
}
inline ::vitis::ai::proto::PriorBoxParam* MultiTaskParam::add_prior_box_param() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.prior_box_param)
  return prior_box_param_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
MultiTaskParam::prior_box_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskParam.prior_box_param)
  return prior_box_param_;
}

// repeated string loc_name = 8;
inline int MultiTaskParam::loc_name_size() const {
  return loc_name_.size();
}
inline void MultiTaskParam::clear_loc_name() {
  loc_name_.Clear();
}
inline const std::string& MultiTaskParam::loc_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.loc_name)
  return loc_name_.Get(index);
}
inline std::string* MultiTaskParam::mutable_loc_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.loc_name)
  return loc_name_.Mutable(index);
}
inline void MultiTaskParam::set_loc_name(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.loc_name)
  loc_name_.Mutable(index)->assign(value);
}
inline void MultiTaskParam::set_loc_name(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.loc_name)
  loc_name_.Mutable(index)->assign(std::move(value));
}
inline void MultiTaskParam::set_loc_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  loc_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline void MultiTaskParam::set_loc_name(int index, const char* value, size_t size) {
  loc_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline std::string* MultiTaskParam::add_loc_name() {
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.MultiTaskParam.loc_name)
  return loc_name_.Add();
}
inline void MultiTaskParam::add_loc_name(const std::string& value) {
  loc_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline void MultiTaskParam::add_loc_name(std::string&& value) {
  loc_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline void MultiTaskParam::add_loc_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  loc_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline void MultiTaskParam::add_loc_name(const char* value, size_t size) {
  loc_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
MultiTaskParam::loc_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskParam.loc_name)
  return loc_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
MultiTaskParam::mutable_loc_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskParam.loc_name)
  return &loc_name_;
}

// repeated string conf_name = 9;
inline int MultiTaskParam::conf_name_size() const {
  return conf_name_.size();
}
inline void MultiTaskParam::clear_conf_name() {
  conf_name_.Clear();
}
inline const std::string& MultiTaskParam::conf_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.conf_name)
  return conf_name_.Get(index);
}
inline std::string* MultiTaskParam::mutable_conf_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.conf_name)
  return conf_name_.Mutable(index);
}
inline void MultiTaskParam::set_conf_name(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.conf_name)
  conf_name_.Mutable(index)->assign(value);
}
inline void MultiTaskParam::set_conf_name(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.conf_name)
  conf_name_.Mutable(index)->assign(std::move(value));
}
inline void MultiTaskParam::set_conf_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  conf_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline void MultiTaskParam::set_conf_name(int index, const char* value, size_t size) {
  conf_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline std::string* MultiTaskParam::add_conf_name() {
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.MultiTaskParam.conf_name)
  return conf_name_.Add();
}
inline void MultiTaskParam::add_conf_name(const std::string& value) {
  conf_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline void MultiTaskParam::add_conf_name(std::string&& value) {
  conf_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline void MultiTaskParam::add_conf_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  conf_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline void MultiTaskParam::add_conf_name(const char* value, size_t size) {
  conf_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
MultiTaskParam::conf_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskParam.conf_name)
  return conf_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
MultiTaskParam::mutable_conf_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskParam.conf_name)
  return &conf_name_;
}

// optional string seg_name = 10;
inline bool MultiTaskParam::has_seg_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MultiTaskParam::clear_seg_name() {
  seg_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& MultiTaskParam::seg_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.seg_name)
  return seg_name_.GetNoArena();
}
inline void MultiTaskParam::set_seg_name(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  seg_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.seg_name)
}
inline void MultiTaskParam::set_seg_name(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  seg_name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.MultiTaskParam.seg_name)
}
inline void MultiTaskParam::set_seg_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  seg_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.MultiTaskParam.seg_name)
}
inline void MultiTaskParam::set_seg_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  seg_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.MultiTaskParam.seg_name)
}
inline std::string* MultiTaskParam::mutable_seg_name() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.seg_name)
  return seg_name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* MultiTaskParam::release_seg_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.MultiTaskParam.seg_name)
  if (!has_seg_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return seg_name_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void MultiTaskParam::set_allocated_seg_name(std::string* seg_name) {
  if (seg_name != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  seg_name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), seg_name);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.MultiTaskParam.seg_name)
}

// -------------------------------------------------------------------

// RoadlineParam

// optional int32 ratio = 1;
inline bool RoadlineParam::has_ratio() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RoadlineParam::clear_ratio() {
  ratio_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RoadlineParam::ratio() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ratio)
  return ratio_;
}
inline void RoadlineParam::set_ratio(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  ratio_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ratio)
}

// optional float ipm_width = 2;
inline bool RoadlineParam::has_ipm_width() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RoadlineParam::clear_ipm_width() {
  ipm_width_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float RoadlineParam::ipm_width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_width)
  return ipm_width_;
}
inline void RoadlineParam::set_ipm_width(float value) {
  _has_bits_[0] |= 0x00000002u;
  ipm_width_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_width)
}

// optional float ipm_height = 3;
inline bool RoadlineParam::has_ipm_height() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RoadlineParam::clear_ipm_height() {
  ipm_height_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float RoadlineParam::ipm_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_height)
  return ipm_height_;
}
inline void RoadlineParam::set_ipm_height(float value) {
  _has_bits_[0] |= 0x00000004u;
  ipm_height_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_height)
}

// optional float ipm_left = 4;
inline bool RoadlineParam::has_ipm_left() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void RoadlineParam::clear_ipm_left() {
  ipm_left_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float RoadlineParam::ipm_left() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_left)
  return ipm_left_;
}
inline void RoadlineParam::set_ipm_left(float value) {
  _has_bits_[0] |= 0x00000008u;
  ipm_left_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_left)
}

// optional float ipm_right = 5;
inline bool RoadlineParam::has_ipm_right() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void RoadlineParam::clear_ipm_right() {
  ipm_right_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline float RoadlineParam::ipm_right() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_right)
  return ipm_right_;
}
inline void RoadlineParam::set_ipm_right(float value) {
  _has_bits_[0] |= 0x00000010u;
  ipm_right_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_right)
}

// optional float ipm_top = 6;
inline bool RoadlineParam::has_ipm_top() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void RoadlineParam::clear_ipm_top() {
  ipm_top_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline float RoadlineParam::ipm_top() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_top)
  return ipm_top_;
}
inline void RoadlineParam::set_ipm_top(float value) {
  _has_bits_[0] |= 0x00000020u;
  ipm_top_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_top)
}

// optional float ipm_bottom = 7;
inline bool RoadlineParam::has_ipm_bottom() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void RoadlineParam::clear_ipm_bottom() {
  ipm_bottom_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline float RoadlineParam::ipm_bottom() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_bottom)
  return ipm_bottom_;
}
inline void RoadlineParam::set_ipm_bottom(float value) {
  _has_bits_[0] |= 0x00000040u;
  ipm_bottom_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_bottom)
}

// optional float ipm_interpolation = 8;
inline bool RoadlineParam::has_ipm_interpolation() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void RoadlineParam::clear_ipm_interpolation() {
  ipm_interpolation_ = 0;
  _has_bits_[0] &= ~0x00000080u;
}
inline float RoadlineParam::ipm_interpolation() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_interpolation)
  return ipm_interpolation_;
}
inline void RoadlineParam::set_ipm_interpolation(float value) {
  _has_bits_[0] |= 0x00000080u;
  ipm_interpolation_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_interpolation)
}

// optional float ipm_vp_portion = 9;
inline bool RoadlineParam::has_ipm_vp_portion() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void RoadlineParam::clear_ipm_vp_portion() {
  ipm_vp_portion_ = 0;
  _has_bits_[0] &= ~0x00000100u;
}
inline float RoadlineParam::ipm_vp_portion() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_vp_portion)
  return ipm_vp_portion_;
}
inline void RoadlineParam::set_ipm_vp_portion(float value) {
  _has_bits_[0] |= 0x00000100u;
  ipm_vp_portion_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_vp_portion)
}

// optional float focal_length_x = 10;
inline bool RoadlineParam::has_focal_length_x() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void RoadlineParam::clear_focal_length_x() {
  focal_length_x_ = 0;
  _has_bits_[0] &= ~0x00000200u;
}
inline float RoadlineParam::focal_length_x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.focal_length_x)
  return focal_length_x_;
}
inline void RoadlineParam::set_focal_length_x(float value) {
  _has_bits_[0] |= 0x00000200u;
  focal_length_x_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.focal_length_x)
}

// optional float focal_length_y = 11;
inline bool RoadlineParam::has_focal_length_y() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void RoadlineParam::clear_focal_length_y() {
  focal_length_y_ = 0;
  _has_bits_[0] &= ~0x00000400u;
}
inline float RoadlineParam::focal_length_y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.focal_length_y)
  return focal_length_y_;
}
inline void RoadlineParam::set_focal_length_y(float value) {
  _has_bits_[0] |= 0x00000400u;
  focal_length_y_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.focal_length_y)
}

// optional float optical_center_x = 12;
inline bool RoadlineParam::has_optical_center_x() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void RoadlineParam::clear_optical_center_x() {
  optical_center_x_ = 0;
  _has_bits_[0] &= ~0x00000800u;
}
inline float RoadlineParam::optical_center_x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.optical_center_x)
  return optical_center_x_;
}
inline void RoadlineParam::set_optical_center_x(float value) {
  _has_bits_[0] |= 0x00000800u;
  optical_center_x_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.optical_center_x)
}

// optional float optical_center_y = 13;
inline bool RoadlineParam::has_optical_center_y() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void RoadlineParam::clear_optical_center_y() {
  optical_center_y_ = 0;
  _has_bits_[0] &= ~0x00001000u;
}
inline float RoadlineParam::optical_center_y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.optical_center_y)
  return optical_center_y_;
}
inline void RoadlineParam::set_optical_center_y(float value) {
  _has_bits_[0] |= 0x00001000u;
  optical_center_y_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.optical_center_y)
}

// optional float camera_height = 14;
inline bool RoadlineParam::has_camera_height() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void RoadlineParam::clear_camera_height() {
  camera_height_ = 0;
  _has_bits_[0] &= ~0x00002000u;
}
inline float RoadlineParam::camera_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.camera_height)
  return camera_height_;
}
inline void RoadlineParam::set_camera_height(float value) {
  _has_bits_[0] |= 0x00002000u;
  camera_height_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.camera_height)
}

// optional float pitch = 15;
inline bool RoadlineParam::has_pitch() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void RoadlineParam::clear_pitch() {
  pitch_ = 0;
  _has_bits_[0] &= ~0x00004000u;
}
inline float RoadlineParam::pitch() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.pitch)
  return pitch_;
}
inline void RoadlineParam::set_pitch(float value) {
  _has_bits_[0] |= 0x00004000u;
  pitch_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.pitch)
}

// optional float yaw = 16;
inline bool RoadlineParam::has_yaw() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void RoadlineParam::clear_yaw() {
  yaw_ = 0;
  _has_bits_[0] &= ~0x00008000u;
}
inline float RoadlineParam::yaw() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.yaw)
  return yaw_;
}
inline void RoadlineParam::set_yaw(float value) {
  _has_bits_[0] |= 0x00008000u;
  yaw_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.yaw)
}

// repeated string layer_name = 17;
inline int RoadlineParam::layer_name_size() const {
  return layer_name_.size();
}
inline void RoadlineParam::clear_layer_name() {
  layer_name_.Clear();
}
inline const std::string& RoadlineParam::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.layer_name)
  return layer_name_.Get(index);
}
inline std::string* RoadlineParam::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RoadlineParam.layer_name)
  return layer_name_.Mutable(index);
}
inline void RoadlineParam::set_layer_name(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.layer_name)
  layer_name_.Mutable(index)->assign(value);
}
inline void RoadlineParam::set_layer_name(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.layer_name)
  layer_name_.Mutable(index)->assign(std::move(value));
}
inline void RoadlineParam::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.RoadlineParam.layer_name)
}
inline void RoadlineParam::set_layer_name(int index, const char* value, size_t size) {
  layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.RoadlineParam.layer_name)
}
inline std::string* RoadlineParam::add_layer_name() {
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.RoadlineParam.layer_name)
  return layer_name_.Add();
}
inline void RoadlineParam::add_layer_name(const std::string& value) {
  layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RoadlineParam.layer_name)
}
inline void RoadlineParam::add_layer_name(std::string&& value) {
  layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RoadlineParam.layer_name)
}
inline void RoadlineParam::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.RoadlineParam.layer_name)
}
inline void RoadlineParam::add_layer_name(const char* value, size_t size) {
  layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.RoadlineParam.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
RoadlineParam::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RoadlineParam.layer_name)
  return layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
RoadlineParam::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RoadlineParam.layer_name)
  return &layer_name_;
}

// -------------------------------------------------------------------

// RoadlineDeephiParam

// optional int32 resize_w = 1;
inline bool RoadlineDeephiParam::has_resize_w() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RoadlineDeephiParam::clear_resize_w() {
  resize_w_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RoadlineDeephiParam::resize_w() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.resize_w)
  return resize_w_;
}
inline void RoadlineDeephiParam::set_resize_w(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  resize_w_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.resize_w)
}

// optional int32 resize_h = 2;
inline bool RoadlineDeephiParam::has_resize_h() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RoadlineDeephiParam::clear_resize_h() {
  resize_h_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RoadlineDeephiParam::resize_h() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.resize_h)
  return resize_h_;
}
inline void RoadlineDeephiParam::set_resize_h(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  resize_h_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.resize_h)
}

// optional int32 crop_x = 3;
inline bool RoadlineDeephiParam::has_crop_x() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RoadlineDeephiParam::clear_crop_x() {
  crop_x_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RoadlineDeephiParam::crop_x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.crop_x)
  return crop_x_;
}
inline void RoadlineDeephiParam::set_crop_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  crop_x_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.crop_x)
}

// optional int32 crop_y = 4;
inline bool RoadlineDeephiParam::has_crop_y() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void RoadlineDeephiParam::clear_crop_y() {
  crop_y_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RoadlineDeephiParam::crop_y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.crop_y)
  return crop_y_;
}
inline void RoadlineDeephiParam::set_crop_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  crop_y_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.crop_y)
}

// optional int32 crop_w = 5;
inline bool RoadlineDeephiParam::has_crop_w() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void RoadlineDeephiParam::clear_crop_w() {
  crop_w_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RoadlineDeephiParam::crop_w() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.crop_w)
  return crop_w_;
}
inline void RoadlineDeephiParam::set_crop_w(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000010u;
  crop_w_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.crop_w)
}

// optional int32 crop_h = 6;
inline bool RoadlineDeephiParam::has_crop_h() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void RoadlineDeephiParam::clear_crop_h() {
  crop_h_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RoadlineDeephiParam::crop_h() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.crop_h)
  return crop_h_;
}
inline void RoadlineDeephiParam::set_crop_h(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000020u;
  crop_h_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.crop_h)
}

// optional int32 area_threshold = 7;
inline bool RoadlineDeephiParam::has_area_threshold() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void RoadlineDeephiParam::clear_area_threshold() {
  area_threshold_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RoadlineDeephiParam::area_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.area_threshold)
  return area_threshold_;
}
inline void RoadlineDeephiParam::set_area_threshold(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000040u;
  area_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.area_threshold)
}

// optional int32 epow = 8;
inline bool RoadlineDeephiParam::has_epow() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void RoadlineDeephiParam::clear_epow() {
  epow_ = 0;
  _has_bits_[0] &= ~0x00000080u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RoadlineDeephiParam::epow() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.epow)
  return epow_;
}
inline void RoadlineDeephiParam::set_epow(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000080u;
  epow_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.epow)
}

// -------------------------------------------------------------------

// SegmentationParam

// optional string color1 = 1;
inline bool SegmentationParam::has_color1() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SegmentationParam::clear_color1() {
  color1_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& SegmentationParam::color1() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegmentationParam.color1)
  return color1_.GetNoArena();
}
inline void SegmentationParam::set_color1(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  color1_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegmentationParam.color1)
}
inline void SegmentationParam::set_color1(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  color1_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.SegmentationParam.color1)
}
inline void SegmentationParam::set_color1(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  color1_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.SegmentationParam.color1)
}
inline void SegmentationParam::set_color1(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  color1_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.SegmentationParam.color1)
}
inline std::string* SegmentationParam::mutable_color1() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SegmentationParam.color1)
  return color1_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* SegmentationParam::release_color1() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SegmentationParam.color1)
  if (!has_color1()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return color1_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void SegmentationParam::set_allocated_color1(std::string* color1) {
  if (color1 != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  color1_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), color1);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SegmentationParam.color1)
}

// optional string color2 = 2;
inline bool SegmentationParam::has_color2() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SegmentationParam::clear_color2() {
  color2_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& SegmentationParam::color2() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegmentationParam.color2)
  return color2_.GetNoArena();
}
inline void SegmentationParam::set_color2(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  color2_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegmentationParam.color2)
}
inline void SegmentationParam::set_color2(std::string&& value) {
  _has_bits_[0] |= 0x00000002u;
  color2_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.SegmentationParam.color2)
}
inline void SegmentationParam::set_color2(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000002u;
  color2_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.SegmentationParam.color2)
}
inline void SegmentationParam::set_color2(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000002u;
  color2_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.SegmentationParam.color2)
}
inline std::string* SegmentationParam::mutable_color2() {
  _has_bits_[0] |= 0x00000002u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SegmentationParam.color2)
  return color2_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* SegmentationParam::release_color2() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SegmentationParam.color2)
  if (!has_color2()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  return color2_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void SegmentationParam::set_allocated_color2(std::string* color2) {
  if (color2 != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  color2_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), color2);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SegmentationParam.color2)
}

// optional string color3 = 3;
inline bool SegmentationParam::has_color3() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SegmentationParam::clear_color3() {
  color3_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000004u;
}
inline const std::string& SegmentationParam::color3() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegmentationParam.color3)
  return color3_.GetNoArena();
}
inline void SegmentationParam::set_color3(const std::string& value) {
  _has_bits_[0] |= 0x00000004u;
  color3_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegmentationParam.color3)
}
inline void SegmentationParam::set_color3(std::string&& value) {
  _has_bits_[0] |= 0x00000004u;
  color3_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.SegmentationParam.color3)
}
inline void SegmentationParam::set_color3(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000004u;
  color3_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.SegmentationParam.color3)
}
inline void SegmentationParam::set_color3(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000004u;
  color3_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.SegmentationParam.color3)
}
inline std::string* SegmentationParam::mutable_color3() {
  _has_bits_[0] |= 0x00000004u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SegmentationParam.color3)
  return color3_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* SegmentationParam::release_color3() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SegmentationParam.color3)
  if (!has_color3()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000004u;
  return color3_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void SegmentationParam::set_allocated_color3(std::string* color3) {
  if (color3 != nullptr) {
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  color3_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), color3);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SegmentationParam.color3)
}

// -------------------------------------------------------------------

// PlatenumParam

// repeated int32 first = 1;
inline int PlatenumParam::first_size() const {
  return first_.size();
}
inline void PlatenumParam::clear_first() {
  first_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PlatenumParam::first(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlatenumParam.first)
  return first_.Get(index);
}
inline void PlatenumParam::set_first(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  first_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlatenumParam.first)
}
inline void PlatenumParam::add_first(::PROTOBUF_NAMESPACE_ID::int32 value) {
  first_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PlatenumParam.first)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
PlatenumParam::first() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PlatenumParam.first)
  return first_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
PlatenumParam::mutable_first() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PlatenumParam.first)
  return &first_;
}

// repeated int32 second = 2;
inline int PlatenumParam::second_size() const {
  return second_.size();
}
inline void PlatenumParam::clear_second() {
  second_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PlatenumParam::second(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlatenumParam.second)
  return second_.Get(index);
}
inline void PlatenumParam::set_second(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  second_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlatenumParam.second)
}
inline void PlatenumParam::add_second(::PROTOBUF_NAMESPACE_ID::int32 value) {
  second_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PlatenumParam.second)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
PlatenumParam::second() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PlatenumParam.second)
  return second_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
PlatenumParam::mutable_second() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PlatenumParam.second)
  return &second_;
}

// repeated string output_tensor_name = 3;
inline int PlatenumParam::output_tensor_name_size() const {
  return output_tensor_name_.size();
}
inline void PlatenumParam::clear_output_tensor_name() {
  output_tensor_name_.Clear();
}
inline const std::string& PlatenumParam::output_tensor_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlatenumParam.output_tensor_name)
  return output_tensor_name_.Get(index);
}
inline std::string* PlatenumParam::mutable_output_tensor_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlatenumParam.output_tensor_name)
  return output_tensor_name_.Mutable(index);
}
inline void PlatenumParam::set_output_tensor_name(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlatenumParam.output_tensor_name)
  output_tensor_name_.Mutable(index)->assign(value);
}
inline void PlatenumParam::set_output_tensor_name(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlatenumParam.output_tensor_name)
  output_tensor_name_.Mutable(index)->assign(std::move(value));
}
inline void PlatenumParam::set_output_tensor_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  output_tensor_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline void PlatenumParam::set_output_tensor_name(int index, const char* value, size_t size) {
  output_tensor_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline std::string* PlatenumParam::add_output_tensor_name() {
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.PlatenumParam.output_tensor_name)
  return output_tensor_name_.Add();
}
inline void PlatenumParam::add_output_tensor_name(const std::string& value) {
  output_tensor_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline void PlatenumParam::add_output_tensor_name(std::string&& value) {
  output_tensor_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline void PlatenumParam::add_output_tensor_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  output_tensor_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline void PlatenumParam::add_output_tensor_name(const char* value, size_t size) {
  output_tensor_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
PlatenumParam::output_tensor_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PlatenumParam.output_tensor_name)
  return output_tensor_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
PlatenumParam::mutable_output_tensor_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PlatenumParam.output_tensor_name)
  return &output_tensor_name_;
}

// -------------------------------------------------------------------

// LaneParam

// optional int32 roi_x = 1;
inline bool LaneParam::has_roi_x() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void LaneParam::clear_roi_x() {
  roi_x_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 LaneParam::roi_x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LaneParam.roi_x)
  return roi_x_;
}
inline void LaneParam::set_roi_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  roi_x_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LaneParam.roi_x)
}

// optional int32 roi_y = 2;
inline bool LaneParam::has_roi_y() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void LaneParam::clear_roi_y() {
  roi_y_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 LaneParam::roi_y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LaneParam.roi_y)
  return roi_y_;
}
inline void LaneParam::set_roi_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  roi_y_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LaneParam.roi_y)
}

// optional int32 expect_height = 3;
inline bool LaneParam::has_expect_height() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void LaneParam::clear_expect_height() {
  expect_height_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 LaneParam::expect_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LaneParam.expect_height)
  return expect_height_;
}
inline void LaneParam::set_expect_height(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  expect_height_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LaneParam.expect_height)
}

// -------------------------------------------------------------------

// BlinkerParam

// repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
inline int BlinkerParam::prior_box_param_size() const {
  return prior_box_param_.size();
}
inline void BlinkerParam::clear_prior_box_param() {
  prior_box_param_.Clear();
}
inline ::vitis::ai::proto::PriorBoxParam* BlinkerParam::mutable_prior_box_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.BlinkerParam.prior_box_param)
  return prior_box_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
BlinkerParam::mutable_prior_box_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.BlinkerParam.prior_box_param)
  return &prior_box_param_;
}
inline const ::vitis::ai::proto::PriorBoxParam& BlinkerParam::prior_box_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.prior_box_param)
  return prior_box_param_.Get(index);
}
inline ::vitis::ai::proto::PriorBoxParam* BlinkerParam::add_prior_box_param() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.BlinkerParam.prior_box_param)
  return prior_box_param_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
BlinkerParam::prior_box_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.BlinkerParam.prior_box_param)
  return prior_box_param_;
}

// optional int32 num_classes = 2;
inline bool BlinkerParam::has_num_classes() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void BlinkerParam::clear_num_classes() {
  num_classes_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 BlinkerParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.num_classes)
  return num_classes_;
}
inline void BlinkerParam::set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  num_classes_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BlinkerParam.num_classes)
}

// optional float nms_threshold = 3;
inline bool BlinkerParam::has_nms_threshold() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void BlinkerParam::clear_nms_threshold() {
  nms_threshold_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float BlinkerParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.nms_threshold)
  return nms_threshold_;
}
inline void BlinkerParam::set_nms_threshold(float value) {
  _has_bits_[0] |= 0x00000002u;
  nms_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BlinkerParam.nms_threshold)
}

// repeated float conf_threshold = 4;
inline int BlinkerParam::conf_threshold_size() const {
  return conf_threshold_.size();
}
inline void BlinkerParam::clear_conf_threshold() {
  conf_threshold_.Clear();
}
inline float BlinkerParam::conf_threshold(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.conf_threshold)
  return conf_threshold_.Get(index);
}
inline void BlinkerParam::set_conf_threshold(int index, float value) {
  conf_threshold_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BlinkerParam.conf_threshold)
}
inline void BlinkerParam::add_conf_threshold(float value) {
  conf_threshold_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.BlinkerParam.conf_threshold)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
BlinkerParam::conf_threshold() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.BlinkerParam.conf_threshold)
  return conf_threshold_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
BlinkerParam::mutable_conf_threshold() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.BlinkerParam.conf_threshold)
  return &conf_threshold_;
}

// optional int32 keep_top_k = 5;
inline bool BlinkerParam::has_keep_top_k() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void BlinkerParam::clear_keep_top_k() {
  keep_top_k_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 BlinkerParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.keep_top_k)
  return keep_top_k_;
}
inline void BlinkerParam::set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  keep_top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BlinkerParam.keep_top_k)
}

// optional int32 top_k = 6;
inline bool BlinkerParam::has_top_k() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void BlinkerParam::clear_top_k() {
  top_k_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 BlinkerParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.top_k)
  return top_k_;
}
inline void BlinkerParam::set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BlinkerParam.top_k)
}

// -------------------------------------------------------------------

// SegdetParam

// repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
inline int SegdetParam::prior_box_param_size() const {
  return prior_box_param_.size();
}
inline void SegdetParam::clear_prior_box_param() {
  prior_box_param_.Clear();
}
inline ::vitis::ai::proto::PriorBoxParam* SegdetParam::mutable_prior_box_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SegdetParam.prior_box_param)
  return prior_box_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
SegdetParam::mutable_prior_box_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SegdetParam.prior_box_param)
  return &prior_box_param_;
}
inline const ::vitis::ai::proto::PriorBoxParam& SegdetParam::prior_box_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.prior_box_param)
  return prior_box_param_.Get(index);
}
inline ::vitis::ai::proto::PriorBoxParam* SegdetParam::add_prior_box_param() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SegdetParam.prior_box_param)
  return prior_box_param_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
SegdetParam::prior_box_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SegdetParam.prior_box_param)
  return prior_box_param_;
}

// optional int32 num_classes = 2;
inline bool SegdetParam::has_num_classes() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SegdetParam::clear_num_classes() {
  num_classes_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SegdetParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.num_classes)
  return num_classes_;
}
inline void SegdetParam::set_num_classes(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  num_classes_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegdetParam.num_classes)
}

// optional float nms_threshold = 3;
inline bool SegdetParam::has_nms_threshold() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SegdetParam::clear_nms_threshold() {
  nms_threshold_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float SegdetParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.nms_threshold)
  return nms_threshold_;
}
inline void SegdetParam::set_nms_threshold(float value) {
  _has_bits_[0] |= 0x00000002u;
  nms_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegdetParam.nms_threshold)
}

// repeated float conf_threshold = 4;
inline int SegdetParam::conf_threshold_size() const {
  return conf_threshold_.size();
}
inline void SegdetParam::clear_conf_threshold() {
  conf_threshold_.Clear();
}
inline float SegdetParam::conf_threshold(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.conf_threshold)
  return conf_threshold_.Get(index);
}
inline void SegdetParam::set_conf_threshold(int index, float value) {
  conf_threshold_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegdetParam.conf_threshold)
}
inline void SegdetParam::add_conf_threshold(float value) {
  conf_threshold_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SegdetParam.conf_threshold)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SegdetParam::conf_threshold() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SegdetParam.conf_threshold)
  return conf_threshold_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SegdetParam::mutable_conf_threshold() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SegdetParam.conf_threshold)
  return &conf_threshold_;
}

// optional int32 keep_top_k = 5;
inline bool SegdetParam::has_keep_top_k() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SegdetParam::clear_keep_top_k() {
  keep_top_k_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SegdetParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.keep_top_k)
  return keep_top_k_;
}
inline void SegdetParam::set_keep_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  keep_top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegdetParam.keep_top_k)
}

// optional int32 top_k = 6;
inline bool SegdetParam::has_top_k() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SegdetParam::clear_top_k() {
  top_k_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SegdetParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.top_k)
  return top_k_;
}
inline void SegdetParam::set_top_k(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  top_k_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegdetParam.top_k)
}

// -------------------------------------------------------------------

// FaceQuality5ptParam

// optional bool use_day_night_mode = 1;
inline bool FaceQuality5ptParam::has_use_day_night_mode() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void FaceQuality5ptParam::clear_use_day_night_mode() {
  use_day_night_mode_ = false;
  _has_bits_[0] &= ~0x00000004u;
}
inline bool FaceQuality5ptParam::use_day_night_mode() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceQuality5ptParam.use_day_night_mode)
  return use_day_night_mode_;
}
inline void FaceQuality5ptParam::set_use_day_night_mode(bool value) {
  _has_bits_[0] |= 0x00000004u;
  use_day_night_mode_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceQuality5ptParam.use_day_night_mode)
}

// optional bool original_quality = 2;
inline bool FaceQuality5ptParam::has_original_quality() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void FaceQuality5ptParam::clear_original_quality() {
  original_quality_ = false;
  _has_bits_[0] &= ~0x00000008u;
}
inline bool FaceQuality5ptParam::original_quality() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceQuality5ptParam.original_quality)
  return original_quality_;
}
inline void FaceQuality5ptParam::set_original_quality(bool value) {
  _has_bits_[0] |= 0x00000008u;
  original_quality_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceQuality5ptParam.original_quality)
}

// optional string quality_layer_name = 3;
inline bool FaceQuality5ptParam::has_quality_layer_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void FaceQuality5ptParam::clear_quality_layer_name() {
  quality_layer_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& FaceQuality5ptParam::quality_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
  return quality_layer_name_.GetNoArena();
}
inline void FaceQuality5ptParam::set_quality_layer_name(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  quality_layer_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
}
inline void FaceQuality5ptParam::set_quality_layer_name(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  quality_layer_name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
}
inline void FaceQuality5ptParam::set_quality_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  quality_layer_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
}
inline void FaceQuality5ptParam::set_quality_layer_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  quality_layer_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
}
inline std::string* FaceQuality5ptParam::mutable_quality_layer_name() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
  return quality_layer_name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* FaceQuality5ptParam::release_quality_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
  if (!has_quality_layer_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return quality_layer_name_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void FaceQuality5ptParam::set_allocated_quality_layer_name(std::string* quality_layer_name) {
  if (quality_layer_name != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  quality_layer_name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), quality_layer_name);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
}

// optional string point_layer_name = 4;
inline bool FaceQuality5ptParam::has_point_layer_name() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void FaceQuality5ptParam::clear_point_layer_name() {
  point_layer_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& FaceQuality5ptParam::point_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
  return point_layer_name_.GetNoArena();
}
inline void FaceQuality5ptParam::set_point_layer_name(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  point_layer_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
}
inline void FaceQuality5ptParam::set_point_layer_name(std::string&& value) {
  _has_bits_[0] |= 0x00000002u;
  point_layer_name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
}
inline void FaceQuality5ptParam::set_point_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000002u;
  point_layer_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
}
inline void FaceQuality5ptParam::set_point_layer_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000002u;
  point_layer_name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
}
inline std::string* FaceQuality5ptParam::mutable_point_layer_name() {
  _has_bits_[0] |= 0x00000002u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
  return point_layer_name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* FaceQuality5ptParam::release_point_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
  if (!has_point_layer_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  return point_layer_name_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void FaceQuality5ptParam::set_allocated_point_layer_name(std::string* point_layer_name) {
  if (point_layer_name != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  point_layer_name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), point_layer_name);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
}

// -------------------------------------------------------------------

// RetinaFaceParam_OutputAnchorInfo

// optional .vitis.ai.proto.RetinaFaceParam.AnchorType type = 1;
inline bool RetinaFaceParam_OutputAnchorInfo::has_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RetinaFaceParam_OutputAnchorInfo::clear_type() {
  type_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::vitis::ai::proto::RetinaFaceParam_AnchorType RetinaFaceParam_OutputAnchorInfo::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo.type)
  return static_cast< ::vitis::ai::proto::RetinaFaceParam_AnchorType >(type_);
}
inline void RetinaFaceParam_OutputAnchorInfo::set_type(::vitis::ai::proto::RetinaFaceParam_AnchorType value) {
  assert(::vitis::ai::proto::RetinaFaceParam_AnchorType_IsValid(value));
  _has_bits_[0] |= 0x00000001u;
  type_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo.type)
}

// optional int32 index = 2;
inline bool RetinaFaceParam_OutputAnchorInfo::has_index() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RetinaFaceParam_OutputAnchorInfo::clear_index() {
  index_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RetinaFaceParam_OutputAnchorInfo::index() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo.index)
  return index_;
}
inline void RetinaFaceParam_OutputAnchorInfo::set_index(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  index_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo.index)
}

// -------------------------------------------------------------------

// RetinaFaceParam_OutputInfo

// optional .vitis.ai.proto.RetinaFaceParam.OutputType type = 1;
inline bool RetinaFaceParam_OutputInfo::has_type() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RetinaFaceParam_OutputInfo::clear_type() {
  type_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputType RetinaFaceParam_OutputInfo::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputInfo.type)
  return static_cast< ::vitis::ai::proto::RetinaFaceParam_OutputType >(type_);
}
inline void RetinaFaceParam_OutputInfo::set_type(::vitis::ai::proto::RetinaFaceParam_OutputType value) {
  assert(::vitis::ai::proto::RetinaFaceParam_OutputType_IsValid(value));
  _has_bits_[0] |= 0x00000004u;
  type_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.OutputInfo.type)
}

// optional int32 stride = 2;
inline bool RetinaFaceParam_OutputInfo::has_stride() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void RetinaFaceParam_OutputInfo::clear_stride() {
  stride_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RetinaFaceParam_OutputInfo::stride() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputInfo.stride)
  return stride_;
}
inline void RetinaFaceParam_OutputInfo::set_stride(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  stride_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.OutputInfo.stride)
}

// optional string name = 3;
inline bool RetinaFaceParam_OutputInfo::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RetinaFaceParam_OutputInfo::clear_name() {
  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& RetinaFaceParam_OutputInfo::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
  return name_.GetNoArena();
}
inline void RetinaFaceParam_OutputInfo::set_name(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
}
inline void RetinaFaceParam_OutputInfo::set_name(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
}
inline void RetinaFaceParam_OutputInfo::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
}
inline void RetinaFaceParam_OutputInfo::set_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
}
inline std::string* RetinaFaceParam_OutputInfo::mutable_name() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
  return name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* RetinaFaceParam_OutputInfo::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
  if (!has_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return name_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void RetinaFaceParam_OutputInfo::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
}

// optional .vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo output_anchor_info = 4;
inline bool RetinaFaceParam_OutputInfo::has_output_anchor_info() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RetinaFaceParam_OutputInfo::clear_output_anchor_info() {
  if (output_anchor_info_ != nullptr) output_anchor_info_->Clear();
  _has_bits_[0] &= ~0x00000002u;
}
inline const ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo& RetinaFaceParam_OutputInfo::output_anchor_info() const {
  const ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* p = output_anchor_info_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputInfo.output_anchor_info)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo*>(
      &::vitis::ai::proto::_RetinaFaceParam_OutputAnchorInfo_default_instance_);
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* RetinaFaceParam_OutputInfo::release_output_anchor_info() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.RetinaFaceParam.OutputInfo.output_anchor_info)
  _has_bits_[0] &= ~0x00000002u;
  ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* temp = output_anchor_info_;
  output_anchor_info_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* RetinaFaceParam_OutputInfo::mutable_output_anchor_info() {
  _has_bits_[0] |= 0x00000002u;
  if (output_anchor_info_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo>(GetArenaNoVirtual());
    output_anchor_info_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RetinaFaceParam.OutputInfo.output_anchor_info)
  return output_anchor_info_;
}
inline void RetinaFaceParam_OutputInfo::set_allocated_output_anchor_info(::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* output_anchor_info) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete output_anchor_info_;
  }
  if (output_anchor_info) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      output_anchor_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, output_anchor_info, submessage_arena);
    }
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  output_anchor_info_ = output_anchor_info;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.RetinaFaceParam.OutputInfo.output_anchor_info)
}

// -------------------------------------------------------------------

// RetinaFaceParam_AnchorParam

// optional int32 stride = 1;
inline bool RetinaFaceParam_AnchorParam::has_stride() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RetinaFaceParam_AnchorParam::clear_stride() {
  stride_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RetinaFaceParam_AnchorParam::stride() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.AnchorParam.stride)
  return stride_;
}
inline void RetinaFaceParam_AnchorParam::set_stride(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  stride_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.AnchorParam.stride)
}

// optional int32 base_size = 2;
inline bool RetinaFaceParam_AnchorParam::has_base_size() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RetinaFaceParam_AnchorParam::clear_base_size() {
  base_size_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RetinaFaceParam_AnchorParam::base_size() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.AnchorParam.base_size)
  return base_size_;
}
inline void RetinaFaceParam_AnchorParam::set_base_size(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  base_size_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.AnchorParam.base_size)
}

// repeated float ratios = 3;
inline int RetinaFaceParam_AnchorParam::ratios_size() const {
  return ratios_.size();
}
inline void RetinaFaceParam_AnchorParam::clear_ratios() {
  ratios_.Clear();
}
inline float RetinaFaceParam_AnchorParam::ratios(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.AnchorParam.ratios)
  return ratios_.Get(index);
}
inline void RetinaFaceParam_AnchorParam::set_ratios(int index, float value) {
  ratios_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.AnchorParam.ratios)
}
inline void RetinaFaceParam_AnchorParam::add_ratios(float value) {
  ratios_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RetinaFaceParam.AnchorParam.ratios)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RetinaFaceParam_AnchorParam::ratios() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RetinaFaceParam.AnchorParam.ratios)
  return ratios_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RetinaFaceParam_AnchorParam::mutable_ratios() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RetinaFaceParam.AnchorParam.ratios)
  return &ratios_;
}

// repeated int32 scales = 4;
inline int RetinaFaceParam_AnchorParam::scales_size() const {
  return scales_.size();
}
inline void RetinaFaceParam_AnchorParam::clear_scales() {
  scales_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RetinaFaceParam_AnchorParam::scales(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.AnchorParam.scales)
  return scales_.Get(index);
}
inline void RetinaFaceParam_AnchorParam::set_scales(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  scales_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.AnchorParam.scales)
}
inline void RetinaFaceParam_AnchorParam::add_scales(::PROTOBUF_NAMESPACE_ID::int32 value) {
  scales_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RetinaFaceParam.AnchorParam.scales)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
RetinaFaceParam_AnchorParam::scales() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RetinaFaceParam.AnchorParam.scales)
  return scales_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
RetinaFaceParam_AnchorParam::mutable_scales() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RetinaFaceParam.AnchorParam.scales)
  return &scales_;
}

// -------------------------------------------------------------------

// RetinaFaceParam

// repeated .vitis.ai.proto.RetinaFaceParam.OutputInfo output_info = 1;
inline int RetinaFaceParam::output_info_size() const {
  return output_info_.size();
}
inline void RetinaFaceParam::clear_output_info() {
  output_info_.Clear();
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputInfo* RetinaFaceParam::mutable_output_info(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RetinaFaceParam.output_info)
  return output_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_OutputInfo >*
RetinaFaceParam::mutable_output_info() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RetinaFaceParam.output_info)
  return &output_info_;
}
inline const ::vitis::ai::proto::RetinaFaceParam_OutputInfo& RetinaFaceParam::output_info(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.output_info)
  return output_info_.Get(index);
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputInfo* RetinaFaceParam::add_output_info() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RetinaFaceParam.output_info)
  return output_info_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_OutputInfo >&
RetinaFaceParam::output_info() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RetinaFaceParam.output_info)
  return output_info_;
}

// optional float nms_threshold = 2;
inline bool RetinaFaceParam::has_nms_threshold() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RetinaFaceParam::clear_nms_threshold() {
  nms_threshold_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float RetinaFaceParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.nms_threshold)
  return nms_threshold_;
}
inline void RetinaFaceParam::set_nms_threshold(float value) {
  _has_bits_[0] |= 0x00000001u;
  nms_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.nms_threshold)
}

// optional float det_threshold = 3;
inline bool RetinaFaceParam::has_det_threshold() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RetinaFaceParam::clear_det_threshold() {
  det_threshold_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float RetinaFaceParam::det_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.det_threshold)
  return det_threshold_;
}
inline void RetinaFaceParam::set_det_threshold(float value) {
  _has_bits_[0] |= 0x00000002u;
  det_threshold_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.det_threshold)
}

// repeated .vitis.ai.proto.RetinaFaceParam.AnchorParam anchor_param = 4;
inline int RetinaFaceParam::anchor_param_size() const {
  return anchor_param_.size();
}
inline void RetinaFaceParam::clear_anchor_param() {
  anchor_param_.Clear();
}
inline ::vitis::ai::proto::RetinaFaceParam_AnchorParam* RetinaFaceParam::mutable_anchor_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RetinaFaceParam.anchor_param)
  return anchor_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_AnchorParam >*
RetinaFaceParam::mutable_anchor_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RetinaFaceParam.anchor_param)
  return &anchor_param_;
}
inline const ::vitis::ai::proto::RetinaFaceParam_AnchorParam& RetinaFaceParam::anchor_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.anchor_param)
  return anchor_param_.Get(index);
}
inline ::vitis::ai::proto::RetinaFaceParam_AnchorParam* RetinaFaceParam::add_anchor_param() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RetinaFaceParam.anchor_param)
  return anchor_param_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_AnchorParam >&
RetinaFaceParam::anchor_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RetinaFaceParam.anchor_param)
  return anchor_param_;
}

// -------------------------------------------------------------------

// DpuKernelParam

// optional string name = 1;
inline bool DpuKernelParam::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void DpuKernelParam::clear_name() {
  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& DpuKernelParam::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuKernelParam.name)
  return name_.GetNoArena();
}
inline void DpuKernelParam::set_name(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuKernelParam.name)
}
inline void DpuKernelParam::set_name(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.DpuKernelParam.name)
}
inline void DpuKernelParam::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.DpuKernelParam.name)
}
inline void DpuKernelParam::set_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.DpuKernelParam.name)
}
inline std::string* DpuKernelParam::mutable_name() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuKernelParam.name)
  return name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* DpuKernelParam::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuKernelParam.name)
  if (!has_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return name_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void DpuKernelParam::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuKernelParam.name)
}

// repeated float mean = 2;
inline int DpuKernelParam::mean_size() const {
  return mean_.size();
}
inline void DpuKernelParam::clear_mean() {
  mean_.Clear();
}
inline float DpuKernelParam::mean(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuKernelParam.mean)
  return mean_.Get(index);
}
inline void DpuKernelParam::set_mean(int index, float value) {
  mean_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuKernelParam.mean)
}
inline void DpuKernelParam::add_mean(float value) {
  mean_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DpuKernelParam.mean)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
DpuKernelParam::mean() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DpuKernelParam.mean)
  return mean_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
DpuKernelParam::mutable_mean() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DpuKernelParam.mean)
  return &mean_;
}

// repeated float scale = 3;
inline int DpuKernelParam::scale_size() const {
  return scale_.size();
}
inline void DpuKernelParam::clear_scale() {
  scale_.Clear();
}
inline float DpuKernelParam::scale(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuKernelParam.scale)
  return scale_.Get(index);
}
inline void DpuKernelParam::set_scale(int index, float value) {
  scale_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuKernelParam.scale)
}
inline void DpuKernelParam::add_scale(float value) {
  scale_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DpuKernelParam.scale)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
DpuKernelParam::scale() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DpuKernelParam.scale)
  return scale_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
DpuKernelParam::mutable_scale() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DpuKernelParam.scale)
  return &scale_;
}

// -------------------------------------------------------------------

// TfssdParam_OutputInfo

// optional .vitis.ai.proto.TfssdParam.OutputType type = 1;
inline bool TfssdParam_OutputInfo::has_type() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TfssdParam_OutputInfo::clear_type() {
  type_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::vitis::ai::proto::TfssdParam_OutputType TfssdParam_OutputInfo::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.OutputInfo.type)
  return static_cast< ::vitis::ai::proto::TfssdParam_OutputType >(type_);
}
inline void TfssdParam_OutputInfo::set_type(::vitis::ai::proto::TfssdParam_OutputType value) {
  assert(::vitis::ai::proto::TfssdParam_OutputType_IsValid(value));
  _has_bits_[0] |= 0x00000002u;
  type_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TfssdParam.OutputInfo.type)
}

// optional int32 order = 2;
inline bool TfssdParam_OutputInfo::has_order() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TfssdParam_OutputInfo::clear_order() {
  order_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TfssdParam_OutputInfo::order() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.OutputInfo.order)
  return order_;
}
inline void TfssdParam_OutputInfo::set_order(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000004u;
  order_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TfssdParam.OutputInfo.order)
}

// optional string name = 3;
inline bool TfssdParam_OutputInfo::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TfssdParam_OutputInfo::clear_name() {
  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& TfssdParam_OutputInfo::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.OutputInfo.name)
  return name_.GetNoArena();
}
inline void TfssdParam_OutputInfo::set_name(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TfssdParam.OutputInfo.name)
}
inline void TfssdParam_OutputInfo::set_name(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.TfssdParam.OutputInfo.name)
}
inline void TfssdParam_OutputInfo::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.TfssdParam.OutputInfo.name)
}
inline void TfssdParam_OutputInfo::set_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.TfssdParam.OutputInfo.name)
}
inline std::string* TfssdParam_OutputInfo::mutable_name() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.TfssdParam.OutputInfo.name)
  return name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* TfssdParam_OutputInfo::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.TfssdParam.OutputInfo.name)
  if (!has_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return name_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void TfssdParam_OutputInfo::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.TfssdParam.OutputInfo.name)
}

// -------------------------------------------------------------------

// TfssdParam

// repeated .vitis.ai.proto.TfssdParam.OutputInfo output_info = 1;
inline int TfssdParam::output_info_size() const {
  return output_info_.size();
}
inline void TfssdParam::clear_output_info() {
  output_info_.Clear();
}
inline ::vitis::ai::proto::TfssdParam_OutputInfo* TfssdParam::mutable_output_info(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.TfssdParam.output_info)
  return output_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::TfssdParam_OutputInfo >*
TfssdParam::mutable_output_info() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.TfssdParam.output_info)
  return &output_info_;
}
inline const ::vitis::ai::proto::TfssdParam_OutputInfo& TfssdParam::output_info(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.output_info)
  return output_info_.Get(index);
}
inline ::vitis::ai::proto::TfssdParam_OutputInfo* TfssdParam::add_output_info() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.TfssdParam.output_info)
  return output_info_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::TfssdParam_OutputInfo >&
TfssdParam::output_info() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.TfssdParam.output_info)
  return output_info_;
}

// repeated int32 feature_map_list = 2;
inline int TfssdParam::feature_map_list_size() const {
  return feature_map_list_.size();
}
inline void TfssdParam::clear_feature_map_list() {
  feature_map_list_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TfssdParam::feature_map_list(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.feature_map_list)
  return feature_map_list_.Get(index);
}
inline void TfssdParam::set_feature_map_list(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  feature_map_list_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TfssdParam.feature_map_list)
}
inline void TfssdParam::add_feature_map_list(::PROTOBUF_NAMESPACE_ID::int32 value) {
  feature_map_list_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.TfssdParam.feature_map_list)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
TfssdParam::feature_map_list() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.TfssdParam.feature_map_list)
  return feature_map_list_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
TfssdParam::mutable_feature_map_list() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.TfssdParam.feature_map_list)
  return &feature_map_list_;
}

// optional string official_cfg = 3;
inline bool TfssdParam::has_official_cfg() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TfssdParam::clear_official_cfg() {
  official_cfg_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& TfssdParam::official_cfg() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.official_cfg)
  return official_cfg_.GetNoArena();
}
inline void TfssdParam::set_official_cfg(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  official_cfg_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TfssdParam.official_cfg)
}
inline void TfssdParam::set_official_cfg(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  official_cfg_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.TfssdParam.official_cfg)
}
inline void TfssdParam::set_official_cfg(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  official_cfg_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.TfssdParam.official_cfg)
}
inline void TfssdParam::set_official_cfg(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  official_cfg_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.TfssdParam.official_cfg)
}
inline std::string* TfssdParam::mutable_official_cfg() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.TfssdParam.official_cfg)
  return official_cfg_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* TfssdParam::release_official_cfg() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.TfssdParam.official_cfg)
  if (!has_official_cfg()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return official_cfg_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void TfssdParam::set_allocated_official_cfg(std::string* official_cfg) {
  if (official_cfg != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  official_cfg_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), official_cfg);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.TfssdParam.official_cfg)
}

// -------------------------------------------------------------------

// DpuModelParam

// optional string name = 1;
inline bool DpuModelParam::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void DpuModelParam::clear_name() {
  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& DpuModelParam::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.name)
  return name_.GetNoArena();
}
inline void DpuModelParam::set_name(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuModelParam.name)
}
inline void DpuModelParam::set_name(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.DpuModelParam.name)
}
inline void DpuModelParam::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.DpuModelParam.name)
}
inline void DpuModelParam::set_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.DpuModelParam.name)
}
inline std::string* DpuModelParam::mutable_name() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.name)
  return name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* DpuModelParam::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.name)
  if (!has_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return name_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void DpuModelParam::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.name)
}

// repeated .vitis.ai.proto.DpuKernelParam kernel = 2;
inline int DpuModelParam::kernel_size() const {
  return kernel_.size();
}
inline void DpuModelParam::clear_kernel() {
  kernel_.Clear();
}
inline ::vitis::ai::proto::DpuKernelParam* DpuModelParam::mutable_kernel(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.kernel)
  return kernel_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuKernelParam >*
DpuModelParam::mutable_kernel() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DpuModelParam.kernel)
  return &kernel_;
}
inline const ::vitis::ai::proto::DpuKernelParam& DpuModelParam::kernel(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.kernel)
  return kernel_.Get(index);
}
inline ::vitis::ai::proto::DpuKernelParam* DpuModelParam::add_kernel() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DpuModelParam.kernel)
  return kernel_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuKernelParam >&
DpuModelParam::kernel() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DpuModelParam.kernel)
  return kernel_;
}

// optional .vitis.ai.proto.DpuModelParam.ModelType model_type = 3;
inline bool DpuModelParam::has_model_type() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void DpuModelParam::clear_model_type() {
  model_type_ = 0;
  _has_bits_[0] &= ~0x00200000u;
}
inline ::vitis::ai::proto::DpuModelParam_ModelType DpuModelParam::model_type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.model_type)
  return static_cast< ::vitis::ai::proto::DpuModelParam_ModelType >(model_type_);
}
inline void DpuModelParam::set_model_type(::vitis::ai::proto::DpuModelParam_ModelType value) {
  assert(::vitis::ai::proto::DpuModelParam_ModelType_IsValid(value));
  _has_bits_[0] |= 0x00200000u;
  model_type_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuModelParam.model_type)
}

// optional .vitis.ai.proto.RefineDetParam refine_det_param = 4;
inline bool DpuModelParam::has_refine_det_param() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void DpuModelParam::clear_refine_det_param() {
  if (refine_det_param_ != nullptr) refine_det_param_->Clear();
  _has_bits_[0] &= ~0x00000002u;
}
inline const ::vitis::ai::proto::RefineDetParam& DpuModelParam::refine_det_param() const {
  const ::vitis::ai::proto::RefineDetParam* p = refine_det_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.refine_det_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::RefineDetParam*>(
      &::vitis::ai::proto::_RefineDetParam_default_instance_);
}
inline ::vitis::ai::proto::RefineDetParam* DpuModelParam::release_refine_det_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.refine_det_param)
  _has_bits_[0] &= ~0x00000002u;
  ::vitis::ai::proto::RefineDetParam* temp = refine_det_param_;
  refine_det_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RefineDetParam* DpuModelParam::mutable_refine_det_param() {
  _has_bits_[0] |= 0x00000002u;
  if (refine_det_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RefineDetParam>(GetArenaNoVirtual());
    refine_det_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.refine_det_param)
  return refine_det_param_;
}
inline void DpuModelParam::set_allocated_refine_det_param(::vitis::ai::proto::RefineDetParam* refine_det_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete refine_det_param_;
  }
  if (refine_det_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      refine_det_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, refine_det_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  refine_det_param_ = refine_det_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.refine_det_param)
}

// optional .vitis.ai.proto.YoloV3Param yolo_v3_param = 5;
inline bool DpuModelParam::has_yolo_v3_param() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void DpuModelParam::clear_yolo_v3_param() {
  if (yolo_v3_param_ != nullptr) yolo_v3_param_->Clear();
  _has_bits_[0] &= ~0x00000004u;
}
inline const ::vitis::ai::proto::YoloV3Param& DpuModelParam::yolo_v3_param() const {
  const ::vitis::ai::proto::YoloV3Param* p = yolo_v3_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.yolo_v3_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::YoloV3Param*>(
      &::vitis::ai::proto::_YoloV3Param_default_instance_);
}
inline ::vitis::ai::proto::YoloV3Param* DpuModelParam::release_yolo_v3_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.yolo_v3_param)
  _has_bits_[0] &= ~0x00000004u;
  ::vitis::ai::proto::YoloV3Param* temp = yolo_v3_param_;
  yolo_v3_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::YoloV3Param* DpuModelParam::mutable_yolo_v3_param() {
  _has_bits_[0] |= 0x00000004u;
  if (yolo_v3_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::YoloV3Param>(GetArenaNoVirtual());
    yolo_v3_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.yolo_v3_param)
  return yolo_v3_param_;
}
inline void DpuModelParam::set_allocated_yolo_v3_param(::vitis::ai::proto::YoloV3Param* yolo_v3_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete yolo_v3_param_;
  }
  if (yolo_v3_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      yolo_v3_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, yolo_v3_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  yolo_v3_param_ = yolo_v3_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v3_param)
}

// optional .vitis.ai.proto.SSDParam ssd_param = 6;
inline bool DpuModelParam::has_ssd_param() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void DpuModelParam::clear_ssd_param() {
  if (ssd_param_ != nullptr) ssd_param_->Clear();
  _has_bits_[0] &= ~0x00000008u;
}
inline const ::vitis::ai::proto::SSDParam& DpuModelParam::ssd_param() const {
  const ::vitis::ai::proto::SSDParam* p = ssd_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.ssd_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::SSDParam*>(
      &::vitis::ai::proto::_SSDParam_default_instance_);
}
inline ::vitis::ai::proto::SSDParam* DpuModelParam::release_ssd_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.ssd_param)
  _has_bits_[0] &= ~0x00000008u;
  ::vitis::ai::proto::SSDParam* temp = ssd_param_;
  ssd_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::SSDParam* DpuModelParam::mutable_ssd_param() {
  _has_bits_[0] |= 0x00000008u;
  if (ssd_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::SSDParam>(GetArenaNoVirtual());
    ssd_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.ssd_param)
  return ssd_param_;
}
inline void DpuModelParam::set_allocated_ssd_param(::vitis::ai::proto::SSDParam* ssd_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete ssd_param_;
  }
  if (ssd_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      ssd_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, ssd_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000008u;
  } else {
    _has_bits_[0] &= ~0x00000008u;
  }
  ssd_param_ = ssd_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.ssd_param)
}

// optional .vitis.ai.proto.ClassificationParam classification_param = 7;
inline bool DpuModelParam::has_classification_param() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void DpuModelParam::clear_classification_param() {
  if (classification_param_ != nullptr) classification_param_->Clear();
  _has_bits_[0] &= ~0x00000010u;
}
inline const ::vitis::ai::proto::ClassificationParam& DpuModelParam::classification_param() const {
  const ::vitis::ai::proto::ClassificationParam* p = classification_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.classification_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::ClassificationParam*>(
      &::vitis::ai::proto::_ClassificationParam_default_instance_);
}
inline ::vitis::ai::proto::ClassificationParam* DpuModelParam::release_classification_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.classification_param)
  _has_bits_[0] &= ~0x00000010u;
  ::vitis::ai::proto::ClassificationParam* temp = classification_param_;
  classification_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::ClassificationParam* DpuModelParam::mutable_classification_param() {
  _has_bits_[0] |= 0x00000010u;
  if (classification_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::ClassificationParam>(GetArenaNoVirtual());
    classification_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.classification_param)
  return classification_param_;
}
inline void DpuModelParam::set_allocated_classification_param(::vitis::ai::proto::ClassificationParam* classification_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete classification_param_;
  }
  if (classification_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      classification_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, classification_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000010u;
  } else {
    _has_bits_[0] &= ~0x00000010u;
  }
  classification_param_ = classification_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.classification_param)
}

// optional .vitis.ai.proto.DenseBoxParam dense_box_param = 8;
inline bool DpuModelParam::has_dense_box_param() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void DpuModelParam::clear_dense_box_param() {
  if (dense_box_param_ != nullptr) dense_box_param_->Clear();
  _has_bits_[0] &= ~0x00000020u;
}
inline const ::vitis::ai::proto::DenseBoxParam& DpuModelParam::dense_box_param() const {
  const ::vitis::ai::proto::DenseBoxParam* p = dense_box_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.dense_box_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::DenseBoxParam*>(
      &::vitis::ai::proto::_DenseBoxParam_default_instance_);
}
inline ::vitis::ai::proto::DenseBoxParam* DpuModelParam::release_dense_box_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.dense_box_param)
  _has_bits_[0] &= ~0x00000020u;
  ::vitis::ai::proto::DenseBoxParam* temp = dense_box_param_;
  dense_box_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::DenseBoxParam* DpuModelParam::mutable_dense_box_param() {
  _has_bits_[0] |= 0x00000020u;
  if (dense_box_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::DenseBoxParam>(GetArenaNoVirtual());
    dense_box_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.dense_box_param)
  return dense_box_param_;
}
inline void DpuModelParam::set_allocated_dense_box_param(::vitis::ai::proto::DenseBoxParam* dense_box_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete dense_box_param_;
  }
  if (dense_box_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      dense_box_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, dense_box_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000020u;
  } else {
    _has_bits_[0] &= ~0x00000020u;
  }
  dense_box_param_ = dense_box_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.dense_box_param)
}

// optional .vitis.ai.proto.MultiTaskParam multi_task_param = 9;
inline bool DpuModelParam::has_multi_task_param() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void DpuModelParam::clear_multi_task_param() {
  if (multi_task_param_ != nullptr) multi_task_param_->Clear();
  _has_bits_[0] &= ~0x00000040u;
}
inline const ::vitis::ai::proto::MultiTaskParam& DpuModelParam::multi_task_param() const {
  const ::vitis::ai::proto::MultiTaskParam* p = multi_task_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.multi_task_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::MultiTaskParam*>(
      &::vitis::ai::proto::_MultiTaskParam_default_instance_);
}
inline ::vitis::ai::proto::MultiTaskParam* DpuModelParam::release_multi_task_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.multi_task_param)
  _has_bits_[0] &= ~0x00000040u;
  ::vitis::ai::proto::MultiTaskParam* temp = multi_task_param_;
  multi_task_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::MultiTaskParam* DpuModelParam::mutable_multi_task_param() {
  _has_bits_[0] |= 0x00000040u;
  if (multi_task_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::MultiTaskParam>(GetArenaNoVirtual());
    multi_task_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.multi_task_param)
  return multi_task_param_;
}
inline void DpuModelParam::set_allocated_multi_task_param(::vitis::ai::proto::MultiTaskParam* multi_task_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete multi_task_param_;
  }
  if (multi_task_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      multi_task_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, multi_task_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000040u;
  } else {
    _has_bits_[0] &= ~0x00000040u;
  }
  multi_task_param_ = multi_task_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.multi_task_param)
}

// optional .vitis.ai.proto.RoadlineParam roadline_param = 10;
inline bool DpuModelParam::has_roadline_param() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void DpuModelParam::clear_roadline_param() {
  if (roadline_param_ != nullptr) roadline_param_->Clear();
  _has_bits_[0] &= ~0x00000080u;
}
inline const ::vitis::ai::proto::RoadlineParam& DpuModelParam::roadline_param() const {
  const ::vitis::ai::proto::RoadlineParam* p = roadline_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.roadline_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::RoadlineParam*>(
      &::vitis::ai::proto::_RoadlineParam_default_instance_);
}
inline ::vitis::ai::proto::RoadlineParam* DpuModelParam::release_roadline_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.roadline_param)
  _has_bits_[0] &= ~0x00000080u;
  ::vitis::ai::proto::RoadlineParam* temp = roadline_param_;
  roadline_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RoadlineParam* DpuModelParam::mutable_roadline_param() {
  _has_bits_[0] |= 0x00000080u;
  if (roadline_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RoadlineParam>(GetArenaNoVirtual());
    roadline_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.roadline_param)
  return roadline_param_;
}
inline void DpuModelParam::set_allocated_roadline_param(::vitis::ai::proto::RoadlineParam* roadline_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete roadline_param_;
  }
  if (roadline_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      roadline_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, roadline_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000080u;
  } else {
    _has_bits_[0] &= ~0x00000080u;
  }
  roadline_param_ = roadline_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.roadline_param)
}

// optional .vitis.ai.proto.SegmentationParam segmentation_param = 11;
inline bool DpuModelParam::has_segmentation_param() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void DpuModelParam::clear_segmentation_param() {
  if (segmentation_param_ != nullptr) segmentation_param_->Clear();
  _has_bits_[0] &= ~0x00000100u;
}
inline const ::vitis::ai::proto::SegmentationParam& DpuModelParam::segmentation_param() const {
  const ::vitis::ai::proto::SegmentationParam* p = segmentation_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.segmentation_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::SegmentationParam*>(
      &::vitis::ai::proto::_SegmentationParam_default_instance_);
}
inline ::vitis::ai::proto::SegmentationParam* DpuModelParam::release_segmentation_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.segmentation_param)
  _has_bits_[0] &= ~0x00000100u;
  ::vitis::ai::proto::SegmentationParam* temp = segmentation_param_;
  segmentation_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::SegmentationParam* DpuModelParam::mutable_segmentation_param() {
  _has_bits_[0] |= 0x00000100u;
  if (segmentation_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::SegmentationParam>(GetArenaNoVirtual());
    segmentation_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.segmentation_param)
  return segmentation_param_;
}
inline void DpuModelParam::set_allocated_segmentation_param(::vitis::ai::proto::SegmentationParam* segmentation_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete segmentation_param_;
  }
  if (segmentation_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      segmentation_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, segmentation_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000100u;
  } else {
    _has_bits_[0] &= ~0x00000100u;
  }
  segmentation_param_ = segmentation_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.segmentation_param)
}

// optional .vitis.ai.proto.LaneParam lane_param = 12;
inline bool DpuModelParam::has_lane_param() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void DpuModelParam::clear_lane_param() {
  if (lane_param_ != nullptr) lane_param_->Clear();
  _has_bits_[0] &= ~0x00000200u;
}
inline const ::vitis::ai::proto::LaneParam& DpuModelParam::lane_param() const {
  const ::vitis::ai::proto::LaneParam* p = lane_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.lane_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::LaneParam*>(
      &::vitis::ai::proto::_LaneParam_default_instance_);
}
inline ::vitis::ai::proto::LaneParam* DpuModelParam::release_lane_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.lane_param)
  _has_bits_[0] &= ~0x00000200u;
  ::vitis::ai::proto::LaneParam* temp = lane_param_;
  lane_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::LaneParam* DpuModelParam::mutable_lane_param() {
  _has_bits_[0] |= 0x00000200u;
  if (lane_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::LaneParam>(GetArenaNoVirtual());
    lane_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.lane_param)
  return lane_param_;
}
inline void DpuModelParam::set_allocated_lane_param(::vitis::ai::proto::LaneParam* lane_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete lane_param_;
  }
  if (lane_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      lane_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, lane_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000200u;
  } else {
    _has_bits_[0] &= ~0x00000200u;
  }
  lane_param_ = lane_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.lane_param)
}

// optional .vitis.ai.proto.BlinkerParam blinker_param = 13;
inline bool DpuModelParam::has_blinker_param() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void DpuModelParam::clear_blinker_param() {
  if (blinker_param_ != nullptr) blinker_param_->Clear();
  _has_bits_[0] &= ~0x00000400u;
}
inline const ::vitis::ai::proto::BlinkerParam& DpuModelParam::blinker_param() const {
  const ::vitis::ai::proto::BlinkerParam* p = blinker_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.blinker_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::BlinkerParam*>(
      &::vitis::ai::proto::_BlinkerParam_default_instance_);
}
inline ::vitis::ai::proto::BlinkerParam* DpuModelParam::release_blinker_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.blinker_param)
  _has_bits_[0] &= ~0x00000400u;
  ::vitis::ai::proto::BlinkerParam* temp = blinker_param_;
  blinker_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::BlinkerParam* DpuModelParam::mutable_blinker_param() {
  _has_bits_[0] |= 0x00000400u;
  if (blinker_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::BlinkerParam>(GetArenaNoVirtual());
    blinker_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.blinker_param)
  return blinker_param_;
}
inline void DpuModelParam::set_allocated_blinker_param(::vitis::ai::proto::BlinkerParam* blinker_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete blinker_param_;
  }
  if (blinker_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      blinker_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, blinker_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000400u;
  } else {
    _has_bits_[0] &= ~0x00000400u;
  }
  blinker_param_ = blinker_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.blinker_param)
}

// optional .vitis.ai.proto.SegdetParam segdet_param = 14;
inline bool DpuModelParam::has_segdet_param() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void DpuModelParam::clear_segdet_param() {
  if (segdet_param_ != nullptr) segdet_param_->Clear();
  _has_bits_[0] &= ~0x00000800u;
}
inline const ::vitis::ai::proto::SegdetParam& DpuModelParam::segdet_param() const {
  const ::vitis::ai::proto::SegdetParam* p = segdet_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.segdet_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::SegdetParam*>(
      &::vitis::ai::proto::_SegdetParam_default_instance_);
}
inline ::vitis::ai::proto::SegdetParam* DpuModelParam::release_segdet_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.segdet_param)
  _has_bits_[0] &= ~0x00000800u;
  ::vitis::ai::proto::SegdetParam* temp = segdet_param_;
  segdet_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::SegdetParam* DpuModelParam::mutable_segdet_param() {
  _has_bits_[0] |= 0x00000800u;
  if (segdet_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::SegdetParam>(GetArenaNoVirtual());
    segdet_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.segdet_param)
  return segdet_param_;
}
inline void DpuModelParam::set_allocated_segdet_param(::vitis::ai::proto::SegdetParam* segdet_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete segdet_param_;
  }
  if (segdet_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      segdet_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, segdet_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00000800u;
  } else {
    _has_bits_[0] &= ~0x00000800u;
  }
  segdet_param_ = segdet_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.segdet_param)
}

// optional .vitis.ai.proto.RoadlineDeephiParam roadline_dp_param = 15;
inline bool DpuModelParam::has_roadline_dp_param() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void DpuModelParam::clear_roadline_dp_param() {
  if (roadline_dp_param_ != nullptr) roadline_dp_param_->Clear();
  _has_bits_[0] &= ~0x00001000u;
}
inline const ::vitis::ai::proto::RoadlineDeephiParam& DpuModelParam::roadline_dp_param() const {
  const ::vitis::ai::proto::RoadlineDeephiParam* p = roadline_dp_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.roadline_dp_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::RoadlineDeephiParam*>(
      &::vitis::ai::proto::_RoadlineDeephiParam_default_instance_);
}
inline ::vitis::ai::proto::RoadlineDeephiParam* DpuModelParam::release_roadline_dp_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.roadline_dp_param)
  _has_bits_[0] &= ~0x00001000u;
  ::vitis::ai::proto::RoadlineDeephiParam* temp = roadline_dp_param_;
  roadline_dp_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RoadlineDeephiParam* DpuModelParam::mutable_roadline_dp_param() {
  _has_bits_[0] |= 0x00001000u;
  if (roadline_dp_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RoadlineDeephiParam>(GetArenaNoVirtual());
    roadline_dp_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.roadline_dp_param)
  return roadline_dp_param_;
}
inline void DpuModelParam::set_allocated_roadline_dp_param(::vitis::ai::proto::RoadlineDeephiParam* roadline_dp_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete roadline_dp_param_;
  }
  if (roadline_dp_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      roadline_dp_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, roadline_dp_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00001000u;
  } else {
    _has_bits_[0] &= ~0x00001000u;
  }
  roadline_dp_param_ = roadline_dp_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.roadline_dp_param)
}

// optional bool is_tf = 16;
inline bool DpuModelParam::has_is_tf() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
inline void DpuModelParam::clear_is_tf() {
  is_tf_ = false;
  _has_bits_[0] &= ~0x00400000u;
}
inline bool DpuModelParam::is_tf() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.is_tf)
  return is_tf_;
}
inline void DpuModelParam::set_is_tf(bool value) {
  _has_bits_[0] |= 0x00400000u;
  is_tf_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuModelParam.is_tf)
}

// optional .vitis.ai.proto.FaceQuality5ptParam face_quality5pt_param = 17;
inline bool DpuModelParam::has_face_quality5pt_param() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void DpuModelParam::clear_face_quality5pt_param() {
  if (face_quality5pt_param_ != nullptr) face_quality5pt_param_->Clear();
  _has_bits_[0] &= ~0x00002000u;
}
inline const ::vitis::ai::proto::FaceQuality5ptParam& DpuModelParam::face_quality5pt_param() const {
  const ::vitis::ai::proto::FaceQuality5ptParam* p = face_quality5pt_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.face_quality5pt_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::FaceQuality5ptParam*>(
      &::vitis::ai::proto::_FaceQuality5ptParam_default_instance_);
}
inline ::vitis::ai::proto::FaceQuality5ptParam* DpuModelParam::release_face_quality5pt_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.face_quality5pt_param)
  _has_bits_[0] &= ~0x00002000u;
  ::vitis::ai::proto::FaceQuality5ptParam* temp = face_quality5pt_param_;
  face_quality5pt_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::FaceQuality5ptParam* DpuModelParam::mutable_face_quality5pt_param() {
  _has_bits_[0] |= 0x00002000u;
  if (face_quality5pt_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::FaceQuality5ptParam>(GetArenaNoVirtual());
    face_quality5pt_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.face_quality5pt_param)
  return face_quality5pt_param_;
}
inline void DpuModelParam::set_allocated_face_quality5pt_param(::vitis::ai::proto::FaceQuality5ptParam* face_quality5pt_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete face_quality5pt_param_;
  }
  if (face_quality5pt_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      face_quality5pt_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, face_quality5pt_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00002000u;
  } else {
    _has_bits_[0] &= ~0x00002000u;
  }
  face_quality5pt_param_ = face_quality5pt_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.face_quality5pt_param)
}

// optional .vitis.ai.proto.TfssdParam tfssd_param = 18;
inline bool DpuModelParam::has_tfssd_param() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void DpuModelParam::clear_tfssd_param() {
  if (tfssd_param_ != nullptr) tfssd_param_->Clear();
  _has_bits_[0] &= ~0x00004000u;
}
inline const ::vitis::ai::proto::TfssdParam& DpuModelParam::tfssd_param() const {
  const ::vitis::ai::proto::TfssdParam* p = tfssd_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.tfssd_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::TfssdParam*>(
      &::vitis::ai::proto::_TfssdParam_default_instance_);
}
inline ::vitis::ai::proto::TfssdParam* DpuModelParam::release_tfssd_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.tfssd_param)
  _has_bits_[0] &= ~0x00004000u;
  ::vitis::ai::proto::TfssdParam* temp = tfssd_param_;
  tfssd_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::TfssdParam* DpuModelParam::mutable_tfssd_param() {
  _has_bits_[0] |= 0x00004000u;
  if (tfssd_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::TfssdParam>(GetArenaNoVirtual());
    tfssd_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.tfssd_param)
  return tfssd_param_;
}
inline void DpuModelParam::set_allocated_tfssd_param(::vitis::ai::proto::TfssdParam* tfssd_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete tfssd_param_;
  }
  if (tfssd_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      tfssd_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, tfssd_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00004000u;
  } else {
    _has_bits_[0] &= ~0x00004000u;
  }
  tfssd_param_ = tfssd_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.tfssd_param)
}

// optional .vitis.ai.proto.OpenPoseParam open_pose_param = 19;
inline bool DpuModelParam::has_open_pose_param() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void DpuModelParam::clear_open_pose_param() {
  if (open_pose_param_ != nullptr) open_pose_param_->Clear();
  _has_bits_[0] &= ~0x00008000u;
}
inline const ::vitis::ai::proto::OpenPoseParam& DpuModelParam::open_pose_param() const {
  const ::vitis::ai::proto::OpenPoseParam* p = open_pose_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.open_pose_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::OpenPoseParam*>(
      &::vitis::ai::proto::_OpenPoseParam_default_instance_);
}
inline ::vitis::ai::proto::OpenPoseParam* DpuModelParam::release_open_pose_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.open_pose_param)
  _has_bits_[0] &= ~0x00008000u;
  ::vitis::ai::proto::OpenPoseParam* temp = open_pose_param_;
  open_pose_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::OpenPoseParam* DpuModelParam::mutable_open_pose_param() {
  _has_bits_[0] |= 0x00008000u;
  if (open_pose_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::OpenPoseParam>(GetArenaNoVirtual());
    open_pose_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.open_pose_param)
  return open_pose_param_;
}
inline void DpuModelParam::set_allocated_open_pose_param(::vitis::ai::proto::OpenPoseParam* open_pose_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete open_pose_param_;
  }
  if (open_pose_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      open_pose_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, open_pose_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00008000u;
  } else {
    _has_bits_[0] &= ~0x00008000u;
  }
  open_pose_param_ = open_pose_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.open_pose_param)
}

// optional .vitis.ai.proto.ReidParam reid_param = 20;
inline bool DpuModelParam::has_reid_param() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void DpuModelParam::clear_reid_param() {
  if (reid_param_ != nullptr) reid_param_->Clear();
  _has_bits_[0] &= ~0x00010000u;
}
inline const ::vitis::ai::proto::ReidParam& DpuModelParam::reid_param() const {
  const ::vitis::ai::proto::ReidParam* p = reid_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.reid_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::ReidParam*>(
      &::vitis::ai::proto::_ReidParam_default_instance_);
}
inline ::vitis::ai::proto::ReidParam* DpuModelParam::release_reid_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.reid_param)
  _has_bits_[0] &= ~0x00010000u;
  ::vitis::ai::proto::ReidParam* temp = reid_param_;
  reid_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::ReidParam* DpuModelParam::mutable_reid_param() {
  _has_bits_[0] |= 0x00010000u;
  if (reid_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::ReidParam>(GetArenaNoVirtual());
    reid_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.reid_param)
  return reid_param_;
}
inline void DpuModelParam::set_allocated_reid_param(::vitis::ai::proto::ReidParam* reid_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reid_param_;
  }
  if (reid_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      reid_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, reid_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00010000u;
  } else {
    _has_bits_[0] &= ~0x00010000u;
  }
  reid_param_ = reid_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.reid_param)
}

// optional .vitis.ai.proto.MedicalRefineDetParam medical_refine_det_param = 21;
inline bool DpuModelParam::has_medical_refine_det_param() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void DpuModelParam::clear_medical_refine_det_param() {
  if (medical_refine_det_param_ != nullptr) medical_refine_det_param_->Clear();
  _has_bits_[0] &= ~0x00020000u;
}
inline const ::vitis::ai::proto::MedicalRefineDetParam& DpuModelParam::medical_refine_det_param() const {
  const ::vitis::ai::proto::MedicalRefineDetParam* p = medical_refine_det_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.medical_refine_det_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::MedicalRefineDetParam*>(
      &::vitis::ai::proto::_MedicalRefineDetParam_default_instance_);
}
inline ::vitis::ai::proto::MedicalRefineDetParam* DpuModelParam::release_medical_refine_det_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.medical_refine_det_param)
  _has_bits_[0] &= ~0x00020000u;
  ::vitis::ai::proto::MedicalRefineDetParam* temp = medical_refine_det_param_;
  medical_refine_det_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::MedicalRefineDetParam* DpuModelParam::mutable_medical_refine_det_param() {
  _has_bits_[0] |= 0x00020000u;
  if (medical_refine_det_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::MedicalRefineDetParam>(GetArenaNoVirtual());
    medical_refine_det_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.medical_refine_det_param)
  return medical_refine_det_param_;
}
inline void DpuModelParam::set_allocated_medical_refine_det_param(::vitis::ai::proto::MedicalRefineDetParam* medical_refine_det_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete medical_refine_det_param_;
  }
  if (medical_refine_det_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      medical_refine_det_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, medical_refine_det_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00020000u;
  } else {
    _has_bits_[0] &= ~0x00020000u;
  }
  medical_refine_det_param_ = medical_refine_det_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.medical_refine_det_param)
}

// optional .vitis.ai.proto.PlatenumParam platenum_param = 22;
inline bool DpuModelParam::has_platenum_param() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void DpuModelParam::clear_platenum_param() {
  if (platenum_param_ != nullptr) platenum_param_->Clear();
  _has_bits_[0] &= ~0x00040000u;
}
inline const ::vitis::ai::proto::PlatenumParam& DpuModelParam::platenum_param() const {
  const ::vitis::ai::proto::PlatenumParam* p = platenum_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.platenum_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::PlatenumParam*>(
      &::vitis::ai::proto::_PlatenumParam_default_instance_);
}
inline ::vitis::ai::proto::PlatenumParam* DpuModelParam::release_platenum_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.platenum_param)
  _has_bits_[0] &= ~0x00040000u;
  ::vitis::ai::proto::PlatenumParam* temp = platenum_param_;
  platenum_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::PlatenumParam* DpuModelParam::mutable_platenum_param() {
  _has_bits_[0] |= 0x00040000u;
  if (platenum_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::PlatenumParam>(GetArenaNoVirtual());
    platenum_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.platenum_param)
  return platenum_param_;
}
inline void DpuModelParam::set_allocated_platenum_param(::vitis::ai::proto::PlatenumParam* platenum_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete platenum_param_;
  }
  if (platenum_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      platenum_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, platenum_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00040000u;
  } else {
    _has_bits_[0] &= ~0x00040000u;
  }
  platenum_param_ = platenum_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.platenum_param)
}

// optional .vitis.ai.proto.DpuModelParam.OrderType order_type = 23;
inline bool DpuModelParam::has_order_type() const {
  return (_has_bits_[0] & 0x00800000u) != 0;
}
inline void DpuModelParam::clear_order_type() {
  order_type_ = 0;
  _has_bits_[0] &= ~0x00800000u;
}
inline ::vitis::ai::proto::DpuModelParam_OrderType DpuModelParam::order_type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.order_type)
  return static_cast< ::vitis::ai::proto::DpuModelParam_OrderType >(order_type_);
}
inline void DpuModelParam::set_order_type(::vitis::ai::proto::DpuModelParam_OrderType value) {
  assert(::vitis::ai::proto::DpuModelParam_OrderType_IsValid(value));
  _has_bits_[0] |= 0x00800000u;
  order_type_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuModelParam.order_type)
}

// optional .vitis.ai.proto.RetinaFaceParam retinaface_param = 24;
inline bool DpuModelParam::has_retinaface_param() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void DpuModelParam::clear_retinaface_param() {
  if (retinaface_param_ != nullptr) retinaface_param_->Clear();
  _has_bits_[0] &= ~0x00080000u;
}
inline const ::vitis::ai::proto::RetinaFaceParam& DpuModelParam::retinaface_param() const {
  const ::vitis::ai::proto::RetinaFaceParam* p = retinaface_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.retinaface_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::RetinaFaceParam*>(
      &::vitis::ai::proto::_RetinaFaceParam_default_instance_);
}
inline ::vitis::ai::proto::RetinaFaceParam* DpuModelParam::release_retinaface_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.retinaface_param)
  _has_bits_[0] &= ~0x00080000u;
  ::vitis::ai::proto::RetinaFaceParam* temp = retinaface_param_;
  retinaface_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RetinaFaceParam* DpuModelParam::mutable_retinaface_param() {
  _has_bits_[0] |= 0x00080000u;
  if (retinaface_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam>(GetArenaNoVirtual());
    retinaface_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.retinaface_param)
  return retinaface_param_;
}
inline void DpuModelParam::set_allocated_retinaface_param(::vitis::ai::proto::RetinaFaceParam* retinaface_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete retinaface_param_;
  }
  if (retinaface_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      retinaface_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, retinaface_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00080000u;
  } else {
    _has_bits_[0] &= ~0x00080000u;
  }
  retinaface_param_ = retinaface_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.retinaface_param)
}

// optional .vitis.ai.proto.TFRefineDetParam tfrefinedet_param = 25;
inline bool DpuModelParam::has_tfrefinedet_param() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void DpuModelParam::clear_tfrefinedet_param() {
  if (tfrefinedet_param_ != nullptr) tfrefinedet_param_->Clear();
  _has_bits_[0] &= ~0x00100000u;
}
inline const ::vitis::ai::proto::TFRefineDetParam& DpuModelParam::tfrefinedet_param() const {
  const ::vitis::ai::proto::TFRefineDetParam* p = tfrefinedet_param_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.tfrefinedet_param)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::TFRefineDetParam*>(
      &::vitis::ai::proto::_TFRefineDetParam_default_instance_);
}
inline ::vitis::ai::proto::TFRefineDetParam* DpuModelParam::release_tfrefinedet_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.tfrefinedet_param)
  _has_bits_[0] &= ~0x00100000u;
  ::vitis::ai::proto::TFRefineDetParam* temp = tfrefinedet_param_;
  tfrefinedet_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::TFRefineDetParam* DpuModelParam::mutable_tfrefinedet_param() {
  _has_bits_[0] |= 0x00100000u;
  if (tfrefinedet_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::TFRefineDetParam>(GetArenaNoVirtual());
    tfrefinedet_param_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.tfrefinedet_param)
  return tfrefinedet_param_;
}
inline void DpuModelParam::set_allocated_tfrefinedet_param(::vitis::ai::proto::TFRefineDetParam* tfrefinedet_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete tfrefinedet_param_;
  }
  if (tfrefinedet_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      tfrefinedet_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, tfrefinedet_param, submessage_arena);
    }
    _has_bits_[0] |= 0x00100000u;
  } else {
    _has_bits_[0] &= ~0x00100000u;
  }
  tfrefinedet_param_ = tfrefinedet_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.tfrefinedet_param)
}

// -------------------------------------------------------------------

// DpuModelParamList

// repeated .vitis.ai.proto.DpuModelParam model = 1;
inline int DpuModelParamList::model_size() const {
  return model_.size();
}
inline void DpuModelParamList::clear_model() {
  model_.Clear();
}
inline ::vitis::ai::proto::DpuModelParam* DpuModelParamList::mutable_model(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParamList.model)
  return model_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuModelParam >*
DpuModelParamList::mutable_model() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DpuModelParamList.model)
  return &model_;
}
inline const ::vitis::ai::proto::DpuModelParam& DpuModelParamList::model(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParamList.model)
  return model_.Get(index);
}
inline ::vitis::ai::proto::DpuModelParam* DpuModelParamList::add_model() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DpuModelParamList.model)
  return model_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuModelParam >&
DpuModelParamList::model() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DpuModelParamList.model)
  return model_;
}

// -------------------------------------------------------------------

// Attribute

// optional string label = 1;
inline bool Attribute::has_label() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Attribute::clear_label() {
  label_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& Attribute::label() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Attribute.label)
  return label_.GetNoArena();
}
inline void Attribute::set_label(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  label_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Attribute.label)
}
inline void Attribute::set_label(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  label_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.Attribute.label)
}
inline void Attribute::set_label(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  label_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.Attribute.label)
}
inline void Attribute::set_label(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  label_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.Attribute.label)
}
inline std::string* Attribute::mutable_label() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.Attribute.label)
  return label_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* Attribute::release_label() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.Attribute.label)
  if (!has_label()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return label_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void Attribute::set_allocated_label(std::string* label) {
  if (label != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  label_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), label);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.Attribute.label)
}

// optional uint32 value = 2;
inline bool Attribute::has_value() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Attribute::clear_value() {
  value_ = 0u;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 Attribute::value() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Attribute.value)
  return value_;
}
inline void Attribute::set_value(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _has_bits_[0] |= 0x00000002u;
  value_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Attribute.value)
}

// optional float score = 3;
inline bool Attribute::has_score() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Attribute::clear_score() {
  score_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float Attribute::score() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Attribute.score)
  return score_;
}
inline void Attribute::set_score(float value) {
  _has_bits_[0] |= 0x00000004u;
  score_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Attribute.score)
}

// -------------------------------------------------------------------

// Point

// optional float x = 1;
inline bool Point::has_x() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Point::clear_x() {
  x_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float Point::x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Point.x)
  return x_;
}
inline void Point::set_x(float value) {
  _has_bits_[0] |= 0x00000001u;
  x_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Point.x)
}

// optional float y = 2;
inline bool Point::has_y() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Point::clear_y() {
  y_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float Point::y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Point.y)
  return y_;
}
inline void Point::set_y(float value) {
  _has_bits_[0] |= 0x00000002u;
  y_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Point.y)
}

// -------------------------------------------------------------------

// BoundingBox

// optional uint32 label = 1;
inline bool BoundingBox::has_label() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void BoundingBox::clear_label() {
  label_ = 0u;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 BoundingBox::label() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BoundingBox.label)
  return label_;
}
inline void BoundingBox::set_label(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _has_bits_[0] |= 0x00000001u;
  label_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BoundingBox.label)
}

// optional float score = 2;
inline bool BoundingBox::has_score() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void BoundingBox::clear_score() {
  score_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float BoundingBox::score() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BoundingBox.score)
  return score_;
}
inline void BoundingBox::set_score(float value) {
  _has_bits_[0] |= 0x00000002u;
  score_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BoundingBox.score)
}

// optional float x = 3;
inline bool BoundingBox::has_x() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void BoundingBox::clear_x() {
  x_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float BoundingBox::x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BoundingBox.x)
  return x_;
}
inline void BoundingBox::set_x(float value) {
  _has_bits_[0] |= 0x00000004u;
  x_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BoundingBox.x)
}

// optional float y = 4;
inline bool BoundingBox::has_y() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void BoundingBox::clear_y() {
  y_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float BoundingBox::y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BoundingBox.y)
  return y_;
}
inline void BoundingBox::set_y(float value) {
  _has_bits_[0] |= 0x00000008u;
  y_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BoundingBox.y)
}

// optional float width = 5;
inline bool BoundingBox::has_width() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void BoundingBox::clear_width() {
  width_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline float BoundingBox::width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BoundingBox.width)
  return width_;
}
inline void BoundingBox::set_width(float value) {
  _has_bits_[0] |= 0x00000010u;
  width_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BoundingBox.width)
}

// optional float height = 6;
inline bool BoundingBox::has_height() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void BoundingBox::clear_height() {
  height_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline float BoundingBox::height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BoundingBox.height)
  return height_;
}
inline void BoundingBox::set_height(float value) {
  _has_bits_[0] |= 0x00000020u;
  height_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BoundingBox.height)
}

// -------------------------------------------------------------------

// AttributeResult

// repeated .vitis.ai.proto.Attribute attribute = 1;
inline int AttributeResult::attribute_size() const {
  return attribute_.size();
}
inline void AttributeResult::clear_attribute() {
  attribute_.Clear();
}
inline ::vitis::ai::proto::Attribute* AttributeResult::mutable_attribute(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.AttributeResult.attribute)
  return attribute_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Attribute >*
AttributeResult::mutable_attribute() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.AttributeResult.attribute)
  return &attribute_;
}
inline const ::vitis::ai::proto::Attribute& AttributeResult::attribute(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.AttributeResult.attribute)
  return attribute_.Get(index);
}
inline ::vitis::ai::proto::Attribute* AttributeResult::add_attribute() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.AttributeResult.attribute)
  return attribute_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Attribute >&
AttributeResult::attribute() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.AttributeResult.attribute)
  return attribute_;
}

// -------------------------------------------------------------------

// LandmarkResult

// optional float score = 1;
inline bool LandmarkResult::has_score() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void LandmarkResult::clear_score() {
  score_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float LandmarkResult::score() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LandmarkResult.score)
  return score_;
}
inline void LandmarkResult::set_score(float value) {
  _has_bits_[0] |= 0x00000001u;
  score_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LandmarkResult.score)
}

// repeated .vitis.ai.proto.Point point = 2;
inline int LandmarkResult::point_size() const {
  return point_.size();
}
inline void LandmarkResult::clear_point() {
  point_.Clear();
}
inline ::vitis::ai::proto::Point* LandmarkResult::mutable_point(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.LandmarkResult.point)
  return point_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
LandmarkResult::mutable_point() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.LandmarkResult.point)
  return &point_;
}
inline const ::vitis::ai::proto::Point& LandmarkResult::point(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LandmarkResult.point)
  return point_.Get(index);
}
inline ::vitis::ai::proto::Point* LandmarkResult::add_point() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.LandmarkResult.point)
  return point_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
LandmarkResult::point() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.LandmarkResult.point)
  return point_;
}

// optional uint32 gender = 3;
inline bool LandmarkResult::has_gender() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void LandmarkResult::clear_gender() {
  gender_ = 0u;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LandmarkResult::gender() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LandmarkResult.gender)
  return gender_;
}
inline void LandmarkResult::set_gender(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _has_bits_[0] |= 0x00000002u;
  gender_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LandmarkResult.gender)
}

// optional uint32 age = 4;
inline bool LandmarkResult::has_age() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void LandmarkResult::clear_age() {
  age_ = 0u;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LandmarkResult::age() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LandmarkResult.age)
  return age_;
}
inline void LandmarkResult::set_age(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _has_bits_[0] |= 0x00000004u;
  age_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LandmarkResult.age)
}

// -------------------------------------------------------------------

// DetectResult

// repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
inline int DetectResult::bounding_box_size() const {
  return bounding_box_.size();
}
inline void DetectResult::clear_bounding_box() {
  bounding_box_.Clear();
}
inline ::vitis::ai::proto::BoundingBox* DetectResult::mutable_bounding_box(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DetectResult.bounding_box)
  return bounding_box_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
DetectResult::mutable_bounding_box() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DetectResult.bounding_box)
  return &bounding_box_;
}
inline const ::vitis::ai::proto::BoundingBox& DetectResult::bounding_box(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DetectResult.bounding_box)
  return bounding_box_.Get(index);
}
inline ::vitis::ai::proto::BoundingBox* DetectResult::add_bounding_box() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DetectResult.bounding_box)
  return bounding_box_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
DetectResult::bounding_box() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DetectResult.bounding_box)
  return bounding_box_;
}

// -------------------------------------------------------------------

// RefineDetResult

// repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
inline int RefineDetResult::bounding_box_size() const {
  return bounding_box_.size();
}
inline void RefineDetResult::clear_bounding_box() {
  bounding_box_.Clear();
}
inline ::vitis::ai::proto::BoundingBox* RefineDetResult::mutable_bounding_box(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RefineDetResult.bounding_box)
  return bounding_box_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
RefineDetResult::mutable_bounding_box() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RefineDetResult.bounding_box)
  return &bounding_box_;
}
inline const ::vitis::ai::proto::BoundingBox& RefineDetResult::bounding_box(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetResult.bounding_box)
  return bounding_box_.Get(index);
}
inline ::vitis::ai::proto::BoundingBox* RefineDetResult::add_bounding_box() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RefineDetResult.bounding_box)
  return bounding_box_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
RefineDetResult::bounding_box() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RefineDetResult.bounding_box)
  return bounding_box_;
}

// -------------------------------------------------------------------

// LineAtt

// optional int32 type = 1;
inline bool LineAtt::has_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void LineAtt::clear_type() {
  type_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 LineAtt::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LineAtt.type)
  return type_;
}
inline void LineAtt::set_type(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  type_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LineAtt.type)
}

// repeated .vitis.ai.proto.Point point = 2;
inline int LineAtt::point_size() const {
  return point_.size();
}
inline void LineAtt::clear_point() {
  point_.Clear();
}
inline ::vitis::ai::proto::Point* LineAtt::mutable_point(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.LineAtt.point)
  return point_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
LineAtt::mutable_point() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.LineAtt.point)
  return &point_;
}
inline const ::vitis::ai::proto::Point& LineAtt::point(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LineAtt.point)
  return point_.Get(index);
}
inline ::vitis::ai::proto::Point* LineAtt::add_point() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.LineAtt.point)
  return point_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
LineAtt::point() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.LineAtt.point)
  return point_;
}

// -------------------------------------------------------------------

// RoadlineResult

// repeated .vitis.ai.proto.LineAtt line_att = 1;
inline int RoadlineResult::line_att_size() const {
  return line_att_.size();
}
inline void RoadlineResult::clear_line_att() {
  line_att_.Clear();
}
inline ::vitis::ai::proto::LineAtt* RoadlineResult::mutable_line_att(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RoadlineResult.line_att)
  return line_att_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::LineAtt >*
RoadlineResult::mutable_line_att() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RoadlineResult.line_att)
  return &line_att_;
}
inline const ::vitis::ai::proto::LineAtt& RoadlineResult::line_att(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineResult.line_att)
  return line_att_.Get(index);
}
inline ::vitis::ai::proto::LineAtt* RoadlineResult::add_line_att() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RoadlineResult.line_att)
  return line_att_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::LineAtt >&
RoadlineResult::line_att() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RoadlineResult.line_att)
  return line_att_;
}

// -------------------------------------------------------------------

// Score

// optional int32 index = 1;
inline bool Score::has_index() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Score::clear_index() {
  index_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 Score::index() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Score.index)
  return index_;
}
inline void Score::set_index(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  index_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Score.index)
}

// optional float score = 2;
inline bool Score::has_score() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Score::clear_score() {
  score_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float Score::score() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Score.score)
  return score_;
}
inline void Score::set_score(float value) {
  _has_bits_[0] |= 0x00000002u;
  score_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Score.score)
}

// -------------------------------------------------------------------

// ClassificationResult

// repeated .vitis.ai.proto.Score score = 1;
inline int ClassificationResult::score_size() const {
  return score_.size();
}
inline void ClassificationResult::clear_score() {
  score_.Clear();
}
inline ::vitis::ai::proto::Score* ClassificationResult::mutable_score(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.ClassificationResult.score)
  return score_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Score >*
ClassificationResult::mutable_score() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.ClassificationResult.score)
  return &score_;
}
inline const ::vitis::ai::proto::Score& ClassificationResult::score(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationResult.score)
  return score_.Get(index);
}
inline ::vitis::ai::proto::Score* ClassificationResult::add_score() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.ClassificationResult.score)
  return score_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Score >&
ClassificationResult::score() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.ClassificationResult.score)
  return score_;
}

// -------------------------------------------------------------------

// FaceLandmarkResult

// repeated .vitis.ai.proto.Point point = 1;
inline int FaceLandmarkResult::point_size() const {
  return point_.size();
}
inline void FaceLandmarkResult::clear_point() {
  point_.Clear();
}
inline ::vitis::ai::proto::Point* FaceLandmarkResult::mutable_point(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceLandmarkResult.point)
  return point_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
FaceLandmarkResult::mutable_point() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceLandmarkResult.point)
  return &point_;
}
inline const ::vitis::ai::proto::Point& FaceLandmarkResult::point(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceLandmarkResult.point)
  return point_.Get(index);
}
inline ::vitis::ai::proto::Point* FaceLandmarkResult::add_point() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceLandmarkResult.point)
  return point_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
FaceLandmarkResult::point() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceLandmarkResult.point)
  return point_;
}

// -------------------------------------------------------------------

// PlateDetectResult

// optional .vitis.ai.proto.BoundingBox bounding_box = 1;
inline bool PlateDetectResult::has_bounding_box() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PlateDetectResult::clear_bounding_box() {
  if (bounding_box_ != nullptr) bounding_box_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::vitis::ai::proto::BoundingBox& PlateDetectResult::bounding_box() const {
  const ::vitis::ai::proto::BoundingBox* p = bounding_box_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateDetectResult.bounding_box)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::BoundingBox*>(
      &::vitis::ai::proto::_BoundingBox_default_instance_);
}
inline ::vitis::ai::proto::BoundingBox* PlateDetectResult::release_bounding_box() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateDetectResult.bounding_box)
  _has_bits_[0] &= ~0x00000001u;
  ::vitis::ai::proto::BoundingBox* temp = bounding_box_;
  bounding_box_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::BoundingBox* PlateDetectResult::mutable_bounding_box() {
  _has_bits_[0] |= 0x00000001u;
  if (bounding_box_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::BoundingBox>(GetArenaNoVirtual());
    bounding_box_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateDetectResult.bounding_box)
  return bounding_box_;
}
inline void PlateDetectResult::set_allocated_bounding_box(::vitis::ai::proto::BoundingBox* bounding_box) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete bounding_box_;
  }
  if (bounding_box) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      bounding_box = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bounding_box, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  bounding_box_ = bounding_box;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateDetectResult.bounding_box)
}

// -------------------------------------------------------------------

// PlateNumResult

// optional string plate_number = 1;
inline bool PlateNumResult::has_plate_number() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PlateNumResult::clear_plate_number() {
  plate_number_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& PlateNumResult::plate_number() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateNumResult.plate_number)
  return plate_number_.GetNoArena();
}
inline void PlateNumResult::set_plate_number(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  plate_number_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlateNumResult.plate_number)
}
inline void PlateNumResult::set_plate_number(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  plate_number_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.PlateNumResult.plate_number)
}
inline void PlateNumResult::set_plate_number(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  plate_number_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.PlateNumResult.plate_number)
}
inline void PlateNumResult::set_plate_number(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  plate_number_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.PlateNumResult.plate_number)
}
inline std::string* PlateNumResult::mutable_plate_number() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateNumResult.plate_number)
  return plate_number_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* PlateNumResult::release_plate_number() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateNumResult.plate_number)
  if (!has_plate_number()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return plate_number_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void PlateNumResult::set_allocated_plate_number(std::string* plate_number) {
  if (plate_number != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  plate_number_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), plate_number);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateNumResult.plate_number)
}

// optional string plate_color = 2;
inline bool PlateNumResult::has_plate_color() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PlateNumResult::clear_plate_color() {
  plate_color_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& PlateNumResult::plate_color() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateNumResult.plate_color)
  return plate_color_.GetNoArena();
}
inline void PlateNumResult::set_plate_color(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  plate_color_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlateNumResult.plate_color)
}
inline void PlateNumResult::set_plate_color(std::string&& value) {
  _has_bits_[0] |= 0x00000002u;
  plate_color_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.PlateNumResult.plate_color)
}
inline void PlateNumResult::set_plate_color(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000002u;
  plate_color_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.PlateNumResult.plate_color)
}
inline void PlateNumResult::set_plate_color(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000002u;
  plate_color_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.PlateNumResult.plate_color)
}
inline std::string* PlateNumResult::mutable_plate_color() {
  _has_bits_[0] |= 0x00000002u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateNumResult.plate_color)
  return plate_color_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* PlateNumResult::release_plate_color() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateNumResult.plate_color)
  if (!has_plate_color()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  return plate_color_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void PlateNumResult::set_allocated_plate_color(std::string* plate_color) {
  if (plate_color != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  plate_color_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), plate_color);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateNumResult.plate_color)
}

// -------------------------------------------------------------------

// PlateRecogResult

// optional .vitis.ai.proto.BoundingBox bounding_box = 1;
inline bool PlateRecogResult::has_bounding_box() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PlateRecogResult::clear_bounding_box() {
  if (bounding_box_ != nullptr) bounding_box_->Clear();
  _has_bits_[0] &= ~0x00000004u;
}
inline const ::vitis::ai::proto::BoundingBox& PlateRecogResult::bounding_box() const {
  const ::vitis::ai::proto::BoundingBox* p = bounding_box_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateRecogResult.bounding_box)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::BoundingBox*>(
      &::vitis::ai::proto::_BoundingBox_default_instance_);
}
inline ::vitis::ai::proto::BoundingBox* PlateRecogResult::release_bounding_box() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateRecogResult.bounding_box)
  _has_bits_[0] &= ~0x00000004u;
  ::vitis::ai::proto::BoundingBox* temp = bounding_box_;
  bounding_box_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::BoundingBox* PlateRecogResult::mutable_bounding_box() {
  _has_bits_[0] |= 0x00000004u;
  if (bounding_box_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::BoundingBox>(GetArenaNoVirtual());
    bounding_box_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateRecogResult.bounding_box)
  return bounding_box_;
}
inline void PlateRecogResult::set_allocated_bounding_box(::vitis::ai::proto::BoundingBox* bounding_box) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete bounding_box_;
  }
  if (bounding_box) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      bounding_box = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bounding_box, submessage_arena);
    }
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  bounding_box_ = bounding_box;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateRecogResult.bounding_box)
}

// optional string plate_number = 2;
inline bool PlateRecogResult::has_plate_number() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PlateRecogResult::clear_plate_number() {
  plate_number_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& PlateRecogResult::plate_number() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateRecogResult.plate_number)
  return plate_number_.GetNoArena();
}
inline void PlateRecogResult::set_plate_number(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  plate_number_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlateRecogResult.plate_number)
}
inline void PlateRecogResult::set_plate_number(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  plate_number_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.PlateRecogResult.plate_number)
}
inline void PlateRecogResult::set_plate_number(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  plate_number_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.PlateRecogResult.plate_number)
}
inline void PlateRecogResult::set_plate_number(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  plate_number_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.PlateRecogResult.plate_number)
}
inline std::string* PlateRecogResult::mutable_plate_number() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateRecogResult.plate_number)
  return plate_number_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* PlateRecogResult::release_plate_number() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateRecogResult.plate_number)
  if (!has_plate_number()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return plate_number_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void PlateRecogResult::set_allocated_plate_number(std::string* plate_number) {
  if (plate_number != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  plate_number_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), plate_number);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateRecogResult.plate_number)
}

// optional string plate_color = 3;
inline bool PlateRecogResult::has_plate_color() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PlateRecogResult::clear_plate_color() {
  plate_color_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& PlateRecogResult::plate_color() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateRecogResult.plate_color)
  return plate_color_.GetNoArena();
}
inline void PlateRecogResult::set_plate_color(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  plate_color_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlateRecogResult.plate_color)
}
inline void PlateRecogResult::set_plate_color(std::string&& value) {
  _has_bits_[0] |= 0x00000002u;
  plate_color_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:vitis.ai.proto.PlateRecogResult.plate_color)
}
inline void PlateRecogResult::set_plate_color(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000002u;
  plate_color_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.PlateRecogResult.plate_color)
}
inline void PlateRecogResult::set_plate_color(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000002u;
  plate_color_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.PlateRecogResult.plate_color)
}
inline std::string* PlateRecogResult::mutable_plate_color() {
  _has_bits_[0] |= 0x00000002u;
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateRecogResult.plate_color)
  return plate_color_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* PlateRecogResult::release_plate_color() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateRecogResult.plate_color)
  if (!has_plate_color()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  return plate_color_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void PlateRecogResult::set_allocated_plate_color(std::string* plate_color) {
  if (plate_color != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  plate_color_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), plate_color);
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateRecogResult.plate_color)
}

// -------------------------------------------------------------------

// PoseDetectResult

// optional .vitis.ai.proto.Point right_shoulder = 1;
inline bool PoseDetectResult::has_right_shoulder() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PoseDetectResult::clear_right_shoulder() {
  if (right_shoulder_ != nullptr) right_shoulder_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_shoulder() const {
  const ::vitis::ai::proto::Point* p = right_shoulder_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_shoulder)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_shoulder() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_shoulder)
  _has_bits_[0] &= ~0x00000001u;
  ::vitis::ai::proto::Point* temp = right_shoulder_;
  right_shoulder_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_shoulder() {
  _has_bits_[0] |= 0x00000001u;
  if (right_shoulder_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    right_shoulder_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_shoulder)
  return right_shoulder_;
}
inline void PoseDetectResult::set_allocated_right_shoulder(::vitis::ai::proto::Point* right_shoulder) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete right_shoulder_;
  }
  if (right_shoulder) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      right_shoulder = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_shoulder, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  right_shoulder_ = right_shoulder;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_shoulder)
}

// optional .vitis.ai.proto.Point right_elbow = 2;
inline bool PoseDetectResult::has_right_elbow() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PoseDetectResult::clear_right_elbow() {
  if (right_elbow_ != nullptr) right_elbow_->Clear();
  _has_bits_[0] &= ~0x00000002u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_elbow() const {
  const ::vitis::ai::proto::Point* p = right_elbow_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_elbow)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_elbow() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_elbow)
  _has_bits_[0] &= ~0x00000002u;
  ::vitis::ai::proto::Point* temp = right_elbow_;
  right_elbow_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_elbow() {
  _has_bits_[0] |= 0x00000002u;
  if (right_elbow_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    right_elbow_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_elbow)
  return right_elbow_;
}
inline void PoseDetectResult::set_allocated_right_elbow(::vitis::ai::proto::Point* right_elbow) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete right_elbow_;
  }
  if (right_elbow) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      right_elbow = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_elbow, submessage_arena);
    }
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  right_elbow_ = right_elbow;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_elbow)
}

// optional .vitis.ai.proto.Point right_wrist = 3;
inline bool PoseDetectResult::has_right_wrist() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PoseDetectResult::clear_right_wrist() {
  if (right_wrist_ != nullptr) right_wrist_->Clear();
  _has_bits_[0] &= ~0x00000004u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_wrist() const {
  const ::vitis::ai::proto::Point* p = right_wrist_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_wrist)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_wrist() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_wrist)
  _has_bits_[0] &= ~0x00000004u;
  ::vitis::ai::proto::Point* temp = right_wrist_;
  right_wrist_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_wrist() {
  _has_bits_[0] |= 0x00000004u;
  if (right_wrist_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    right_wrist_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_wrist)
  return right_wrist_;
}
inline void PoseDetectResult::set_allocated_right_wrist(::vitis::ai::proto::Point* right_wrist) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete right_wrist_;
  }
  if (right_wrist) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      right_wrist = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_wrist, submessage_arena);
    }
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  right_wrist_ = right_wrist;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_wrist)
}

// optional .vitis.ai.proto.Point left_shoulder = 4;
inline bool PoseDetectResult::has_left_shoulder() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PoseDetectResult::clear_left_shoulder() {
  if (left_shoulder_ != nullptr) left_shoulder_->Clear();
  _has_bits_[0] &= ~0x00000008u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_shoulder() const {
  const ::vitis::ai::proto::Point* p = left_shoulder_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_shoulder)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_shoulder() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_shoulder)
  _has_bits_[0] &= ~0x00000008u;
  ::vitis::ai::proto::Point* temp = left_shoulder_;
  left_shoulder_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_shoulder() {
  _has_bits_[0] |= 0x00000008u;
  if (left_shoulder_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    left_shoulder_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_shoulder)
  return left_shoulder_;
}
inline void PoseDetectResult::set_allocated_left_shoulder(::vitis::ai::proto::Point* left_shoulder) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete left_shoulder_;
  }
  if (left_shoulder) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      left_shoulder = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_shoulder, submessage_arena);
    }
    _has_bits_[0] |= 0x00000008u;
  } else {
    _has_bits_[0] &= ~0x00000008u;
  }
  left_shoulder_ = left_shoulder;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_shoulder)
}

// optional .vitis.ai.proto.Point left_elbow = 5;
inline bool PoseDetectResult::has_left_elbow() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PoseDetectResult::clear_left_elbow() {
  if (left_elbow_ != nullptr) left_elbow_->Clear();
  _has_bits_[0] &= ~0x00000010u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_elbow() const {
  const ::vitis::ai::proto::Point* p = left_elbow_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_elbow)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_elbow() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_elbow)
  _has_bits_[0] &= ~0x00000010u;
  ::vitis::ai::proto::Point* temp = left_elbow_;
  left_elbow_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_elbow() {
  _has_bits_[0] |= 0x00000010u;
  if (left_elbow_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    left_elbow_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_elbow)
  return left_elbow_;
}
inline void PoseDetectResult::set_allocated_left_elbow(::vitis::ai::proto::Point* left_elbow) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete left_elbow_;
  }
  if (left_elbow) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      left_elbow = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_elbow, submessage_arena);
    }
    _has_bits_[0] |= 0x00000010u;
  } else {
    _has_bits_[0] &= ~0x00000010u;
  }
  left_elbow_ = left_elbow;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_elbow)
}

// optional .vitis.ai.proto.Point left_wrist = 6;
inline bool PoseDetectResult::has_left_wrist() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PoseDetectResult::clear_left_wrist() {
  if (left_wrist_ != nullptr) left_wrist_->Clear();
  _has_bits_[0] &= ~0x00000020u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_wrist() const {
  const ::vitis::ai::proto::Point* p = left_wrist_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_wrist)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_wrist() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_wrist)
  _has_bits_[0] &= ~0x00000020u;
  ::vitis::ai::proto::Point* temp = left_wrist_;
  left_wrist_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_wrist() {
  _has_bits_[0] |= 0x00000020u;
  if (left_wrist_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    left_wrist_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_wrist)
  return left_wrist_;
}
inline void PoseDetectResult::set_allocated_left_wrist(::vitis::ai::proto::Point* left_wrist) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete left_wrist_;
  }
  if (left_wrist) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      left_wrist = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_wrist, submessage_arena);
    }
    _has_bits_[0] |= 0x00000020u;
  } else {
    _has_bits_[0] &= ~0x00000020u;
  }
  left_wrist_ = left_wrist;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_wrist)
}

// optional .vitis.ai.proto.Point right_hip = 7;
inline bool PoseDetectResult::has_right_hip() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void PoseDetectResult::clear_right_hip() {
  if (right_hip_ != nullptr) right_hip_->Clear();
  _has_bits_[0] &= ~0x00000040u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_hip() const {
  const ::vitis::ai::proto::Point* p = right_hip_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_hip)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_hip() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_hip)
  _has_bits_[0] &= ~0x00000040u;
  ::vitis::ai::proto::Point* temp = right_hip_;
  right_hip_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_hip() {
  _has_bits_[0] |= 0x00000040u;
  if (right_hip_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    right_hip_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_hip)
  return right_hip_;
}
inline void PoseDetectResult::set_allocated_right_hip(::vitis::ai::proto::Point* right_hip) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete right_hip_;
  }
  if (right_hip) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      right_hip = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_hip, submessage_arena);
    }
    _has_bits_[0] |= 0x00000040u;
  } else {
    _has_bits_[0] &= ~0x00000040u;
  }
  right_hip_ = right_hip;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_hip)
}

// optional .vitis.ai.proto.Point right_knee = 8;
inline bool PoseDetectResult::has_right_knee() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void PoseDetectResult::clear_right_knee() {
  if (right_knee_ != nullptr) right_knee_->Clear();
  _has_bits_[0] &= ~0x00000080u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_knee() const {
  const ::vitis::ai::proto::Point* p = right_knee_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_knee)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_knee() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_knee)
  _has_bits_[0] &= ~0x00000080u;
  ::vitis::ai::proto::Point* temp = right_knee_;
  right_knee_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_knee() {
  _has_bits_[0] |= 0x00000080u;
  if (right_knee_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    right_knee_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_knee)
  return right_knee_;
}
inline void PoseDetectResult::set_allocated_right_knee(::vitis::ai::proto::Point* right_knee) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete right_knee_;
  }
  if (right_knee) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      right_knee = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_knee, submessage_arena);
    }
    _has_bits_[0] |= 0x00000080u;
  } else {
    _has_bits_[0] &= ~0x00000080u;
  }
  right_knee_ = right_knee;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_knee)
}

// optional .vitis.ai.proto.Point right_ankle = 9;
inline bool PoseDetectResult::has_right_ankle() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void PoseDetectResult::clear_right_ankle() {
  if (right_ankle_ != nullptr) right_ankle_->Clear();
  _has_bits_[0] &= ~0x00000100u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_ankle() const {
  const ::vitis::ai::proto::Point* p = right_ankle_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_ankle)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_ankle() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_ankle)
  _has_bits_[0] &= ~0x00000100u;
  ::vitis::ai::proto::Point* temp = right_ankle_;
  right_ankle_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_ankle() {
  _has_bits_[0] |= 0x00000100u;
  if (right_ankle_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    right_ankle_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_ankle)
  return right_ankle_;
}
inline void PoseDetectResult::set_allocated_right_ankle(::vitis::ai::proto::Point* right_ankle) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete right_ankle_;
  }
  if (right_ankle) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      right_ankle = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_ankle, submessage_arena);
    }
    _has_bits_[0] |= 0x00000100u;
  } else {
    _has_bits_[0] &= ~0x00000100u;
  }
  right_ankle_ = right_ankle;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_ankle)
}

// optional .vitis.ai.proto.Point left_hip = 10;
inline bool PoseDetectResult::has_left_hip() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void PoseDetectResult::clear_left_hip() {
  if (left_hip_ != nullptr) left_hip_->Clear();
  _has_bits_[0] &= ~0x00000200u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_hip() const {
  const ::vitis::ai::proto::Point* p = left_hip_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_hip)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_hip() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_hip)
  _has_bits_[0] &= ~0x00000200u;
  ::vitis::ai::proto::Point* temp = left_hip_;
  left_hip_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_hip() {
  _has_bits_[0] |= 0x00000200u;
  if (left_hip_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    left_hip_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_hip)
  return left_hip_;
}
inline void PoseDetectResult::set_allocated_left_hip(::vitis::ai::proto::Point* left_hip) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete left_hip_;
  }
  if (left_hip) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      left_hip = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_hip, submessage_arena);
    }
    _has_bits_[0] |= 0x00000200u;
  } else {
    _has_bits_[0] &= ~0x00000200u;
  }
  left_hip_ = left_hip;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_hip)
}

// optional .vitis.ai.proto.Point left_knee = 11;
inline bool PoseDetectResult::has_left_knee() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void PoseDetectResult::clear_left_knee() {
  if (left_knee_ != nullptr) left_knee_->Clear();
  _has_bits_[0] &= ~0x00000400u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_knee() const {
  const ::vitis::ai::proto::Point* p = left_knee_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_knee)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_knee() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_knee)
  _has_bits_[0] &= ~0x00000400u;
  ::vitis::ai::proto::Point* temp = left_knee_;
  left_knee_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_knee() {
  _has_bits_[0] |= 0x00000400u;
  if (left_knee_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    left_knee_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_knee)
  return left_knee_;
}
inline void PoseDetectResult::set_allocated_left_knee(::vitis::ai::proto::Point* left_knee) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete left_knee_;
  }
  if (left_knee) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      left_knee = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_knee, submessage_arena);
    }
    _has_bits_[0] |= 0x00000400u;
  } else {
    _has_bits_[0] &= ~0x00000400u;
  }
  left_knee_ = left_knee;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_knee)
}

// optional .vitis.ai.proto.Point left_ankle = 12;
inline bool PoseDetectResult::has_left_ankle() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void PoseDetectResult::clear_left_ankle() {
  if (left_ankle_ != nullptr) left_ankle_->Clear();
  _has_bits_[0] &= ~0x00000800u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_ankle() const {
  const ::vitis::ai::proto::Point* p = left_ankle_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_ankle)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_ankle() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_ankle)
  _has_bits_[0] &= ~0x00000800u;
  ::vitis::ai::proto::Point* temp = left_ankle_;
  left_ankle_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_ankle() {
  _has_bits_[0] |= 0x00000800u;
  if (left_ankle_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    left_ankle_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_ankle)
  return left_ankle_;
}
inline void PoseDetectResult::set_allocated_left_ankle(::vitis::ai::proto::Point* left_ankle) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete left_ankle_;
  }
  if (left_ankle) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      left_ankle = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_ankle, submessage_arena);
    }
    _has_bits_[0] |= 0x00000800u;
  } else {
    _has_bits_[0] &= ~0x00000800u;
  }
  left_ankle_ = left_ankle;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_ankle)
}

// optional .vitis.ai.proto.Point head = 13;
inline bool PoseDetectResult::has_head() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void PoseDetectResult::clear_head() {
  if (head_ != nullptr) head_->Clear();
  _has_bits_[0] &= ~0x00001000u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::head() const {
  const ::vitis::ai::proto::Point* p = head_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.head)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_head() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.head)
  _has_bits_[0] &= ~0x00001000u;
  ::vitis::ai::proto::Point* temp = head_;
  head_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_head() {
  _has_bits_[0] |= 0x00001000u;
  if (head_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    head_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.head)
  return head_;
}
inline void PoseDetectResult::set_allocated_head(::vitis::ai::proto::Point* head) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete head_;
  }
  if (head) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      head = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, head, submessage_arena);
    }
    _has_bits_[0] |= 0x00001000u;
  } else {
    _has_bits_[0] &= ~0x00001000u;
  }
  head_ = head;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.head)
}

// optional .vitis.ai.proto.Point neck = 14;
inline bool PoseDetectResult::has_neck() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void PoseDetectResult::clear_neck() {
  if (neck_ != nullptr) neck_->Clear();
  _has_bits_[0] &= ~0x00002000u;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::neck() const {
  const ::vitis::ai::proto::Point* p = neck_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.neck)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::Point*>(
      &::vitis::ai::proto::_Point_default_instance_);
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_neck() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.neck)
  _has_bits_[0] &= ~0x00002000u;
  ::vitis::ai::proto::Point* temp = neck_;
  neck_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_neck() {
  _has_bits_[0] |= 0x00002000u;
  if (neck_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaNoVirtual());
    neck_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.neck)
  return neck_;
}
inline void PoseDetectResult::set_allocated_neck(::vitis::ai::proto::Point* neck) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete neck_;
  }
  if (neck) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      neck = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, neck, submessage_arena);
    }
    _has_bits_[0] |= 0x00002000u;
  } else {
    _has_bits_[0] &= ~0x00002000u;
  }
  neck_ = neck;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.neck)
}

// -------------------------------------------------------------------

// FaceFeatureFloatResult

// repeated float feature = 1;
inline int FaceFeatureFloatResult::feature_size() const {
  return feature_.size();
}
inline void FaceFeatureFloatResult::clear_feature() {
  feature_.Clear();
}
inline float FaceFeatureFloatResult::feature(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceFeatureFloatResult.feature)
  return feature_.Get(index);
}
inline void FaceFeatureFloatResult::set_feature(int index, float value) {
  feature_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceFeatureFloatResult.feature)
}
inline void FaceFeatureFloatResult::add_feature(float value) {
  feature_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceFeatureFloatResult.feature)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
FaceFeatureFloatResult::feature() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceFeatureFloatResult.feature)
  return feature_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
FaceFeatureFloatResult::mutable_feature() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceFeatureFloatResult.feature)
  return &feature_;
}

// -------------------------------------------------------------------

// FaceFeatureFixedResult

// repeated int32 feature = 1;
inline int FaceFeatureFixedResult::feature_size() const {
  return feature_.size();
}
inline void FaceFeatureFixedResult::clear_feature() {
  feature_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 FaceFeatureFixedResult::feature(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceFeatureFixedResult.feature)
  return feature_.Get(index);
}
inline void FaceFeatureFixedResult::set_feature(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  feature_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceFeatureFixedResult.feature)
}
inline void FaceFeatureFixedResult::add_feature(::PROTOBUF_NAMESPACE_ID::int32 value) {
  feature_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceFeatureFixedResult.feature)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
FaceFeatureFixedResult::feature() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceFeatureFixedResult.feature)
  return feature_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
FaceFeatureFixedResult::mutable_feature() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceFeatureFixedResult.feature)
  return &feature_;
}

// -------------------------------------------------------------------

// FaceDetectRecogFloatResult

// repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
inline int FaceDetectRecogFloatResult::bounding_box_size() const {
  return bounding_box_.size();
}
inline void FaceDetectRecogFloatResult::clear_bounding_box() {
  bounding_box_.Clear();
}
inline ::vitis::ai::proto::BoundingBox* FaceDetectRecogFloatResult::mutable_bounding_box(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceDetectRecogFloatResult.bounding_box)
  return bounding_box_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
FaceDetectRecogFloatResult::mutable_bounding_box() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceDetectRecogFloatResult.bounding_box)
  return &bounding_box_;
}
inline const ::vitis::ai::proto::BoundingBox& FaceDetectRecogFloatResult::bounding_box(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceDetectRecogFloatResult.bounding_box)
  return bounding_box_.Get(index);
}
inline ::vitis::ai::proto::BoundingBox* FaceDetectRecogFloatResult::add_bounding_box() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceDetectRecogFloatResult.bounding_box)
  return bounding_box_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
FaceDetectRecogFloatResult::bounding_box() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceDetectRecogFloatResult.bounding_box)
  return bounding_box_;
}

// repeated .vitis.ai.proto.FaceFeatureFloatResult float_feature = 2;
inline int FaceDetectRecogFloatResult::float_feature_size() const {
  return float_feature_.size();
}
inline void FaceDetectRecogFloatResult::clear_float_feature() {
  float_feature_.Clear();
}
inline ::vitis::ai::proto::FaceFeatureFloatResult* FaceDetectRecogFloatResult::mutable_float_feature(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceDetectRecogFloatResult.float_feature)
  return float_feature_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureFloatResult >*
FaceDetectRecogFloatResult::mutable_float_feature() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceDetectRecogFloatResult.float_feature)
  return &float_feature_;
}
inline const ::vitis::ai::proto::FaceFeatureFloatResult& FaceDetectRecogFloatResult::float_feature(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceDetectRecogFloatResult.float_feature)
  return float_feature_.Get(index);
}
inline ::vitis::ai::proto::FaceFeatureFloatResult* FaceDetectRecogFloatResult::add_float_feature() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceDetectRecogFloatResult.float_feature)
  return float_feature_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureFloatResult >&
FaceDetectRecogFloatResult::float_feature() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceDetectRecogFloatResult.float_feature)
  return float_feature_;
}

// -------------------------------------------------------------------

// FaceDetectRecogFixedResult

// repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
inline int FaceDetectRecogFixedResult::bounding_box_size() const {
  return bounding_box_.size();
}
inline void FaceDetectRecogFixedResult::clear_bounding_box() {
  bounding_box_.Clear();
}
inline ::vitis::ai::proto::BoundingBox* FaceDetectRecogFixedResult::mutable_bounding_box(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceDetectRecogFixedResult.bounding_box)
  return bounding_box_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
FaceDetectRecogFixedResult::mutable_bounding_box() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceDetectRecogFixedResult.bounding_box)
  return &bounding_box_;
}
inline const ::vitis::ai::proto::BoundingBox& FaceDetectRecogFixedResult::bounding_box(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceDetectRecogFixedResult.bounding_box)
  return bounding_box_.Get(index);
}
inline ::vitis::ai::proto::BoundingBox* FaceDetectRecogFixedResult::add_bounding_box() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceDetectRecogFixedResult.bounding_box)
  return bounding_box_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
FaceDetectRecogFixedResult::bounding_box() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceDetectRecogFixedResult.bounding_box)
  return bounding_box_;
}

// optional float scale = 2;
inline bool FaceDetectRecogFixedResult::has_scale() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void FaceDetectRecogFixedResult::clear_scale() {
  scale_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float FaceDetectRecogFixedResult::scale() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceDetectRecogFixedResult.scale)
  return scale_;
}
inline void FaceDetectRecogFixedResult::set_scale(float value) {
  _has_bits_[0] |= 0x00000001u;
  scale_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceDetectRecogFixedResult.scale)
}

// repeated .vitis.ai.proto.FaceFeatureFixedResult fixed_feature = 3;
inline int FaceDetectRecogFixedResult::fixed_feature_size() const {
  return fixed_feature_.size();
}
inline void FaceDetectRecogFixedResult::clear_fixed_feature() {
  fixed_feature_.Clear();
}
inline ::vitis::ai::proto::FaceFeatureFixedResult* FaceDetectRecogFixedResult::mutable_fixed_feature(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceDetectRecogFixedResult.fixed_feature)
  return fixed_feature_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureFixedResult >*
FaceDetectRecogFixedResult::mutable_fixed_feature() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceDetectRecogFixedResult.fixed_feature)
  return &fixed_feature_;
}
inline const ::vitis::ai::proto::FaceFeatureFixedResult& FaceDetectRecogFixedResult::fixed_feature(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceDetectRecogFixedResult.fixed_feature)
  return fixed_feature_.Get(index);
}
inline ::vitis::ai::proto::FaceFeatureFixedResult* FaceDetectRecogFixedResult::add_fixed_feature() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceDetectRecogFixedResult.fixed_feature)
  return fixed_feature_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureFixedResult >&
FaceDetectRecogFixedResult::fixed_feature() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceDetectRecogFixedResult.fixed_feature)
  return fixed_feature_;
}

// -------------------------------------------------------------------

// SegmetationResult

// repeated uint32 data = 1;
inline int SegmetationResult::data_size() const {
  return data_.size();
}
inline void SegmetationResult::clear_data() {
  data_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 SegmetationResult::data(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegmetationResult.data)
  return data_.Get(index);
}
inline void SegmetationResult::set_data(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value) {
  data_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegmetationResult.data)
}
inline void SegmetationResult::add_data(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  data_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SegmetationResult.data)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
SegmetationResult::data() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SegmetationResult.data)
  return data_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
SegmetationResult::mutable_data() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SegmetationResult.data)
  return &data_;
}

// -------------------------------------------------------------------

// MedicalSegmetationResult

// repeated .vitis.ai.proto.SegmetationResult segmentation = 1;
inline int MedicalSegmetationResult::segmentation_size() const {
  return segmentation_.size();
}
inline void MedicalSegmetationResult::clear_segmentation() {
  segmentation_.Clear();
}
inline ::vitis::ai::proto::SegmetationResult* MedicalSegmetationResult::mutable_segmentation(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MedicalSegmetationResult.segmentation)
  return segmentation_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SegmetationResult >*
MedicalSegmetationResult::mutable_segmentation() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalSegmetationResult.segmentation)
  return &segmentation_;
}
inline const ::vitis::ai::proto::SegmetationResult& MedicalSegmetationResult::segmentation(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalSegmetationResult.segmentation)
  return segmentation_.Get(index);
}
inline ::vitis::ai::proto::SegmetationResult* MedicalSegmetationResult::add_segmentation() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalSegmetationResult.segmentation)
  return segmentation_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SegmetationResult >&
MedicalSegmetationResult::segmentation() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalSegmetationResult.segmentation)
  return segmentation_;
}

// -------------------------------------------------------------------

// VehicleResult

// optional int32 label = 1;
inline bool VehicleResult::has_label() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void VehicleResult::clear_label() {
  label_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 VehicleResult::label() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.label)
  return label_;
}
inline void VehicleResult::set_label(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000001u;
  label_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.label)
}

// optional float score = 2;
inline bool VehicleResult::has_score() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void VehicleResult::clear_score() {
  score_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float VehicleResult::score() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.score)
  return score_;
}
inline void VehicleResult::set_score(float value) {
  _has_bits_[0] |= 0x00000002u;
  score_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.score)
}

// optional float x = 3;
inline bool VehicleResult::has_x() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void VehicleResult::clear_x() {
  x_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float VehicleResult::x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.x)
  return x_;
}
inline void VehicleResult::set_x(float value) {
  _has_bits_[0] |= 0x00000004u;
  x_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.x)
}

// optional float y = 4;
inline bool VehicleResult::has_y() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void VehicleResult::clear_y() {
  y_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float VehicleResult::y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.y)
  return y_;
}
inline void VehicleResult::set_y(float value) {
  _has_bits_[0] |= 0x00000008u;
  y_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.y)
}

// optional float width = 5;
inline bool VehicleResult::has_width() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void VehicleResult::clear_width() {
  width_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline float VehicleResult::width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.width)
  return width_;
}
inline void VehicleResult::set_width(float value) {
  _has_bits_[0] |= 0x00000010u;
  width_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.width)
}

// optional float height = 6;
inline bool VehicleResult::has_height() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void VehicleResult::clear_height() {
  height_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline float VehicleResult::height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.height)
  return height_;
}
inline void VehicleResult::set_height(float value) {
  _has_bits_[0] |= 0x00000020u;
  height_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.height)
}

// optional float angle = 7;
inline bool VehicleResult::has_angle() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void VehicleResult::clear_angle() {
  angle_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline float VehicleResult::angle() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.angle)
  return angle_;
}
inline void VehicleResult::set_angle(float value) {
  _has_bits_[0] |= 0x00000040u;
  angle_ = value;
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.angle)
}

// -------------------------------------------------------------------

// MultiTaskResult

// optional .vitis.ai.proto.SegmetationResult segmentation = 1;
inline bool MultiTaskResult::has_segmentation() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MultiTaskResult::clear_segmentation() {
  if (segmentation_ != nullptr) segmentation_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::vitis::ai::proto::SegmetationResult& MultiTaskResult::segmentation() const {
  const ::vitis::ai::proto::SegmetationResult* p = segmentation_;
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskResult.segmentation)
  return p != nullptr ? *p : *reinterpret_cast<const ::vitis::ai::proto::SegmetationResult*>(
      &::vitis::ai::proto::_SegmetationResult_default_instance_);
}
inline ::vitis::ai::proto::SegmetationResult* MultiTaskResult::release_segmentation() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.MultiTaskResult.segmentation)
  _has_bits_[0] &= ~0x00000001u;
  ::vitis::ai::proto::SegmetationResult* temp = segmentation_;
  segmentation_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::SegmetationResult* MultiTaskResult::mutable_segmentation() {
  _has_bits_[0] |= 0x00000001u;
  if (segmentation_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::SegmetationResult>(GetArenaNoVirtual());
    segmentation_ = p;
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskResult.segmentation)
  return segmentation_;
}
inline void MultiTaskResult::set_allocated_segmentation(::vitis::ai::proto::SegmetationResult* segmentation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete segmentation_;
  }
  if (segmentation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      segmentation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, segmentation, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  segmentation_ = segmentation;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.MultiTaskResult.segmentation)
}

// repeated .vitis.ai.proto.VehicleResult vehicle_reuslt = 2;
inline int MultiTaskResult::vehicle_reuslt_size() const {
  return vehicle_reuslt_.size();
}
inline void MultiTaskResult::clear_vehicle_reuslt() {
  vehicle_reuslt_.Clear();
}
inline ::vitis::ai::proto::VehicleResult* MultiTaskResult::mutable_vehicle_reuslt(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskResult.vehicle_reuslt)
  return vehicle_reuslt_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::VehicleResult >*
MultiTaskResult::mutable_vehicle_reuslt() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskResult.vehicle_reuslt)
  return &vehicle_reuslt_;
}
inline const ::vitis::ai::proto::VehicleResult& MultiTaskResult::vehicle_reuslt(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskResult.vehicle_reuslt)
  return vehicle_reuslt_.Get(index);
}
inline ::vitis::ai::proto::VehicleResult* MultiTaskResult::add_vehicle_reuslt() {
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskResult.vehicle_reuslt)
  return vehicle_reuslt_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::VehicleResult >&
MultiTaskResult::vehicle_reuslt() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskResult.vehicle_reuslt)
  return vehicle_reuslt_;
}

// -------------------------------------------------------------------

// ReidResult

// repeated uint32 data = 1;
inline int ReidResult::data_size() const {
  return data_.size();
}
inline void ReidResult::clear_data() {
  data_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ReidResult::data(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ReidResult.data)
  return data_.Get(index);
}
inline void ReidResult::set_data(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value) {
  data_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ReidResult.data)
}
inline void ReidResult::add_data(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  data_.Add(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.ReidResult.data)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
ReidResult::data() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.ReidResult.data)
  return data_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
ReidResult::mutable_data() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.ReidResult.data)
  return &data_;
}

// -------------------------------------------------------------------

// DpuModelResult

// optional .vitis.ai.proto.LandmarkResult landmark_result = 1;
inline bool DpuModelResult::has_landmark_result() const {
  return dpu_model_result_case() == kLandmarkResult;
}
inline void DpuModelResult::set_has_landmark_result() {
  _oneof_case_[0] = kLandmarkResult;
}
inline void DpuModelResult::clear_landmark_result() {
  if (has_landmark_result()) {
    delete dpu_model_result_.landmark_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::LandmarkResult* DpuModelResult::release_landmark_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.landmark_result)
  if (has_landmark_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::LandmarkResult* temp = dpu_model_result_.landmark_result_;
    dpu_model_result_.landmark_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::LandmarkResult& DpuModelResult::landmark_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.landmark_result)
  return has_landmark_result()
      ? *dpu_model_result_.landmark_result_
      : *reinterpret_cast< ::vitis::ai::proto::LandmarkResult*>(&::vitis::ai::proto::_LandmarkResult_default_instance_);
}
inline ::vitis::ai::proto::LandmarkResult* DpuModelResult::mutable_landmark_result() {
  if (!has_landmark_result()) {
    clear_dpu_model_result();
    set_has_landmark_result();
    dpu_model_result_.landmark_result_ = CreateMaybeMessage< ::vitis::ai::proto::LandmarkResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.landmark_result)
  return dpu_model_result_.landmark_result_;
}

// optional .vitis.ai.proto.DetectResult detect_result = 2;
inline bool DpuModelResult::has_detect_result() const {
  return dpu_model_result_case() == kDetectResult;
}
inline void DpuModelResult::set_has_detect_result() {
  _oneof_case_[0] = kDetectResult;
}
inline void DpuModelResult::clear_detect_result() {
  if (has_detect_result()) {
    delete dpu_model_result_.detect_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::DetectResult* DpuModelResult::release_detect_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.detect_result)
  if (has_detect_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::DetectResult* temp = dpu_model_result_.detect_result_;
    dpu_model_result_.detect_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::DetectResult& DpuModelResult::detect_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.detect_result)
  return has_detect_result()
      ? *dpu_model_result_.detect_result_
      : *reinterpret_cast< ::vitis::ai::proto::DetectResult*>(&::vitis::ai::proto::_DetectResult_default_instance_);
}
inline ::vitis::ai::proto::DetectResult* DpuModelResult::mutable_detect_result() {
  if (!has_detect_result()) {
    clear_dpu_model_result();
    set_has_detect_result();
    dpu_model_result_.detect_result_ = CreateMaybeMessage< ::vitis::ai::proto::DetectResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.detect_result)
  return dpu_model_result_.detect_result_;
}

// optional .vitis.ai.proto.AttributeResult attribute_result = 3;
inline bool DpuModelResult::has_attribute_result() const {
  return dpu_model_result_case() == kAttributeResult;
}
inline void DpuModelResult::set_has_attribute_result() {
  _oneof_case_[0] = kAttributeResult;
}
inline void DpuModelResult::clear_attribute_result() {
  if (has_attribute_result()) {
    delete dpu_model_result_.attribute_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::AttributeResult* DpuModelResult::release_attribute_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.attribute_result)
  if (has_attribute_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::AttributeResult* temp = dpu_model_result_.attribute_result_;
    dpu_model_result_.attribute_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::AttributeResult& DpuModelResult::attribute_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.attribute_result)
  return has_attribute_result()
      ? *dpu_model_result_.attribute_result_
      : *reinterpret_cast< ::vitis::ai::proto::AttributeResult*>(&::vitis::ai::proto::_AttributeResult_default_instance_);
}
inline ::vitis::ai::proto::AttributeResult* DpuModelResult::mutable_attribute_result() {
  if (!has_attribute_result()) {
    clear_dpu_model_result();
    set_has_attribute_result();
    dpu_model_result_.attribute_result_ = CreateMaybeMessage< ::vitis::ai::proto::AttributeResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.attribute_result)
  return dpu_model_result_.attribute_result_;
}

// optional .vitis.ai.proto.RefineDetResult refine_det_result = 4;
inline bool DpuModelResult::has_refine_det_result() const {
  return dpu_model_result_case() == kRefineDetResult;
}
inline void DpuModelResult::set_has_refine_det_result() {
  _oneof_case_[0] = kRefineDetResult;
}
inline void DpuModelResult::clear_refine_det_result() {
  if (has_refine_det_result()) {
    delete dpu_model_result_.refine_det_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::RefineDetResult* DpuModelResult::release_refine_det_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.refine_det_result)
  if (has_refine_det_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::RefineDetResult* temp = dpu_model_result_.refine_det_result_;
    dpu_model_result_.refine_det_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::RefineDetResult& DpuModelResult::refine_det_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.refine_det_result)
  return has_refine_det_result()
      ? *dpu_model_result_.refine_det_result_
      : *reinterpret_cast< ::vitis::ai::proto::RefineDetResult*>(&::vitis::ai::proto::_RefineDetResult_default_instance_);
}
inline ::vitis::ai::proto::RefineDetResult* DpuModelResult::mutable_refine_det_result() {
  if (!has_refine_det_result()) {
    clear_dpu_model_result();
    set_has_refine_det_result();
    dpu_model_result_.refine_det_result_ = CreateMaybeMessage< ::vitis::ai::proto::RefineDetResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.refine_det_result)
  return dpu_model_result_.refine_det_result_;
}

// optional .vitis.ai.proto.ClassificationResult classification_result = 5;
inline bool DpuModelResult::has_classification_result() const {
  return dpu_model_result_case() == kClassificationResult;
}
inline void DpuModelResult::set_has_classification_result() {
  _oneof_case_[0] = kClassificationResult;
}
inline void DpuModelResult::clear_classification_result() {
  if (has_classification_result()) {
    delete dpu_model_result_.classification_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::ClassificationResult* DpuModelResult::release_classification_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.classification_result)
  if (has_classification_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::ClassificationResult* temp = dpu_model_result_.classification_result_;
    dpu_model_result_.classification_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::ClassificationResult& DpuModelResult::classification_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.classification_result)
  return has_classification_result()
      ? *dpu_model_result_.classification_result_
      : *reinterpret_cast< ::vitis::ai::proto::ClassificationResult*>(&::vitis::ai::proto::_ClassificationResult_default_instance_);
}
inline ::vitis::ai::proto::ClassificationResult* DpuModelResult::mutable_classification_result() {
  if (!has_classification_result()) {
    clear_dpu_model_result();
    set_has_classification_result();
    dpu_model_result_.classification_result_ = CreateMaybeMessage< ::vitis::ai::proto::ClassificationResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.classification_result)
  return dpu_model_result_.classification_result_;
}

// optional .vitis.ai.proto.RoadlineResult roadline_result = 6;
inline bool DpuModelResult::has_roadline_result() const {
  return dpu_model_result_case() == kRoadlineResult;
}
inline void DpuModelResult::set_has_roadline_result() {
  _oneof_case_[0] = kRoadlineResult;
}
inline void DpuModelResult::clear_roadline_result() {
  if (has_roadline_result()) {
    delete dpu_model_result_.roadline_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::RoadlineResult* DpuModelResult::release_roadline_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.roadline_result)
  if (has_roadline_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::RoadlineResult* temp = dpu_model_result_.roadline_result_;
    dpu_model_result_.roadline_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::RoadlineResult& DpuModelResult::roadline_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.roadline_result)
  return has_roadline_result()
      ? *dpu_model_result_.roadline_result_
      : *reinterpret_cast< ::vitis::ai::proto::RoadlineResult*>(&::vitis::ai::proto::_RoadlineResult_default_instance_);
}
inline ::vitis::ai::proto::RoadlineResult* DpuModelResult::mutable_roadline_result() {
  if (!has_roadline_result()) {
    clear_dpu_model_result();
    set_has_roadline_result();
    dpu_model_result_.roadline_result_ = CreateMaybeMessage< ::vitis::ai::proto::RoadlineResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.roadline_result)
  return dpu_model_result_.roadline_result_;
}

// optional .vitis.ai.proto.FaceLandmarkResult facelandmark_result = 7;
inline bool DpuModelResult::has_facelandmark_result() const {
  return dpu_model_result_case() == kFacelandmarkResult;
}
inline void DpuModelResult::set_has_facelandmark_result() {
  _oneof_case_[0] = kFacelandmarkResult;
}
inline void DpuModelResult::clear_facelandmark_result() {
  if (has_facelandmark_result()) {
    delete dpu_model_result_.facelandmark_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::FaceLandmarkResult* DpuModelResult::release_facelandmark_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.facelandmark_result)
  if (has_facelandmark_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::FaceLandmarkResult* temp = dpu_model_result_.facelandmark_result_;
    dpu_model_result_.facelandmark_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::FaceLandmarkResult& DpuModelResult::facelandmark_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.facelandmark_result)
  return has_facelandmark_result()
      ? *dpu_model_result_.facelandmark_result_
      : *reinterpret_cast< ::vitis::ai::proto::FaceLandmarkResult*>(&::vitis::ai::proto::_FaceLandmarkResult_default_instance_);
}
inline ::vitis::ai::proto::FaceLandmarkResult* DpuModelResult::mutable_facelandmark_result() {
  if (!has_facelandmark_result()) {
    clear_dpu_model_result();
    set_has_facelandmark_result();
    dpu_model_result_.facelandmark_result_ = CreateMaybeMessage< ::vitis::ai::proto::FaceLandmarkResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.facelandmark_result)
  return dpu_model_result_.facelandmark_result_;
}

// optional .vitis.ai.proto.PlateDetectResult plate_detect_result = 8;
inline bool DpuModelResult::has_plate_detect_result() const {
  return dpu_model_result_case() == kPlateDetectResult;
}
inline void DpuModelResult::set_has_plate_detect_result() {
  _oneof_case_[0] = kPlateDetectResult;
}
inline void DpuModelResult::clear_plate_detect_result() {
  if (has_plate_detect_result()) {
    delete dpu_model_result_.plate_detect_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::PlateDetectResult* DpuModelResult::release_plate_detect_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.plate_detect_result)
  if (has_plate_detect_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::PlateDetectResult* temp = dpu_model_result_.plate_detect_result_;
    dpu_model_result_.plate_detect_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::PlateDetectResult& DpuModelResult::plate_detect_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.plate_detect_result)
  return has_plate_detect_result()
      ? *dpu_model_result_.plate_detect_result_
      : *reinterpret_cast< ::vitis::ai::proto::PlateDetectResult*>(&::vitis::ai::proto::_PlateDetectResult_default_instance_);
}
inline ::vitis::ai::proto::PlateDetectResult* DpuModelResult::mutable_plate_detect_result() {
  if (!has_plate_detect_result()) {
    clear_dpu_model_result();
    set_has_plate_detect_result();
    dpu_model_result_.plate_detect_result_ = CreateMaybeMessage< ::vitis::ai::proto::PlateDetectResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.plate_detect_result)
  return dpu_model_result_.plate_detect_result_;
}

// optional .vitis.ai.proto.PlateNumResult plate_num_result = 9;
inline bool DpuModelResult::has_plate_num_result() const {
  return dpu_model_result_case() == kPlateNumResult;
}
inline void DpuModelResult::set_has_plate_num_result() {
  _oneof_case_[0] = kPlateNumResult;
}
inline void DpuModelResult::clear_plate_num_result() {
  if (has_plate_num_result()) {
    delete dpu_model_result_.plate_num_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::PlateNumResult* DpuModelResult::release_plate_num_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.plate_num_result)
  if (has_plate_num_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::PlateNumResult* temp = dpu_model_result_.plate_num_result_;
    dpu_model_result_.plate_num_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::PlateNumResult& DpuModelResult::plate_num_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.plate_num_result)
  return has_plate_num_result()
      ? *dpu_model_result_.plate_num_result_
      : *reinterpret_cast< ::vitis::ai::proto::PlateNumResult*>(&::vitis::ai::proto::_PlateNumResult_default_instance_);
}
inline ::vitis::ai::proto::PlateNumResult* DpuModelResult::mutable_plate_num_result() {
  if (!has_plate_num_result()) {
    clear_dpu_model_result();
    set_has_plate_num_result();
    dpu_model_result_.plate_num_result_ = CreateMaybeMessage< ::vitis::ai::proto::PlateNumResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.plate_num_result)
  return dpu_model_result_.plate_num_result_;
}

// optional .vitis.ai.proto.PlateRecogResult plate_recog_result = 10;
inline bool DpuModelResult::has_plate_recog_result() const {
  return dpu_model_result_case() == kPlateRecogResult;
}
inline void DpuModelResult::set_has_plate_recog_result() {
  _oneof_case_[0] = kPlateRecogResult;
}
inline void DpuModelResult::clear_plate_recog_result() {
  if (has_plate_recog_result()) {
    delete dpu_model_result_.plate_recog_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::PlateRecogResult* DpuModelResult::release_plate_recog_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.plate_recog_result)
  if (has_plate_recog_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::PlateRecogResult* temp = dpu_model_result_.plate_recog_result_;
    dpu_model_result_.plate_recog_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::PlateRecogResult& DpuModelResult::plate_recog_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.plate_recog_result)
  return has_plate_recog_result()
      ? *dpu_model_result_.plate_recog_result_
      : *reinterpret_cast< ::vitis::ai::proto::PlateRecogResult*>(&::vitis::ai::proto::_PlateRecogResult_default_instance_);
}
inline ::vitis::ai::proto::PlateRecogResult* DpuModelResult::mutable_plate_recog_result() {
  if (!has_plate_recog_result()) {
    clear_dpu_model_result();
    set_has_plate_recog_result();
    dpu_model_result_.plate_recog_result_ = CreateMaybeMessage< ::vitis::ai::proto::PlateRecogResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.plate_recog_result)
  return dpu_model_result_.plate_recog_result_;
}

// optional .vitis.ai.proto.PoseDetectResult pose_detect_result = 11;
inline bool DpuModelResult::has_pose_detect_result() const {
  return dpu_model_result_case() == kPoseDetectResult;
}
inline void DpuModelResult::set_has_pose_detect_result() {
  _oneof_case_[0] = kPoseDetectResult;
}
inline void DpuModelResult::clear_pose_detect_result() {
  if (has_pose_detect_result()) {
    delete dpu_model_result_.pose_detect_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::PoseDetectResult* DpuModelResult::release_pose_detect_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.pose_detect_result)
  if (has_pose_detect_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::PoseDetectResult* temp = dpu_model_result_.pose_detect_result_;
    dpu_model_result_.pose_detect_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::PoseDetectResult& DpuModelResult::pose_detect_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.pose_detect_result)
  return has_pose_detect_result()
      ? *dpu_model_result_.pose_detect_result_
      : *reinterpret_cast< ::vitis::ai::proto::PoseDetectResult*>(&::vitis::ai::proto::_PoseDetectResult_default_instance_);
}
inline ::vitis::ai::proto::PoseDetectResult* DpuModelResult::mutable_pose_detect_result() {
  if (!has_pose_detect_result()) {
    clear_dpu_model_result();
    set_has_pose_detect_result();
    dpu_model_result_.pose_detect_result_ = CreateMaybeMessage< ::vitis::ai::proto::PoseDetectResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.pose_detect_result)
  return dpu_model_result_.pose_detect_result_;
}

// optional .vitis.ai.proto.FaceFeatureFloatResult face_feature_float_result = 12;
inline bool DpuModelResult::has_face_feature_float_result() const {
  return dpu_model_result_case() == kFaceFeatureFloatResult;
}
inline void DpuModelResult::set_has_face_feature_float_result() {
  _oneof_case_[0] = kFaceFeatureFloatResult;
}
inline void DpuModelResult::clear_face_feature_float_result() {
  if (has_face_feature_float_result()) {
    delete dpu_model_result_.face_feature_float_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::FaceFeatureFloatResult* DpuModelResult::release_face_feature_float_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.face_feature_float_result)
  if (has_face_feature_float_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::FaceFeatureFloatResult* temp = dpu_model_result_.face_feature_float_result_;
    dpu_model_result_.face_feature_float_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::FaceFeatureFloatResult& DpuModelResult::face_feature_float_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.face_feature_float_result)
  return has_face_feature_float_result()
      ? *dpu_model_result_.face_feature_float_result_
      : *reinterpret_cast< ::vitis::ai::proto::FaceFeatureFloatResult*>(&::vitis::ai::proto::_FaceFeatureFloatResult_default_instance_);
}
inline ::vitis::ai::proto::FaceFeatureFloatResult* DpuModelResult::mutable_face_feature_float_result() {
  if (!has_face_feature_float_result()) {
    clear_dpu_model_result();
    set_has_face_feature_float_result();
    dpu_model_result_.face_feature_float_result_ = CreateMaybeMessage< ::vitis::ai::proto::FaceFeatureFloatResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.face_feature_float_result)
  return dpu_model_result_.face_feature_float_result_;
}

// optional .vitis.ai.proto.SegmetationResult segmentation_result = 13;
inline bool DpuModelResult::has_segmentation_result() const {
  return dpu_model_result_case() == kSegmentationResult;
}
inline void DpuModelResult::set_has_segmentation_result() {
  _oneof_case_[0] = kSegmentationResult;
}
inline void DpuModelResult::clear_segmentation_result() {
  if (has_segmentation_result()) {
    delete dpu_model_result_.segmentation_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::SegmetationResult* DpuModelResult::release_segmentation_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.segmentation_result)
  if (has_segmentation_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::SegmetationResult* temp = dpu_model_result_.segmentation_result_;
    dpu_model_result_.segmentation_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::SegmetationResult& DpuModelResult::segmentation_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.segmentation_result)
  return has_segmentation_result()
      ? *dpu_model_result_.segmentation_result_
      : *reinterpret_cast< ::vitis::ai::proto::SegmetationResult*>(&::vitis::ai::proto::_SegmetationResult_default_instance_);
}
inline ::vitis::ai::proto::SegmetationResult* DpuModelResult::mutable_segmentation_result() {
  if (!has_segmentation_result()) {
    clear_dpu_model_result();
    set_has_segmentation_result();
    dpu_model_result_.segmentation_result_ = CreateMaybeMessage< ::vitis::ai::proto::SegmetationResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.segmentation_result)
  return dpu_model_result_.segmentation_result_;
}

// optional .vitis.ai.proto.MedicalSegmetationResult medical_segmentation_result = 14;
inline bool DpuModelResult::has_medical_segmentation_result() const {
  return dpu_model_result_case() == kMedicalSegmentationResult;
}
inline void DpuModelResult::set_has_medical_segmentation_result() {
  _oneof_case_[0] = kMedicalSegmentationResult;
}
inline void DpuModelResult::clear_medical_segmentation_result() {
  if (has_medical_segmentation_result()) {
    delete dpu_model_result_.medical_segmentation_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::MedicalSegmetationResult* DpuModelResult::release_medical_segmentation_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.medical_segmentation_result)
  if (has_medical_segmentation_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::MedicalSegmetationResult* temp = dpu_model_result_.medical_segmentation_result_;
    dpu_model_result_.medical_segmentation_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::MedicalSegmetationResult& DpuModelResult::medical_segmentation_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.medical_segmentation_result)
  return has_medical_segmentation_result()
      ? *dpu_model_result_.medical_segmentation_result_
      : *reinterpret_cast< ::vitis::ai::proto::MedicalSegmetationResult*>(&::vitis::ai::proto::_MedicalSegmetationResult_default_instance_);
}
inline ::vitis::ai::proto::MedicalSegmetationResult* DpuModelResult::mutable_medical_segmentation_result() {
  if (!has_medical_segmentation_result()) {
    clear_dpu_model_result();
    set_has_medical_segmentation_result();
    dpu_model_result_.medical_segmentation_result_ = CreateMaybeMessage< ::vitis::ai::proto::MedicalSegmetationResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.medical_segmentation_result)
  return dpu_model_result_.medical_segmentation_result_;
}

// optional .vitis.ai.proto.MultiTaskResult multitask_result = 15;
inline bool DpuModelResult::has_multitask_result() const {
  return dpu_model_result_case() == kMultitaskResult;
}
inline void DpuModelResult::set_has_multitask_result() {
  _oneof_case_[0] = kMultitaskResult;
}
inline void DpuModelResult::clear_multitask_result() {
  if (has_multitask_result()) {
    delete dpu_model_result_.multitask_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::MultiTaskResult* DpuModelResult::release_multitask_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.multitask_result)
  if (has_multitask_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::MultiTaskResult* temp = dpu_model_result_.multitask_result_;
    dpu_model_result_.multitask_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::MultiTaskResult& DpuModelResult::multitask_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.multitask_result)
  return has_multitask_result()
      ? *dpu_model_result_.multitask_result_
      : *reinterpret_cast< ::vitis::ai::proto::MultiTaskResult*>(&::vitis::ai::proto::_MultiTaskResult_default_instance_);
}
inline ::vitis::ai::proto::MultiTaskResult* DpuModelResult::mutable_multitask_result() {
  if (!has_multitask_result()) {
    clear_dpu_model_result();
    set_has_multitask_result();
    dpu_model_result_.multitask_result_ = CreateMaybeMessage< ::vitis::ai::proto::MultiTaskResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.multitask_result)
  return dpu_model_result_.multitask_result_;
}

// optional .vitis.ai.proto.ReidResult reid_result = 16;
inline bool DpuModelResult::has_reid_result() const {
  return dpu_model_result_case() == kReidResult;
}
inline void DpuModelResult::set_has_reid_result() {
  _oneof_case_[0] = kReidResult;
}
inline void DpuModelResult::clear_reid_result() {
  if (has_reid_result()) {
    delete dpu_model_result_.reid_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::ReidResult* DpuModelResult::release_reid_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.reid_result)
  if (has_reid_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::ReidResult* temp = dpu_model_result_.reid_result_;
    dpu_model_result_.reid_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::ReidResult& DpuModelResult::reid_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.reid_result)
  return has_reid_result()
      ? *dpu_model_result_.reid_result_
      : *reinterpret_cast< ::vitis::ai::proto::ReidResult*>(&::vitis::ai::proto::_ReidResult_default_instance_);
}
inline ::vitis::ai::proto::ReidResult* DpuModelResult::mutable_reid_result() {
  if (!has_reid_result()) {
    clear_dpu_model_result();
    set_has_reid_result();
    dpu_model_result_.reid_result_ = CreateMaybeMessage< ::vitis::ai::proto::ReidResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.reid_result)
  return dpu_model_result_.reid_result_;
}

// optional .vitis.ai.proto.FaceDetectRecogFloatResult face_detect_recog_float_result = 17;
inline bool DpuModelResult::has_face_detect_recog_float_result() const {
  return dpu_model_result_case() == kFaceDetectRecogFloatResult;
}
inline void DpuModelResult::set_has_face_detect_recog_float_result() {
  _oneof_case_[0] = kFaceDetectRecogFloatResult;
}
inline void DpuModelResult::clear_face_detect_recog_float_result() {
  if (has_face_detect_recog_float_result()) {
    delete dpu_model_result_.face_detect_recog_float_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::FaceDetectRecogFloatResult* DpuModelResult::release_face_detect_recog_float_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.face_detect_recog_float_result)
  if (has_face_detect_recog_float_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::FaceDetectRecogFloatResult* temp = dpu_model_result_.face_detect_recog_float_result_;
    dpu_model_result_.face_detect_recog_float_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::FaceDetectRecogFloatResult& DpuModelResult::face_detect_recog_float_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.face_detect_recog_float_result)
  return has_face_detect_recog_float_result()
      ? *dpu_model_result_.face_detect_recog_float_result_
      : *reinterpret_cast< ::vitis::ai::proto::FaceDetectRecogFloatResult*>(&::vitis::ai::proto::_FaceDetectRecogFloatResult_default_instance_);
}
inline ::vitis::ai::proto::FaceDetectRecogFloatResult* DpuModelResult::mutable_face_detect_recog_float_result() {
  if (!has_face_detect_recog_float_result()) {
    clear_dpu_model_result();
    set_has_face_detect_recog_float_result();
    dpu_model_result_.face_detect_recog_float_result_ = CreateMaybeMessage< ::vitis::ai::proto::FaceDetectRecogFloatResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.face_detect_recog_float_result)
  return dpu_model_result_.face_detect_recog_float_result_;
}

// optional .vitis.ai.proto.FaceDetectRecogFixedResult face_detect_recog_fixed_result = 18;
inline bool DpuModelResult::has_face_detect_recog_fixed_result() const {
  return dpu_model_result_case() == kFaceDetectRecogFixedResult;
}
inline void DpuModelResult::set_has_face_detect_recog_fixed_result() {
  _oneof_case_[0] = kFaceDetectRecogFixedResult;
}
inline void DpuModelResult::clear_face_detect_recog_fixed_result() {
  if (has_face_detect_recog_fixed_result()) {
    delete dpu_model_result_.face_detect_recog_fixed_result_;
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::FaceDetectRecogFixedResult* DpuModelResult::release_face_detect_recog_fixed_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.face_detect_recog_fixed_result)
  if (has_face_detect_recog_fixed_result()) {
    clear_has_dpu_model_result();
      ::vitis::ai::proto::FaceDetectRecogFixedResult* temp = dpu_model_result_.face_detect_recog_fixed_result_;
    dpu_model_result_.face_detect_recog_fixed_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::FaceDetectRecogFixedResult& DpuModelResult::face_detect_recog_fixed_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.face_detect_recog_fixed_result)
  return has_face_detect_recog_fixed_result()
      ? *dpu_model_result_.face_detect_recog_fixed_result_
      : *reinterpret_cast< ::vitis::ai::proto::FaceDetectRecogFixedResult*>(&::vitis::ai::proto::_FaceDetectRecogFixedResult_default_instance_);
}
inline ::vitis::ai::proto::FaceDetectRecogFixedResult* DpuModelResult::mutable_face_detect_recog_fixed_result() {
  if (!has_face_detect_recog_fixed_result()) {
    clear_dpu_model_result();
    set_has_face_detect_recog_fixed_result();
    dpu_model_result_.face_detect_recog_fixed_result_ = CreateMaybeMessage< ::vitis::ai::proto::FaceDetectRecogFixedResult >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.face_detect_recog_fixed_result)
  return dpu_model_result_.face_detect_recog_fixed_result_;
}

inline bool DpuModelResult::has_dpu_model_result() const {
  return dpu_model_result_case() != DPU_MODEL_RESULT_NOT_SET;
}
inline void DpuModelResult::clear_has_dpu_model_result() {
  _oneof_case_[0] = DPU_MODEL_RESULT_NOT_SET;
}
inline DpuModelResult::DpuModelResultCase DpuModelResult::dpu_model_result_case() const {
  return DpuModelResult::DpuModelResultCase(_oneof_case_[0]);
}
#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace proto
}  // namespace ai
}  // namespace vitis

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::vitis::ai::proto::SSDParam_OutputType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::SSDParam_OutputType>() {
  return ::vitis::ai::proto::SSDParam_OutputType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::ClassificationParam_PreprocessType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::ClassificationParam_PreprocessType>() {
  return ::vitis::ai::proto::ClassificationParam_PreprocessType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::RetinaFaceParam_OutputType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::RetinaFaceParam_OutputType>() {
  return ::vitis::ai::proto::RetinaFaceParam_OutputType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::RetinaFaceParam_AnchorType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::RetinaFaceParam_AnchorType>() {
  return ::vitis::ai::proto::RetinaFaceParam_AnchorType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::TfssdParam_OutputType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::TfssdParam_OutputType>() {
  return ::vitis::ai::proto::TfssdParam_OutputType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::DpuModelParam_ModelType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::DpuModelParam_ModelType>() {
  return ::vitis::ai::proto::DpuModelParam_ModelType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::DpuModelParam_OrderType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::DpuModelParam_OrderType>() {
  return ::vitis::ai::proto::DpuModelParam_OrderType_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto
