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

#include "message.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
extern PROTOBUF_INTERNAL_EXPORT_message_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AgvStatu_message_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_message_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_NewAction_message_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_message_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PathNode_message_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_message_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Pose2d_message_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_message_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SpeedLimit_message_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_message_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Trajectory_message_2eproto;
namespace NavMessage {
class LidarOdomStatuDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LidarOdomStatu> _instance;
} _LidarOdomStatu_default_instance_;
class AgvStatuDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AgvStatu> _instance;
} _AgvStatu_default_instance_;
class ToAgvCmdDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ToAgvCmd> _instance;
} _ToAgvCmd_default_instance_;
class SpeedLimitDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SpeedLimit> _instance;
} _SpeedLimit_default_instance_;
class Pose2dDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Pose2d> _instance;
} _Pose2d_default_instance_;
class PathNodeDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PathNode> _instance;
} _PathNode_default_instance_;
class TrajectoryDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Trajectory> _instance;
} _Trajectory_default_instance_;
class NewActionDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NewAction> _instance;
} _NewAction_default_instance_;
class NavCmdDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NavCmd> _instance;
} _NavCmd_default_instance_;
class NavStatuDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NavStatu> _instance;
} _NavStatu_default_instance_;
class RobotStatuDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotStatu> _instance;
} _RobotStatu_default_instance_;
}  // namespace NavMessage
static void InitDefaultsscc_info_AgvStatu_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_AgvStatu_default_instance_;
    new (ptr) ::NavMessage::AgvStatu();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::AgvStatu::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AgvStatu_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AgvStatu_message_2eproto}, {}};

static void InitDefaultsscc_info_LidarOdomStatu_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_LidarOdomStatu_default_instance_;
    new (ptr) ::NavMessage::LidarOdomStatu();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::LidarOdomStatu::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LidarOdomStatu_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LidarOdomStatu_message_2eproto}, {}};

static void InitDefaultsscc_info_NavCmd_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_NavCmd_default_instance_;
    new (ptr) ::NavMessage::NavCmd();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::NavCmd::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_NavCmd_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_NavCmd_message_2eproto}, {
      &scc_info_NewAction_message_2eproto.base,}};

static void InitDefaultsscc_info_NavStatu_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_NavStatu_default_instance_;
    new (ptr) ::NavMessage::NavStatu();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::NavStatu::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_NavStatu_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_NavStatu_message_2eproto}, {
      &scc_info_Trajectory_message_2eproto.base,}};

static void InitDefaultsscc_info_NewAction_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_NewAction_default_instance_;
    new (ptr) ::NavMessage::NewAction();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::NewAction::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_NewAction_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_NewAction_message_2eproto}, {
      &scc_info_PathNode_message_2eproto.base,
      &scc_info_SpeedLimit_message_2eproto.base,}};

static void InitDefaultsscc_info_PathNode_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_PathNode_default_instance_;
    new (ptr) ::NavMessage::PathNode();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::PathNode::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PathNode_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_PathNode_message_2eproto}, {
      &scc_info_Pose2d_message_2eproto.base,}};

static void InitDefaultsscc_info_Pose2d_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_Pose2d_default_instance_;
    new (ptr) ::NavMessage::Pose2d();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::Pose2d::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Pose2d_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Pose2d_message_2eproto}, {}};

static void InitDefaultsscc_info_RobotStatu_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_RobotStatu_default_instance_;
    new (ptr) ::NavMessage::RobotStatu();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::RobotStatu::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RobotStatu_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_RobotStatu_message_2eproto}, {
      &scc_info_AgvStatu_message_2eproto.base,}};

static void InitDefaultsscc_info_SpeedLimit_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_SpeedLimit_default_instance_;
    new (ptr) ::NavMessage::SpeedLimit();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::SpeedLimit::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SpeedLimit_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_SpeedLimit_message_2eproto}, {}};

static void InitDefaultsscc_info_ToAgvCmd_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_ToAgvCmd_default_instance_;
    new (ptr) ::NavMessage::ToAgvCmd();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::ToAgvCmd::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ToAgvCmd_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ToAgvCmd_message_2eproto}, {}};

static void InitDefaultsscc_info_Trajectory_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_Trajectory_default_instance_;
    new (ptr) ::NavMessage::Trajectory();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::Trajectory::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Trajectory_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Trajectory_message_2eproto}, {
      &scc_info_Pose2d_message_2eproto.base,}};

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_message_2eproto[11];
static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_message_2eproto = nullptr;
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_message_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_message_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::LidarOdomStatu, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::LidarOdomStatu, x_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::LidarOdomStatu, y_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::LidarOdomStatu, theta_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::LidarOdomStatu, v_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::LidarOdomStatu, vth_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::AgvStatu, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::AgvStatu, v_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::AgvStatu, w_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::AgvStatu, clamp_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::AgvStatu, clamp_other_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::ToAgvCmd, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::ToAgvCmd, h_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::ToAgvCmd, m_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::ToAgvCmd, t_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::ToAgvCmd, v_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::ToAgvCmd, w_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::ToAgvCmd, l_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::ToAgvCmd, end_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::SpeedLimit, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::SpeedLimit, min_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::SpeedLimit, max_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Pose2d, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Pose2d, x_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Pose2d, y_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Pose2d, theta_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::PathNode, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::PathNode, pose_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::PathNode, accuracy_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Trajectory, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Trajectory, poses_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, type_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, spacenode_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, passnode_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, streetnode_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, pathnodes_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, inoutvlimit_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, nodevelocitylimit_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, nodeangularlimit_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, adjustvelocitylimit_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, adjusthorizonlimit_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, wheelbase_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NewAction, changedmode_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavCmd, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavCmd, action_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavCmd, key_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavCmd, newactions_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, statu_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, main_agv_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, move_mode_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, key_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, selected_traj_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, predict_traj_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::RobotStatu, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::RobotStatu, x_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::RobotStatu, y_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::RobotStatu, theta_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::RobotStatu, agvstatu_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::NavMessage::LidarOdomStatu)},
  { 10, -1, sizeof(::NavMessage::AgvStatu)},
  { 19, -1, sizeof(::NavMessage::ToAgvCmd)},
  { 31, -1, sizeof(::NavMessage::SpeedLimit)},
  { 38, -1, sizeof(::NavMessage::Pose2d)},
  { 46, -1, sizeof(::NavMessage::PathNode)},
  { 53, -1, sizeof(::NavMessage::Trajectory)},
  { 59, -1, sizeof(::NavMessage::NewAction)},
  { 76, -1, sizeof(::NavMessage::NavCmd)},
  { 84, -1, sizeof(::NavMessage::NavStatu)},
  { 95, -1, sizeof(::NavMessage::RobotStatu)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_LidarOdomStatu_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_AgvStatu_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_ToAgvCmd_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_SpeedLimit_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_Pose2d_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_PathNode_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_Trajectory_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_NewAction_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_NavCmd_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_NavStatu_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_RobotStatu_default_instance_),
};

const char descriptor_table_protodef_message_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\rmessage.proto\022\nNavMessage\"M\n\016LidarOdom"
  "Statu\022\t\n\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\022\r\n\005theta\030\003 \001"
  "(\002\022\t\n\001v\030\004 \001(\002\022\013\n\003vth\030\005 \001(\002\"D\n\010AgvStatu\022\t"
  "\n\001v\030\001 \001(\002\022\t\n\001w\030\002 \001(\002\022\r\n\005clamp\030\003 \001(\005\022\023\n\013c"
  "lamp_other\030\004 \001(\005\"Y\n\010ToAgvCmd\022\t\n\001H\030\001 \001(\005\022"
  "\t\n\001M\030\002 \001(\005\022\t\n\001T\030\003 \001(\005\022\t\n\001V\030\004 \001(\002\022\t\n\001W\030\005 "
  "\001(\002\022\t\n\001L\030\006 \001(\002\022\013\n\003end\030\007 \001(\005\"&\n\nSpeedLimi"
  "t\022\013\n\003min\030\001 \001(\002\022\013\n\003max\030\002 \001(\002\"-\n\006Pose2d\022\t\n"
  "\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\022\r\n\005theta\030\003 \001(\002\"R\n\010Pa"
  "thNode\022 \n\004pose\030\001 \001(\0132\022.NavMessage.Pose2d"
  "\022$\n\010accuracy\030\002 \001(\0132\022.NavMessage.Pose2d\"/"
  "\n\nTrajectory\022!\n\005poses\030\001 \003(\0132\022.NavMessage"
  ".Pose2d\"\340\003\n\tNewAction\022\014\n\004type\030\001 \001(\005\022\'\n\ts"
  "paceNode\030\002 \001(\0132\024.NavMessage.PathNode\022&\n\010"
  "passNode\030\003 \001(\0132\024.NavMessage.PathNode\022(\n\n"
  "streetNode\030\004 \001(\0132\024.NavMessage.PathNode\022\'"
  "\n\tpathNodes\030\005 \003(\0132\024.NavMessage.PathNode\022"
  "+\n\013InOutVLimit\030\006 \001(\0132\026.NavMessage.SpeedL"
  "imit\0221\n\021NodeVelocityLimit\030\007 \001(\0132\026.NavMes"
  "sage.SpeedLimit\0220\n\020NodeAngularLimit\030\010 \001("
  "\0132\026.NavMessage.SpeedLimit\0223\n\023adjustVeloc"
  "itylimit\030\t \001(\0132\026.NavMessage.SpeedLimit\0222"
  "\n\022adjustHorizonLimit\030\n \001(\0132\026.NavMessage."
  "SpeedLimit\022\021\n\twheelbase\030\013 \001(\002\022\023\n\013changed"
  "Mode\030\014 \001(\005\"P\n\006NavCmd\022\016\n\006action\030\001 \001(\005\022\013\n\003"
  "key\030\002 \001(\t\022)\n\nnewActions\030\005 \003(\0132\025.NavMessa"
  "ge.NewAction\"\250\001\n\010NavStatu\022\r\n\005statu\030\001 \001(\005"
  "\022\020\n\010main_agv\030\002 \001(\010\022\021\n\tmove_mode\030\003 \001(\005\022\013\n"
  "\003key\030\004 \001(\t\022-\n\rselected_traj\030\006 \001(\0132\026.NavM"
  "essage.Trajectory\022,\n\014predict_traj\030\007 \001(\0132"
  "\026.NavMessage.Trajectory\"Y\n\nRobotStatu\022\t\n"
  "\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\022\r\n\005theta\030\003 \001(\002\022&\n\010ag"
  "vStatu\030\004 \001(\0132\024.NavMessage.AgvStatub\006prot"
  "o3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_message_2eproto_deps[1] = {
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_message_2eproto_sccs[11] = {
  &scc_info_AgvStatu_message_2eproto.base,
  &scc_info_LidarOdomStatu_message_2eproto.base,
  &scc_info_NavCmd_message_2eproto.base,
  &scc_info_NavStatu_message_2eproto.base,
  &scc_info_NewAction_message_2eproto.base,
  &scc_info_PathNode_message_2eproto.base,
  &scc_info_Pose2d_message_2eproto.base,
  &scc_info_RobotStatu_message_2eproto.base,
  &scc_info_SpeedLimit_message_2eproto.base,
  &scc_info_ToAgvCmd_message_2eproto.base,
  &scc_info_Trajectory_message_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_message_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_message_2eproto = {
  false, false, descriptor_table_protodef_message_2eproto, "message.proto", 1322,
  &descriptor_table_message_2eproto_once, descriptor_table_message_2eproto_sccs, descriptor_table_message_2eproto_deps, 11, 0,
  schemas, file_default_instances, TableStruct_message_2eproto::offsets,
  file_level_metadata_message_2eproto, 11, file_level_enum_descriptors_message_2eproto, file_level_service_descriptors_message_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_message_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_message_2eproto)), true);
namespace NavMessage {

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

void LidarOdomStatu::InitAsDefaultInstance() {
}
class LidarOdomStatu::_Internal {
 public:
};

LidarOdomStatu::LidarOdomStatu(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.LidarOdomStatu)
}
LidarOdomStatu::LidarOdomStatu(const LidarOdomStatu& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&x_, &from.x_,
    static_cast<size_t>(reinterpret_cast<char*>(&vth_) -
    reinterpret_cast<char*>(&x_)) + sizeof(vth_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.LidarOdomStatu)
}

void LidarOdomStatu::SharedCtor() {
  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&vth_) -
      reinterpret_cast<char*>(&x_)) + sizeof(vth_));
}

LidarOdomStatu::~LidarOdomStatu() {
  // @@protoc_insertion_point(destructor:NavMessage.LidarOdomStatu)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void LidarOdomStatu::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void LidarOdomStatu::ArenaDtor(void* object) {
  LidarOdomStatu* _this = reinterpret_cast< LidarOdomStatu* >(object);
  (void)_this;
}
void LidarOdomStatu::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LidarOdomStatu::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const LidarOdomStatu& LidarOdomStatu::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LidarOdomStatu_message_2eproto.base);
  return *internal_default_instance();
}


void LidarOdomStatu::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.LidarOdomStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&vth_) -
      reinterpret_cast<char*>(&x_)) + sizeof(vth_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LidarOdomStatu::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float x = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float theta = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          theta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float v = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          v_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float vth = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          vth_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* LidarOdomStatu::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.LidarOdomStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float x = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_x(), target);
  }

  // float y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_y(), target);
  }

  // float theta = 3;
  if (!(this->theta() <= 0 && this->theta() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_theta(), target);
  }

  // float v = 4;
  if (!(this->v() <= 0 && this->v() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_v(), target);
  }

  // float vth = 5;
  if (!(this->vth() <= 0 && this->vth() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_vth(), target);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float x = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    total_size += 1 + 4;
  }

  // float y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    total_size += 1 + 4;
  }

  // float theta = 3;
  if (!(this->theta() <= 0 && this->theta() >= 0)) {
    total_size += 1 + 4;
  }

  // float v = 4;
  if (!(this->v() <= 0 && this->v() >= 0)) {
    total_size += 1 + 4;
  }

  // float vth = 5;
  if (!(this->vth() <= 0 && this->vth() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void LidarOdomStatu::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.LidarOdomStatu)
  GOOGLE_DCHECK_NE(&from, this);
  const LidarOdomStatu* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LidarOdomStatu>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.LidarOdomStatu)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.LidarOdomStatu)
    MergeFrom(*source);
  }
}

void LidarOdomStatu::MergeFrom(const LidarOdomStatu& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.LidarOdomStatu)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (!(from.x() <= 0 && from.x() >= 0)) {
    _internal_set_x(from._internal_x());
  }
  if (!(from.y() <= 0 && from.y() >= 0)) {
    _internal_set_y(from._internal_y());
  }
  if (!(from.theta() <= 0 && from.theta() >= 0)) {
    _internal_set_theta(from._internal_theta());
  }
  if (!(from.v() <= 0 && from.v() >= 0)) {
    _internal_set_v(from._internal_v());
  }
  if (!(from.vth() <= 0 && from.vth() >= 0)) {
    _internal_set_vth(from._internal_vth());
  }
}

void LidarOdomStatu::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.LidarOdomStatu)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void LidarOdomStatu::InternalSwap(LidarOdomStatu* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LidarOdomStatu, vth_)
      + sizeof(LidarOdomStatu::vth_)
      - PROTOBUF_FIELD_OFFSET(LidarOdomStatu, x_)>(
          reinterpret_cast<char*>(&x_),
          reinterpret_cast<char*>(&other->x_));
}

::PROTOBUF_NAMESPACE_ID::Metadata LidarOdomStatu::GetMetadata() const {
  return GetMetadataStatic();
}


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

void AgvStatu::InitAsDefaultInstance() {
}
class AgvStatu::_Internal {
 public:
};

AgvStatu::AgvStatu(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.AgvStatu)
}
AgvStatu::AgvStatu(const AgvStatu& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&v_, &from.v_,
    static_cast<size_t>(reinterpret_cast<char*>(&clamp_other_) -
    reinterpret_cast<char*>(&v_)) + sizeof(clamp_other_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.AgvStatu)
}

void AgvStatu::SharedCtor() {
  ::memset(&v_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&clamp_other_) -
      reinterpret_cast<char*>(&v_)) + sizeof(clamp_other_));
}

AgvStatu::~AgvStatu() {
  // @@protoc_insertion_point(destructor:NavMessage.AgvStatu)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AgvStatu::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void AgvStatu::ArenaDtor(void* object) {
  AgvStatu* _this = reinterpret_cast< AgvStatu* >(object);
  (void)_this;
}
void AgvStatu::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AgvStatu::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AgvStatu& AgvStatu::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AgvStatu_message_2eproto.base);
  return *internal_default_instance();
}


void AgvStatu::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.AgvStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&v_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&clamp_other_) -
      reinterpret_cast<char*>(&v_)) + sizeof(clamp_other_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AgvStatu::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float v = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          v_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float w = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          w_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 clamp = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          clamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 clamp_other = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          clamp_other_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* AgvStatu::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.AgvStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float v = 1;
  if (!(this->v() <= 0 && this->v() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_v(), target);
  }

  // float w = 2;
  if (!(this->w() <= 0 && this->w() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_w(), target);
  }

  // int32 clamp = 3;
  if (this->clamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_clamp(), target);
  }

  // int32 clamp_other = 4;
  if (this->clamp_other() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_clamp_other(), target);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float v = 1;
  if (!(this->v() <= 0 && this->v() >= 0)) {
    total_size += 1 + 4;
  }

  // float w = 2;
  if (!(this->w() <= 0 && this->w() >= 0)) {
    total_size += 1 + 4;
  }

  // int32 clamp = 3;
  if (this->clamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_clamp());
  }

  // int32 clamp_other = 4;
  if (this->clamp_other() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_clamp_other());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AgvStatu::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.AgvStatu)
  GOOGLE_DCHECK_NE(&from, this);
  const AgvStatu* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AgvStatu>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.AgvStatu)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.AgvStatu)
    MergeFrom(*source);
  }
}

void AgvStatu::MergeFrom(const AgvStatu& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.AgvStatu)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (!(from.v() <= 0 && from.v() >= 0)) {
    _internal_set_v(from._internal_v());
  }
  if (!(from.w() <= 0 && from.w() >= 0)) {
    _internal_set_w(from._internal_w());
  }
  if (from.clamp() != 0) {
    _internal_set_clamp(from._internal_clamp());
  }
  if (from.clamp_other() != 0) {
    _internal_set_clamp_other(from._internal_clamp_other());
  }
}

void AgvStatu::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.AgvStatu)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void AgvStatu::InternalSwap(AgvStatu* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AgvStatu, clamp_other_)
      + sizeof(AgvStatu::clamp_other_)
      - PROTOBUF_FIELD_OFFSET(AgvStatu, v_)>(
          reinterpret_cast<char*>(&v_),
          reinterpret_cast<char*>(&other->v_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AgvStatu::GetMetadata() const {
  return GetMetadataStatic();
}


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

void ToAgvCmd::InitAsDefaultInstance() {
}
class ToAgvCmd::_Internal {
 public:
};

ToAgvCmd::ToAgvCmd(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.ToAgvCmd)
}
ToAgvCmd::ToAgvCmd(const ToAgvCmd& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&h_, &from.h_,
    static_cast<size_t>(reinterpret_cast<char*>(&end_) -
    reinterpret_cast<char*>(&h_)) + sizeof(end_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.ToAgvCmd)
}

void ToAgvCmd::SharedCtor() {
  ::memset(&h_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&end_) -
      reinterpret_cast<char*>(&h_)) + sizeof(end_));
}

ToAgvCmd::~ToAgvCmd() {
  // @@protoc_insertion_point(destructor:NavMessage.ToAgvCmd)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ToAgvCmd::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void ToAgvCmd::ArenaDtor(void* object) {
  ToAgvCmd* _this = reinterpret_cast< ToAgvCmd* >(object);
  (void)_this;
}
void ToAgvCmd::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ToAgvCmd::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ToAgvCmd& ToAgvCmd::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ToAgvCmd_message_2eproto.base);
  return *internal_default_instance();
}


void ToAgvCmd::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.ToAgvCmd)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&h_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&end_) -
      reinterpret_cast<char*>(&h_)) + sizeof(end_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ToAgvCmd::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 H = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          h_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 M = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          m_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 T = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          t_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float V = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          v_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float W = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          w_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float L = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 53)) {
          l_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 end = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          end_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* ToAgvCmd::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.ToAgvCmd)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 H = 1;
  if (this->h() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_h(), target);
  }

  // int32 M = 2;
  if (this->m() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_m(), target);
  }

  // int32 T = 3;
  if (this->t() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_t(), target);
  }

  // float V = 4;
  if (!(this->v() <= 0 && this->v() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_v(), target);
  }

  // float W = 5;
  if (!(this->w() <= 0 && this->w() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_w(), target);
  }

  // float L = 6;
  if (!(this->l() <= 0 && this->l() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(6, this->_internal_l(), target);
  }

  // int32 end = 7;
  if (this->end() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_end(), target);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 H = 1;
  if (this->h() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_h());
  }

  // int32 M = 2;
  if (this->m() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_m());
  }

  // int32 T = 3;
  if (this->t() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_t());
  }

  // float V = 4;
  if (!(this->v() <= 0 && this->v() >= 0)) {
    total_size += 1 + 4;
  }

  // float W = 5;
  if (!(this->w() <= 0 && this->w() >= 0)) {
    total_size += 1 + 4;
  }

  // float L = 6;
  if (!(this->l() <= 0 && this->l() >= 0)) {
    total_size += 1 + 4;
  }

  // int32 end = 7;
  if (this->end() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_end());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ToAgvCmd::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.ToAgvCmd)
  GOOGLE_DCHECK_NE(&from, this);
  const ToAgvCmd* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ToAgvCmd>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.ToAgvCmd)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.ToAgvCmd)
    MergeFrom(*source);
  }
}

void ToAgvCmd::MergeFrom(const ToAgvCmd& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.ToAgvCmd)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.h() != 0) {
    _internal_set_h(from._internal_h());
  }
  if (from.m() != 0) {
    _internal_set_m(from._internal_m());
  }
  if (from.t() != 0) {
    _internal_set_t(from._internal_t());
  }
  if (!(from.v() <= 0 && from.v() >= 0)) {
    _internal_set_v(from._internal_v());
  }
  if (!(from.w() <= 0 && from.w() >= 0)) {
    _internal_set_w(from._internal_w());
  }
  if (!(from.l() <= 0 && from.l() >= 0)) {
    _internal_set_l(from._internal_l());
  }
  if (from.end() != 0) {
    _internal_set_end(from._internal_end());
  }
}

void ToAgvCmd::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.ToAgvCmd)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void ToAgvCmd::InternalSwap(ToAgvCmd* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ToAgvCmd, end_)
      + sizeof(ToAgvCmd::end_)
      - PROTOBUF_FIELD_OFFSET(ToAgvCmd, h_)>(
          reinterpret_cast<char*>(&h_),
          reinterpret_cast<char*>(&other->h_));
}

::PROTOBUF_NAMESPACE_ID::Metadata ToAgvCmd::GetMetadata() const {
  return GetMetadataStatic();
}


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

void SpeedLimit::InitAsDefaultInstance() {
}
class SpeedLimit::_Internal {
 public:
};

SpeedLimit::SpeedLimit(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.SpeedLimit)
}
SpeedLimit::SpeedLimit(const SpeedLimit& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&min_, &from.min_,
    static_cast<size_t>(reinterpret_cast<char*>(&max_) -
    reinterpret_cast<char*>(&min_)) + sizeof(max_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.SpeedLimit)
}

void SpeedLimit::SharedCtor() {
  ::memset(&min_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&max_) -
      reinterpret_cast<char*>(&min_)) + sizeof(max_));
}

SpeedLimit::~SpeedLimit() {
  // @@protoc_insertion_point(destructor:NavMessage.SpeedLimit)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SpeedLimit::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void SpeedLimit::ArenaDtor(void* object) {
  SpeedLimit* _this = reinterpret_cast< SpeedLimit* >(object);
  (void)_this;
}
void SpeedLimit::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SpeedLimit::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SpeedLimit& SpeedLimit::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SpeedLimit_message_2eproto.base);
  return *internal_default_instance();
}


void SpeedLimit::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.SpeedLimit)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&min_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&max_) -
      reinterpret_cast<char*>(&min_)) + sizeof(max_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SpeedLimit::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float min = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          min_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float max = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          max_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* SpeedLimit::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.SpeedLimit)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float min = 1;
  if (!(this->min() <= 0 && this->min() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_min(), target);
  }

  // float max = 2;
  if (!(this->max() <= 0 && this->max() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_max(), target);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float min = 1;
  if (!(this->min() <= 0 && this->min() >= 0)) {
    total_size += 1 + 4;
  }

  // float max = 2;
  if (!(this->max() <= 0 && this->max() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void SpeedLimit::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.SpeedLimit)
  GOOGLE_DCHECK_NE(&from, this);
  const SpeedLimit* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SpeedLimit>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.SpeedLimit)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.SpeedLimit)
    MergeFrom(*source);
  }
}

void SpeedLimit::MergeFrom(const SpeedLimit& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.SpeedLimit)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (!(from.min() <= 0 && from.min() >= 0)) {
    _internal_set_min(from._internal_min());
  }
  if (!(from.max() <= 0 && from.max() >= 0)) {
    _internal_set_max(from._internal_max());
  }
}

void SpeedLimit::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.SpeedLimit)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void SpeedLimit::InternalSwap(SpeedLimit* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SpeedLimit, max_)
      + sizeof(SpeedLimit::max_)
      - PROTOBUF_FIELD_OFFSET(SpeedLimit, min_)>(
          reinterpret_cast<char*>(&min_),
          reinterpret_cast<char*>(&other->min_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SpeedLimit::GetMetadata() const {
  return GetMetadataStatic();
}


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

void Pose2d::InitAsDefaultInstance() {
}
class Pose2d::_Internal {
 public:
};

Pose2d::Pose2d(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.Pose2d)
}
Pose2d::Pose2d(const Pose2d& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&x_, &from.x_,
    static_cast<size_t>(reinterpret_cast<char*>(&theta_) -
    reinterpret_cast<char*>(&x_)) + sizeof(theta_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.Pose2d)
}

void Pose2d::SharedCtor() {
  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&theta_) -
      reinterpret_cast<char*>(&x_)) + sizeof(theta_));
}

Pose2d::~Pose2d() {
  // @@protoc_insertion_point(destructor:NavMessage.Pose2d)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Pose2d::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void Pose2d::ArenaDtor(void* object) {
  Pose2d* _this = reinterpret_cast< Pose2d* >(object);
  (void)_this;
}
void Pose2d::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Pose2d::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Pose2d& Pose2d::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Pose2d_message_2eproto.base);
  return *internal_default_instance();
}


void Pose2d::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.Pose2d)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&theta_) -
      reinterpret_cast<char*>(&x_)) + sizeof(theta_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Pose2d::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float x = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float theta = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          theta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Pose2d::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.Pose2d)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float x = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_x(), target);
  }

  // float y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_y(), target);
  }

  // float theta = 3;
  if (!(this->theta() <= 0 && this->theta() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_theta(), target);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float x = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    total_size += 1 + 4;
  }

  // float y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    total_size += 1 + 4;
  }

  // float theta = 3;
  if (!(this->theta() <= 0 && this->theta() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Pose2d::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.Pose2d)
  GOOGLE_DCHECK_NE(&from, this);
  const Pose2d* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Pose2d>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.Pose2d)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.Pose2d)
    MergeFrom(*source);
  }
}

void Pose2d::MergeFrom(const Pose2d& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.Pose2d)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (!(from.x() <= 0 && from.x() >= 0)) {
    _internal_set_x(from._internal_x());
  }
  if (!(from.y() <= 0 && from.y() >= 0)) {
    _internal_set_y(from._internal_y());
  }
  if (!(from.theta() <= 0 && from.theta() >= 0)) {
    _internal_set_theta(from._internal_theta());
  }
}

void Pose2d::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.Pose2d)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void Pose2d::InternalSwap(Pose2d* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Pose2d, theta_)
      + sizeof(Pose2d::theta_)
      - PROTOBUF_FIELD_OFFSET(Pose2d, x_)>(
          reinterpret_cast<char*>(&x_),
          reinterpret_cast<char*>(&other->x_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Pose2d::GetMetadata() const {
  return GetMetadataStatic();
}


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

void PathNode::InitAsDefaultInstance() {
  ::NavMessage::_PathNode_default_instance_._instance.get_mutable()->pose_ = const_cast< ::NavMessage::Pose2d*>(
      ::NavMessage::Pose2d::internal_default_instance());
  ::NavMessage::_PathNode_default_instance_._instance.get_mutable()->accuracy_ = const_cast< ::NavMessage::Pose2d*>(
      ::NavMessage::Pose2d::internal_default_instance());
}
class PathNode::_Internal {
 public:
  static const ::NavMessage::Pose2d& pose(const PathNode* msg);
  static const ::NavMessage::Pose2d& accuracy(const PathNode* msg);
};

const ::NavMessage::Pose2d&
PathNode::_Internal::pose(const PathNode* msg) {
  return *msg->pose_;
}
const ::NavMessage::Pose2d&
PathNode::_Internal::accuracy(const PathNode* msg) {
  return *msg->accuracy_;
}
PathNode::PathNode(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.PathNode)
}
PathNode::PathNode(const PathNode& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_pose()) {
    pose_ = new ::NavMessage::Pose2d(*from.pose_);
  } else {
    pose_ = nullptr;
  }
  if (from._internal_has_accuracy()) {
    accuracy_ = new ::NavMessage::Pose2d(*from.accuracy_);
  } else {
    accuracy_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:NavMessage.PathNode)
}

void PathNode::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PathNode_message_2eproto.base);
  ::memset(&pose_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&accuracy_) -
      reinterpret_cast<char*>(&pose_)) + sizeof(accuracy_));
}

PathNode::~PathNode() {
  // @@protoc_insertion_point(destructor:NavMessage.PathNode)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PathNode::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete pose_;
  if (this != internal_default_instance()) delete accuracy_;
}

void PathNode::ArenaDtor(void* object) {
  PathNode* _this = reinterpret_cast< PathNode* >(object);
  (void)_this;
}
void PathNode::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PathNode::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PathNode& PathNode::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PathNode_message_2eproto.base);
  return *internal_default_instance();
}


void PathNode::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.PathNode)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && pose_ != nullptr) {
    delete pose_;
  }
  pose_ = nullptr;
  if (GetArena() == nullptr && accuracy_ != nullptr) {
    delete accuracy_;
  }
  accuracy_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PathNode::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .NavMessage.Pose2d pose = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_pose(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.Pose2d accuracy = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_accuracy(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* PathNode::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.PathNode)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .NavMessage.Pose2d pose = 1;
  if (this->has_pose()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::pose(this), target, stream);
  }

  // .NavMessage.Pose2d accuracy = 2;
  if (this->has_accuracy()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::accuracy(this), target, stream);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .NavMessage.Pose2d pose = 1;
  if (this->has_pose()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *pose_);
  }

  // .NavMessage.Pose2d accuracy = 2;
  if (this->has_accuracy()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *accuracy_);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PathNode::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.PathNode)
  GOOGLE_DCHECK_NE(&from, this);
  const PathNode* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PathNode>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.PathNode)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.PathNode)
    MergeFrom(*source);
  }
}

void PathNode::MergeFrom(const PathNode& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.PathNode)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_pose()) {
    _internal_mutable_pose()->::NavMessage::Pose2d::MergeFrom(from._internal_pose());
  }
  if (from.has_accuracy()) {
    _internal_mutable_accuracy()->::NavMessage::Pose2d::MergeFrom(from._internal_accuracy());
  }
}

void PathNode::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.PathNode)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void PathNode::InternalSwap(PathNode* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PathNode, accuracy_)
      + sizeof(PathNode::accuracy_)
      - PROTOBUF_FIELD_OFFSET(PathNode, pose_)>(
          reinterpret_cast<char*>(&pose_),
          reinterpret_cast<char*>(&other->pose_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PathNode::GetMetadata() const {
  return GetMetadataStatic();
}


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

void Trajectory::InitAsDefaultInstance() {
}
class Trajectory::_Internal {
 public:
};

Trajectory::Trajectory(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  poses_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.Trajectory)
}
Trajectory::Trajectory(const Trajectory& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      poses_(from.poses_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:NavMessage.Trajectory)
}

void Trajectory::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Trajectory_message_2eproto.base);
}

Trajectory::~Trajectory() {
  // @@protoc_insertion_point(destructor:NavMessage.Trajectory)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Trajectory::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void Trajectory::ArenaDtor(void* object) {
  Trajectory* _this = reinterpret_cast< Trajectory* >(object);
  (void)_this;
}
void Trajectory::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Trajectory::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Trajectory& Trajectory::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Trajectory_message_2eproto.base);
  return *internal_default_instance();
}


void Trajectory::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.Trajectory)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* Trajectory::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated .NavMessage.Pose2d poses = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_poses(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Trajectory::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.Trajectory)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .NavMessage.Pose2d poses = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_poses_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_poses(i), target, stream);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .NavMessage.Pose2d poses = 1;
  total_size += 1UL * this->_internal_poses_size();
  for (const auto& msg : this->poses_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Trajectory::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.Trajectory)
  GOOGLE_DCHECK_NE(&from, this);
  const Trajectory* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Trajectory>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.Trajectory)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.Trajectory)
    MergeFrom(*source);
  }
}

void Trajectory::MergeFrom(const Trajectory& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.Trajectory)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  poses_.MergeFrom(from.poses_);
}

void Trajectory::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.Trajectory)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void Trajectory::InternalSwap(Trajectory* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  poses_.InternalSwap(&other->poses_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Trajectory::GetMetadata() const {
  return GetMetadataStatic();
}


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

void NewAction::InitAsDefaultInstance() {
  ::NavMessage::_NewAction_default_instance_._instance.get_mutable()->spacenode_ = const_cast< ::NavMessage::PathNode*>(
      ::NavMessage::PathNode::internal_default_instance());
  ::NavMessage::_NewAction_default_instance_._instance.get_mutable()->passnode_ = const_cast< ::NavMessage::PathNode*>(
      ::NavMessage::PathNode::internal_default_instance());
  ::NavMessage::_NewAction_default_instance_._instance.get_mutable()->streetnode_ = const_cast< ::NavMessage::PathNode*>(
      ::NavMessage::PathNode::internal_default_instance());
  ::NavMessage::_NewAction_default_instance_._instance.get_mutable()->inoutvlimit_ = const_cast< ::NavMessage::SpeedLimit*>(
      ::NavMessage::SpeedLimit::internal_default_instance());
  ::NavMessage::_NewAction_default_instance_._instance.get_mutable()->nodevelocitylimit_ = const_cast< ::NavMessage::SpeedLimit*>(
      ::NavMessage::SpeedLimit::internal_default_instance());
  ::NavMessage::_NewAction_default_instance_._instance.get_mutable()->nodeangularlimit_ = const_cast< ::NavMessage::SpeedLimit*>(
      ::NavMessage::SpeedLimit::internal_default_instance());
  ::NavMessage::_NewAction_default_instance_._instance.get_mutable()->adjustvelocitylimit_ = const_cast< ::NavMessage::SpeedLimit*>(
      ::NavMessage::SpeedLimit::internal_default_instance());
  ::NavMessage::_NewAction_default_instance_._instance.get_mutable()->adjusthorizonlimit_ = const_cast< ::NavMessage::SpeedLimit*>(
      ::NavMessage::SpeedLimit::internal_default_instance());
}
class NewAction::_Internal {
 public:
  static const ::NavMessage::PathNode& spacenode(const NewAction* msg);
  static const ::NavMessage::PathNode& passnode(const NewAction* msg);
  static const ::NavMessage::PathNode& streetnode(const NewAction* msg);
  static const ::NavMessage::SpeedLimit& inoutvlimit(const NewAction* msg);
  static const ::NavMessage::SpeedLimit& nodevelocitylimit(const NewAction* msg);
  static const ::NavMessage::SpeedLimit& nodeangularlimit(const NewAction* msg);
  static const ::NavMessage::SpeedLimit& adjustvelocitylimit(const NewAction* msg);
  static const ::NavMessage::SpeedLimit& adjusthorizonlimit(const NewAction* msg);
};

const ::NavMessage::PathNode&
NewAction::_Internal::spacenode(const NewAction* msg) {
  return *msg->spacenode_;
}
const ::NavMessage::PathNode&
NewAction::_Internal::passnode(const NewAction* msg) {
  return *msg->passnode_;
}
const ::NavMessage::PathNode&
NewAction::_Internal::streetnode(const NewAction* msg) {
  return *msg->streetnode_;
}
const ::NavMessage::SpeedLimit&
NewAction::_Internal::inoutvlimit(const NewAction* msg) {
  return *msg->inoutvlimit_;
}
const ::NavMessage::SpeedLimit&
NewAction::_Internal::nodevelocitylimit(const NewAction* msg) {
  return *msg->nodevelocitylimit_;
}
const ::NavMessage::SpeedLimit&
NewAction::_Internal::nodeangularlimit(const NewAction* msg) {
  return *msg->nodeangularlimit_;
}
const ::NavMessage::SpeedLimit&
NewAction::_Internal::adjustvelocitylimit(const NewAction* msg) {
  return *msg->adjustvelocitylimit_;
}
const ::NavMessage::SpeedLimit&
NewAction::_Internal::adjusthorizonlimit(const NewAction* msg) {
  return *msg->adjusthorizonlimit_;
}
NewAction::NewAction(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  pathnodes_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.NewAction)
}
NewAction::NewAction(const NewAction& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      pathnodes_(from.pathnodes_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_spacenode()) {
    spacenode_ = new ::NavMessage::PathNode(*from.spacenode_);
  } else {
    spacenode_ = nullptr;
  }
  if (from._internal_has_passnode()) {
    passnode_ = new ::NavMessage::PathNode(*from.passnode_);
  } else {
    passnode_ = nullptr;
  }
  if (from._internal_has_streetnode()) {
    streetnode_ = new ::NavMessage::PathNode(*from.streetnode_);
  } else {
    streetnode_ = nullptr;
  }
  if (from._internal_has_inoutvlimit()) {
    inoutvlimit_ = new ::NavMessage::SpeedLimit(*from.inoutvlimit_);
  } else {
    inoutvlimit_ = nullptr;
  }
  if (from._internal_has_nodevelocitylimit()) {
    nodevelocitylimit_ = new ::NavMessage::SpeedLimit(*from.nodevelocitylimit_);
  } else {
    nodevelocitylimit_ = nullptr;
  }
  if (from._internal_has_nodeangularlimit()) {
    nodeangularlimit_ = new ::NavMessage::SpeedLimit(*from.nodeangularlimit_);
  } else {
    nodeangularlimit_ = nullptr;
  }
  if (from._internal_has_adjustvelocitylimit()) {
    adjustvelocitylimit_ = new ::NavMessage::SpeedLimit(*from.adjustvelocitylimit_);
  } else {
    adjustvelocitylimit_ = nullptr;
  }
  if (from._internal_has_adjusthorizonlimit()) {
    adjusthorizonlimit_ = new ::NavMessage::SpeedLimit(*from.adjusthorizonlimit_);
  } else {
    adjusthorizonlimit_ = nullptr;
  }
  ::memcpy(&type_, &from.type_,
    static_cast<size_t>(reinterpret_cast<char*>(&changedmode_) -
    reinterpret_cast<char*>(&type_)) + sizeof(changedmode_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.NewAction)
}

void NewAction::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_NewAction_message_2eproto.base);
  ::memset(&spacenode_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&changedmode_) -
      reinterpret_cast<char*>(&spacenode_)) + sizeof(changedmode_));
}

NewAction::~NewAction() {
  // @@protoc_insertion_point(destructor:NavMessage.NewAction)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void NewAction::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete spacenode_;
  if (this != internal_default_instance()) delete passnode_;
  if (this != internal_default_instance()) delete streetnode_;
  if (this != internal_default_instance()) delete inoutvlimit_;
  if (this != internal_default_instance()) delete nodevelocitylimit_;
  if (this != internal_default_instance()) delete nodeangularlimit_;
  if (this != internal_default_instance()) delete adjustvelocitylimit_;
  if (this != internal_default_instance()) delete adjusthorizonlimit_;
}

void NewAction::ArenaDtor(void* object) {
  NewAction* _this = reinterpret_cast< NewAction* >(object);
  (void)_this;
}
void NewAction::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void NewAction::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const NewAction& NewAction::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NewAction_message_2eproto.base);
  return *internal_default_instance();
}


void NewAction::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.NewAction)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  pathnodes_.Clear();
  if (GetArena() == nullptr && spacenode_ != nullptr) {
    delete spacenode_;
  }
  spacenode_ = nullptr;
  if (GetArena() == nullptr && passnode_ != nullptr) {
    delete passnode_;
  }
  passnode_ = nullptr;
  if (GetArena() == nullptr && streetnode_ != nullptr) {
    delete streetnode_;
  }
  streetnode_ = nullptr;
  if (GetArena() == nullptr && inoutvlimit_ != nullptr) {
    delete inoutvlimit_;
  }
  inoutvlimit_ = nullptr;
  if (GetArena() == nullptr && nodevelocitylimit_ != nullptr) {
    delete nodevelocitylimit_;
  }
  nodevelocitylimit_ = nullptr;
  if (GetArena() == nullptr && nodeangularlimit_ != nullptr) {
    delete nodeangularlimit_;
  }
  nodeangularlimit_ = nullptr;
  if (GetArena() == nullptr && adjustvelocitylimit_ != nullptr) {
    delete adjustvelocitylimit_;
  }
  adjustvelocitylimit_ = nullptr;
  if (GetArena() == nullptr && adjusthorizonlimit_ != nullptr) {
    delete adjusthorizonlimit_;
  }
  adjusthorizonlimit_ = nullptr;
  ::memset(&type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&changedmode_) -
      reinterpret_cast<char*>(&type_)) + sizeof(changedmode_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* NewAction::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 type = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.PathNode spaceNode = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_spacenode(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.PathNode passNode = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_passnode(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.PathNode streetNode = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_streetnode(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .NavMessage.PathNode pathNodes = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_pathnodes(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else goto handle_unusual;
        continue;
      // .NavMessage.SpeedLimit InOutVLimit = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_inoutvlimit(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.SpeedLimit NodeVelocityLimit = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_nodevelocitylimit(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.SpeedLimit NodeAngularLimit = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_nodeangularlimit(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.SpeedLimit adjustVelocitylimit = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_adjustvelocitylimit(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.SpeedLimit adjustHorizonLimit = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_adjusthorizonlimit(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float wheelbase = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 93)) {
          wheelbase_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 changedMode = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
          changedmode_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* NewAction::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.NewAction)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 type = 1;
  if (this->type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_type(), target);
  }

  // .NavMessage.PathNode spaceNode = 2;
  if (this->has_spacenode()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::spacenode(this), target, stream);
  }

  // .NavMessage.PathNode passNode = 3;
  if (this->has_passnode()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::passnode(this), target, stream);
  }

  // .NavMessage.PathNode streetNode = 4;
  if (this->has_streetnode()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::streetnode(this), target, stream);
  }

  // repeated .NavMessage.PathNode pathNodes = 5;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_pathnodes_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(5, this->_internal_pathnodes(i), target, stream);
  }

  // .NavMessage.SpeedLimit InOutVLimit = 6;
  if (this->has_inoutvlimit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        6, _Internal::inoutvlimit(this), target, stream);
  }

  // .NavMessage.SpeedLimit NodeVelocityLimit = 7;
  if (this->has_nodevelocitylimit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        7, _Internal::nodevelocitylimit(this), target, stream);
  }

  // .NavMessage.SpeedLimit NodeAngularLimit = 8;
  if (this->has_nodeangularlimit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        8, _Internal::nodeangularlimit(this), target, stream);
  }

  // .NavMessage.SpeedLimit adjustVelocitylimit = 9;
  if (this->has_adjustvelocitylimit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        9, _Internal::adjustvelocitylimit(this), target, stream);
  }

  // .NavMessage.SpeedLimit adjustHorizonLimit = 10;
  if (this->has_adjusthorizonlimit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        10, _Internal::adjusthorizonlimit(this), target, stream);
  }

  // float wheelbase = 11;
  if (!(this->wheelbase() <= 0 && this->wheelbase() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(11, this->_internal_wheelbase(), target);
  }

  // int32 changedMode = 12;
  if (this->changedmode() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(12, this->_internal_changedmode(), target);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .NavMessage.PathNode pathNodes = 5;
  total_size += 1UL * this->_internal_pathnodes_size();
  for (const auto& msg : this->pathnodes_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // .NavMessage.PathNode spaceNode = 2;
  if (this->has_spacenode()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *spacenode_);
  }

  // .NavMessage.PathNode passNode = 3;
  if (this->has_passnode()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *passnode_);
  }

  // .NavMessage.PathNode streetNode = 4;
  if (this->has_streetnode()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *streetnode_);
  }

  // .NavMessage.SpeedLimit InOutVLimit = 6;
  if (this->has_inoutvlimit()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *inoutvlimit_);
  }

  // .NavMessage.SpeedLimit NodeVelocityLimit = 7;
  if (this->has_nodevelocitylimit()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *nodevelocitylimit_);
  }

  // .NavMessage.SpeedLimit NodeAngularLimit = 8;
  if (this->has_nodeangularlimit()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *nodeangularlimit_);
  }

  // .NavMessage.SpeedLimit adjustVelocitylimit = 9;
  if (this->has_adjustvelocitylimit()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *adjustvelocitylimit_);
  }

  // .NavMessage.SpeedLimit adjustHorizonLimit = 10;
  if (this->has_adjusthorizonlimit()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *adjusthorizonlimit_);
  }

  // int32 type = 1;
  if (this->type() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_type());
  }

  // float wheelbase = 11;
  if (!(this->wheelbase() <= 0 && this->wheelbase() >= 0)) {
    total_size += 1 + 4;
  }

  // int32 changedMode = 12;
  if (this->changedmode() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_changedmode());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void NewAction::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.NewAction)
  GOOGLE_DCHECK_NE(&from, this);
  const NewAction* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NewAction>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.NewAction)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.NewAction)
    MergeFrom(*source);
  }
}

void NewAction::MergeFrom(const NewAction& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.NewAction)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  pathnodes_.MergeFrom(from.pathnodes_);
  if (from.has_spacenode()) {
    _internal_mutable_spacenode()->::NavMessage::PathNode::MergeFrom(from._internal_spacenode());
  }
  if (from.has_passnode()) {
    _internal_mutable_passnode()->::NavMessage::PathNode::MergeFrom(from._internal_passnode());
  }
  if (from.has_streetnode()) {
    _internal_mutable_streetnode()->::NavMessage::PathNode::MergeFrom(from._internal_streetnode());
  }
  if (from.has_inoutvlimit()) {
    _internal_mutable_inoutvlimit()->::NavMessage::SpeedLimit::MergeFrom(from._internal_inoutvlimit());
  }
  if (from.has_nodevelocitylimit()) {
    _internal_mutable_nodevelocitylimit()->::NavMessage::SpeedLimit::MergeFrom(from._internal_nodevelocitylimit());
  }
  if (from.has_nodeangularlimit()) {
    _internal_mutable_nodeangularlimit()->::NavMessage::SpeedLimit::MergeFrom(from._internal_nodeangularlimit());
  }
  if (from.has_adjustvelocitylimit()) {
    _internal_mutable_adjustvelocitylimit()->::NavMessage::SpeedLimit::MergeFrom(from._internal_adjustvelocitylimit());
  }
  if (from.has_adjusthorizonlimit()) {
    _internal_mutable_adjusthorizonlimit()->::NavMessage::SpeedLimit::MergeFrom(from._internal_adjusthorizonlimit());
  }
  if (from.type() != 0) {
    _internal_set_type(from._internal_type());
  }
  if (!(from.wheelbase() <= 0 && from.wheelbase() >= 0)) {
    _internal_set_wheelbase(from._internal_wheelbase());
  }
  if (from.changedmode() != 0) {
    _internal_set_changedmode(from._internal_changedmode());
  }
}

void NewAction::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.NewAction)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void NewAction::InternalSwap(NewAction* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  pathnodes_.InternalSwap(&other->pathnodes_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NewAction, changedmode_)
      + sizeof(NewAction::changedmode_)
      - PROTOBUF_FIELD_OFFSET(NewAction, spacenode_)>(
          reinterpret_cast<char*>(&spacenode_),
          reinterpret_cast<char*>(&other->spacenode_));
}

::PROTOBUF_NAMESPACE_ID::Metadata NewAction::GetMetadata() const {
  return GetMetadataStatic();
}


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

void NavCmd::InitAsDefaultInstance() {
}
class NavCmd::_Internal {
 public:
};

NavCmd::NavCmd(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  newactions_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.NavCmd)
}
NavCmd::NavCmd(const NavCmd& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      newactions_(from.newactions_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_key().empty()) {
    key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_key(),
      GetArena());
  }
  action_ = from.action_;
  // @@protoc_insertion_point(copy_constructor:NavMessage.NavCmd)
}

void NavCmd::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_NavCmd_message_2eproto.base);
  key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  action_ = 0;
}

NavCmd::~NavCmd() {
  // @@protoc_insertion_point(destructor:NavMessage.NavCmd)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void NavCmd::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  key_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void NavCmd::ArenaDtor(void* object) {
  NavCmd* _this = reinterpret_cast< NavCmd* >(object);
  (void)_this;
}
void NavCmd::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void NavCmd::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const NavCmd& NavCmd::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NavCmd_message_2eproto.base);
  return *internal_default_instance();
}


void NavCmd::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.NavCmd)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  newactions_.Clear();
  key_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  action_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* NavCmd::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 action = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          action_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string key = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_key();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "NavMessage.NavCmd.key"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .NavMessage.NewAction newActions = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_newactions(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* NavCmd::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.NavCmd)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 action = 1;
  if (this->action() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_action(), target);
  }

  // string key = 2;
  if (this->key().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "NavMessage.NavCmd.key");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_key(), target);
  }

  // repeated .NavMessage.NewAction newActions = 5;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_newactions_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(5, this->_internal_newactions(i), target, stream);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .NavMessage.NewAction newActions = 5;
  total_size += 1UL * this->_internal_newactions_size();
  for (const auto& msg : this->newactions_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string key = 2;
  if (this->key().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // int32 action = 1;
  if (this->action() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_action());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void NavCmd::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.NavCmd)
  GOOGLE_DCHECK_NE(&from, this);
  const NavCmd* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NavCmd>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.NavCmd)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.NavCmd)
    MergeFrom(*source);
  }
}

void NavCmd::MergeFrom(const NavCmd& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.NavCmd)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  newactions_.MergeFrom(from.newactions_);
  if (from.key().size() > 0) {
    _internal_set_key(from._internal_key());
  }
  if (from.action() != 0) {
    _internal_set_action(from._internal_action());
  }
}

void NavCmd::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.NavCmd)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void NavCmd::InternalSwap(NavCmd* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  newactions_.InternalSwap(&other->newactions_);
  key_.Swap(&other->key_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(action_, other->action_);
}

::PROTOBUF_NAMESPACE_ID::Metadata NavCmd::GetMetadata() const {
  return GetMetadataStatic();
}


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

void NavStatu::InitAsDefaultInstance() {
  ::NavMessage::_NavStatu_default_instance_._instance.get_mutable()->selected_traj_ = const_cast< ::NavMessage::Trajectory*>(
      ::NavMessage::Trajectory::internal_default_instance());
  ::NavMessage::_NavStatu_default_instance_._instance.get_mutable()->predict_traj_ = const_cast< ::NavMessage::Trajectory*>(
      ::NavMessage::Trajectory::internal_default_instance());
}
class NavStatu::_Internal {
 public:
  static const ::NavMessage::Trajectory& selected_traj(const NavStatu* msg);
  static const ::NavMessage::Trajectory& predict_traj(const NavStatu* msg);
};

const ::NavMessage::Trajectory&
NavStatu::_Internal::selected_traj(const NavStatu* msg) {
  return *msg->selected_traj_;
}
const ::NavMessage::Trajectory&
NavStatu::_Internal::predict_traj(const NavStatu* msg) {
  return *msg->predict_traj_;
}
NavStatu::NavStatu(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.NavStatu)
}
NavStatu::NavStatu(const NavStatu& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_key().empty()) {
    key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_key(),
      GetArena());
  }
  if (from._internal_has_selected_traj()) {
    selected_traj_ = new ::NavMessage::Trajectory(*from.selected_traj_);
  } else {
    selected_traj_ = nullptr;
  }
  if (from._internal_has_predict_traj()) {
    predict_traj_ = new ::NavMessage::Trajectory(*from.predict_traj_);
  } else {
    predict_traj_ = nullptr;
  }
  ::memcpy(&statu_, &from.statu_,
    static_cast<size_t>(reinterpret_cast<char*>(&move_mode_) -
    reinterpret_cast<char*>(&statu_)) + sizeof(move_mode_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.NavStatu)
}

void NavStatu::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_NavStatu_message_2eproto.base);
  key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&selected_traj_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&move_mode_) -
      reinterpret_cast<char*>(&selected_traj_)) + sizeof(move_mode_));
}

NavStatu::~NavStatu() {
  // @@protoc_insertion_point(destructor:NavMessage.NavStatu)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void NavStatu::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  key_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete selected_traj_;
  if (this != internal_default_instance()) delete predict_traj_;
}

void NavStatu::ArenaDtor(void* object) {
  NavStatu* _this = reinterpret_cast< NavStatu* >(object);
  (void)_this;
}
void NavStatu::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void NavStatu::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const NavStatu& NavStatu::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NavStatu_message_2eproto.base);
  return *internal_default_instance();
}


void NavStatu::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.NavStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  key_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && selected_traj_ != nullptr) {
    delete selected_traj_;
  }
  selected_traj_ = nullptr;
  if (GetArena() == nullptr && predict_traj_ != nullptr) {
    delete predict_traj_;
  }
  predict_traj_ = nullptr;
  ::memset(&statu_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&move_mode_) -
      reinterpret_cast<char*>(&statu_)) + sizeof(move_mode_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* NavStatu::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 statu = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          statu_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool main_agv = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          main_agv_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 move_mode = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          move_mode_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string key = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_key();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "NavMessage.NavStatu.key"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.Trajectory selected_traj = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_selected_traj(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.Trajectory predict_traj = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_predict_traj(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* NavStatu::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.NavStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 statu = 1;
  if (this->statu() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_statu(), target);
  }

  // bool main_agv = 2;
  if (this->main_agv() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_main_agv(), target);
  }

  // int32 move_mode = 3;
  if (this->move_mode() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_move_mode(), target);
  }

  // string key = 4;
  if (this->key().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "NavMessage.NavStatu.key");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_key(), target);
  }

  // .NavMessage.Trajectory selected_traj = 6;
  if (this->has_selected_traj()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        6, _Internal::selected_traj(this), target, stream);
  }

  // .NavMessage.Trajectory predict_traj = 7;
  if (this->has_predict_traj()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        7, _Internal::predict_traj(this), target, stream);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string key = 4;
  if (this->key().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // .NavMessage.Trajectory selected_traj = 6;
  if (this->has_selected_traj()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *selected_traj_);
  }

  // .NavMessage.Trajectory predict_traj = 7;
  if (this->has_predict_traj()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *predict_traj_);
  }

  // int32 statu = 1;
  if (this->statu() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_statu());
  }

  // bool main_agv = 2;
  if (this->main_agv() != 0) {
    total_size += 1 + 1;
  }

  // int32 move_mode = 3;
  if (this->move_mode() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_move_mode());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void NavStatu::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.NavStatu)
  GOOGLE_DCHECK_NE(&from, this);
  const NavStatu* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NavStatu>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.NavStatu)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.NavStatu)
    MergeFrom(*source);
  }
}

void NavStatu::MergeFrom(const NavStatu& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.NavStatu)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.key().size() > 0) {
    _internal_set_key(from._internal_key());
  }
  if (from.has_selected_traj()) {
    _internal_mutable_selected_traj()->::NavMessage::Trajectory::MergeFrom(from._internal_selected_traj());
  }
  if (from.has_predict_traj()) {
    _internal_mutable_predict_traj()->::NavMessage::Trajectory::MergeFrom(from._internal_predict_traj());
  }
  if (from.statu() != 0) {
    _internal_set_statu(from._internal_statu());
  }
  if (from.main_agv() != 0) {
    _internal_set_main_agv(from._internal_main_agv());
  }
  if (from.move_mode() != 0) {
    _internal_set_move_mode(from._internal_move_mode());
  }
}

void NavStatu::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.NavStatu)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void NavStatu::InternalSwap(NavStatu* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  key_.Swap(&other->key_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NavStatu, move_mode_)
      + sizeof(NavStatu::move_mode_)
      - PROTOBUF_FIELD_OFFSET(NavStatu, selected_traj_)>(
          reinterpret_cast<char*>(&selected_traj_),
          reinterpret_cast<char*>(&other->selected_traj_));
}

::PROTOBUF_NAMESPACE_ID::Metadata NavStatu::GetMetadata() const {
  return GetMetadataStatic();
}


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

void RobotStatu::InitAsDefaultInstance() {
  ::NavMessage::_RobotStatu_default_instance_._instance.get_mutable()->agvstatu_ = const_cast< ::NavMessage::AgvStatu*>(
      ::NavMessage::AgvStatu::internal_default_instance());
}
class RobotStatu::_Internal {
 public:
  static const ::NavMessage::AgvStatu& agvstatu(const RobotStatu* msg);
};

const ::NavMessage::AgvStatu&
RobotStatu::_Internal::agvstatu(const RobotStatu* msg) {
  return *msg->agvstatu_;
}
RobotStatu::RobotStatu(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.RobotStatu)
}
RobotStatu::RobotStatu(const RobotStatu& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_agvstatu()) {
    agvstatu_ = new ::NavMessage::AgvStatu(*from.agvstatu_);
  } else {
    agvstatu_ = nullptr;
  }
  ::memcpy(&x_, &from.x_,
    static_cast<size_t>(reinterpret_cast<char*>(&theta_) -
    reinterpret_cast<char*>(&x_)) + sizeof(theta_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.RobotStatu)
}

void RobotStatu::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RobotStatu_message_2eproto.base);
  ::memset(&agvstatu_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&theta_) -
      reinterpret_cast<char*>(&agvstatu_)) + sizeof(theta_));
}

RobotStatu::~RobotStatu() {
  // @@protoc_insertion_point(destructor:NavMessage.RobotStatu)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RobotStatu::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete agvstatu_;
}

void RobotStatu::ArenaDtor(void* object) {
  RobotStatu* _this = reinterpret_cast< RobotStatu* >(object);
  (void)_this;
}
void RobotStatu::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void RobotStatu::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const RobotStatu& RobotStatu::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RobotStatu_message_2eproto.base);
  return *internal_default_instance();
}


void RobotStatu::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.RobotStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && agvstatu_ != nullptr) {
    delete agvstatu_;
  }
  agvstatu_ = nullptr;
  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&theta_) -
      reinterpret_cast<char*>(&x_)) + sizeof(theta_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RobotStatu::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float x = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float theta = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          theta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // .NavMessage.AgvStatu agvStatu = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_agvstatu(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* RobotStatu::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.RobotStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float x = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_x(), target);
  }

  // float y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_y(), target);
  }

  // float theta = 3;
  if (!(this->theta() <= 0 && this->theta() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_theta(), target);
  }

  // .NavMessage.AgvStatu agvStatu = 4;
  if (this->has_agvstatu()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::agvstatu(this), target, stream);
  }

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

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

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .NavMessage.AgvStatu agvStatu = 4;
  if (this->has_agvstatu()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *agvstatu_);
  }

  // float x = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    total_size += 1 + 4;
  }

  // float y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    total_size += 1 + 4;
  }

  // float theta = 3;
  if (!(this->theta() <= 0 && this->theta() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void RobotStatu::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.RobotStatu)
  GOOGLE_DCHECK_NE(&from, this);
  const RobotStatu* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RobotStatu>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.RobotStatu)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.RobotStatu)
    MergeFrom(*source);
  }
}

void RobotStatu::MergeFrom(const RobotStatu& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.RobotStatu)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_agvstatu()) {
    _internal_mutable_agvstatu()->::NavMessage::AgvStatu::MergeFrom(from._internal_agvstatu());
  }
  if (!(from.x() <= 0 && from.x() >= 0)) {
    _internal_set_x(from._internal_x());
  }
  if (!(from.y() <= 0 && from.y() >= 0)) {
    _internal_set_y(from._internal_y());
  }
  if (!(from.theta() <= 0 && from.theta() >= 0)) {
    _internal_set_theta(from._internal_theta());
  }
}

void RobotStatu::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.RobotStatu)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void RobotStatu::InternalSwap(RobotStatu* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RobotStatu, theta_)
      + sizeof(RobotStatu::theta_)
      - PROTOBUF_FIELD_OFFSET(RobotStatu, agvstatu_)>(
          reinterpret_cast<char*>(&agvstatu_),
          reinterpret_cast<char*>(&other->agvstatu_));
}

::PROTOBUF_NAMESPACE_ID::Metadata RobotStatu::GetMetadata() const {
  return GetMetadataStatic();
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace NavMessage
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::NavMessage::LidarOdomStatu* Arena::CreateMaybeMessage< ::NavMessage::LidarOdomStatu >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::LidarOdomStatu >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::AgvStatu* Arena::CreateMaybeMessage< ::NavMessage::AgvStatu >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::AgvStatu >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::ToAgvCmd* Arena::CreateMaybeMessage< ::NavMessage::ToAgvCmd >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::ToAgvCmd >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::SpeedLimit* Arena::CreateMaybeMessage< ::NavMessage::SpeedLimit >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::SpeedLimit >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::Pose2d* Arena::CreateMaybeMessage< ::NavMessage::Pose2d >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::Pose2d >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::PathNode* Arena::CreateMaybeMessage< ::NavMessage::PathNode >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::PathNode >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::Trajectory* Arena::CreateMaybeMessage< ::NavMessage::Trajectory >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::Trajectory >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::NewAction* Arena::CreateMaybeMessage< ::NavMessage::NewAction >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::NewAction >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::NavCmd* Arena::CreateMaybeMessage< ::NavMessage::NavCmd >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::NavCmd >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::NavStatu* Arena::CreateMaybeMessage< ::NavMessage::NavStatu >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::NavStatu >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::RobotStatu* Arena::CreateMaybeMessage< ::NavMessage::RobotStatu >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::RobotStatu >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
