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

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "Global_Uconnect_VehicleInfo.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.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)

namespace com {
namespace fca {
namespace uconnect {
namespace global {
class VehicleInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<VehicleInfo> {
} _VehicleInfo_default_instance_;
class TirePressureDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<TirePressure> {
} _TirePressure_default_instance_;
class VehicleStatus_VehicleStatusTypeEntryDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<VehicleStatus::VehicleStatus_VehicleStatusTypeEntry> {
} _VehicleStatus_VehicleStatusTypeEntry_default_instance_;
class VehicleStatus_VehicleStatusParametersEntryDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<VehicleStatus::VehicleStatus_VehicleStatusParametersEntry> {
} _VehicleStatus_VehicleStatusParametersEntry_default_instance_;
class VehicleStatusDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<VehicleStatus> {
} _VehicleStatus_default_instance_;

namespace protobuf_Global_5fUconnect_5fVehicleInfo_2eproto {


namespace {

::google::protobuf::Metadata file_level_metadata[5];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[6];

}  // namespace

PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
    const TableStruct::entries[] = {
  {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
};

PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
    const TableStruct::aux[] = {
  ::google::protobuf::internal::AuxillaryParseTableField(),
};
PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
    TableStruct::schema[] = {
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
};

const ::google::protobuf::uint32 TableStruct::offsets[] = {
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, vehiclelocation_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, vehiclespeed_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, odometer_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, enginestatusenum_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, language_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, country_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, vehicletype_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, vin_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, brand_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, model_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, year_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, recentvehiclelocation1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleInfo, recentvehiclelocation2_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, fltirepressure_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, fltirests_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, frtirepressure_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, frtirests_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, rltirepressure_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, rltirests_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, rrtirepressure_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, rrtirests_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, rl2tirepressure_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TirePressure, rr2tirepressure_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleStatus, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleStatus, vehiclestatustype_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleStatus, vehiclestatusparameters_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleStatus, enginestatusenum_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleStatus, fuellevel_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleStatus, odometer_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleStatus, interiortemperature_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(VehicleStatus, vehiclelocationtype_),
};

static const ::google::protobuf::internal::MigrationSchema schemas[] = {
  { 0, -1, sizeof(VehicleInfo)},
  { 18, -1, sizeof(TirePressure)},
  { 33, -1, sizeof(VehicleStatus)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&_VehicleInfo_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_TirePressure_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_VehicleStatus_VehicleStatusTypeEntry_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_VehicleStatus_VehicleStatusParametersEntry_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_VehicleStatus_default_instance_),
};

namespace {

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "Global_Uconnect_VehicleInfo.proto", schemas, file_default_instances, TableStruct::offsets, factory,
      file_level_metadata, file_level_enum_descriptors, NULL);
file_level_metadata[2].reflection = VehicleStatus::VehicleStatus_VehicleStatusTypeEntry::CreateReflection(file_level_metadata[2].descriptor, _VehicleStatus_VehicleStatusTypeEntry_default_instance_.get_mutable());
file_level_metadata[3].reflection = VehicleStatus::VehicleStatus_VehicleStatusParametersEntry::CreateReflection(file_level_metadata[3].descriptor, _VehicleStatus_VehicleStatusParametersEntry_default_instance_.get_mutable());
}

void protobuf_AssignDescriptorsOnce() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 5);
}

}  // namespace

void TableStruct::Shutdown() {
  _VehicleInfo_default_instance_.Shutdown();
  delete file_level_metadata[0].reflection;
  _TirePressure_default_instance_.Shutdown();
  delete file_level_metadata[1].reflection;
  _VehicleStatus_default_instance_.Shutdown();
  delete file_level_metadata[4].reflection;
  delete file_level_metadata[2].reflection;
  delete file_level_metadata[3].reflection;
}

void TableStruct::InitDefaultsImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::internal::InitProtobufDefaults();
  ::com::fca::uconnect::global::protobuf_Global_5fUconnect_5fGNSS_2eproto::InitDefaults();
  _VehicleInfo_default_instance_.DefaultConstruct();
  _TirePressure_default_instance_.DefaultConstruct();
  _VehicleStatus_VehicleStatusTypeEntry_default_instance_.DefaultConstruct();
  _VehicleStatus_VehicleStatusParametersEntry_default_instance_.DefaultConstruct();
  _VehicleStatus_default_instance_.DefaultConstruct();
  _VehicleInfo_default_instance_.get_mutable()->vehiclelocation_ = const_cast< ::com::fca::uconnect::global::Location*>(
      ::com::fca::uconnect::global::Location::internal_default_instance());
  _VehicleInfo_default_instance_.get_mutable()->recentvehiclelocation1_ = const_cast< ::com::fca::uconnect::global::Location*>(
      ::com::fca::uconnect::global::Location::internal_default_instance());
  _VehicleInfo_default_instance_.get_mutable()->recentvehiclelocation2_ = const_cast< ::com::fca::uconnect::global::Location*>(
      ::com::fca::uconnect::global::Location::internal_default_instance());
  _VehicleStatus_VehicleStatusTypeEntry_default_instance_.get_mutable()->set_default_instance(_VehicleStatus_VehicleStatusTypeEntry_default_instance_.get_mutable());
  _VehicleStatus_VehicleStatusTypeEntry_default_instance_.get_mutable()->InitAsDefaultInstance();
  _VehicleStatus_VehicleStatusParametersEntry_default_instance_.get_mutable()->set_default_instance(_VehicleStatus_VehicleStatusParametersEntry_default_instance_.get_mutable());
  _VehicleStatus_VehicleStatusParametersEntry_default_instance_.get_mutable()->InitAsDefaultInstance();
  _VehicleStatus_default_instance_.get_mutable()->vehiclelocationtype_ = const_cast< ::com::fca::uconnect::global::Location*>(
      ::com::fca::uconnect::global::Location::internal_default_instance());
}

void InitDefaults() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
}
void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] = {
      "\n!Global_Uconnect_VehicleInfo.proto\022\027com"
      ".fca.uconnect.global\032\032Global_Uconnect_GN"
      "SS.proto\"\247\007\n\013VehicleInfo\022:\n\017vehicleLocat"
      "ion\030\001 \001(\0132!.com.fca.uconnect.global.Loca"
      "tion\022\024\n\014vehicleSpeed\030\004 \001(\002\022\020\n\010odometer\030\005"
      " \001(\005\022O\n\020engineStatusEnum\030\006 \001(\01625.com.fca"
      ".uconnect.global.VehicleInfo.EngineStatu"
      "sEnum\022\020\n\010language\030\007 \001(\t\022\017\n\007country\030\010 \001(\t"
      "\022I\n\013vehicleType\030\t \001(\01624.com.fca.uconnect"
      ".global.VehicleInfo.VehicleTypeEnum\022\013\n\003v"
      "in\030\n \001(\t\022\r\n\005brand\030\013 \001(\t\022\r\n\005model\030\016 \001(\t\022\014"
      "\n\004year\030\017 \001(\t\022A\n\026recentVehicleLocation1\030\014"
      " \001(\0132!.com.fca.uconnect.global.Location\022"
      "A\n\026recentVehicleLocation2\030\r \001(\0132!.com.fc"
      "a.uconnect.global.Location\"W\n\020EngineStat"
      "usEnum\022\010\n\004STOP\020\000\022\t\n\005CRANK\020\001\022\010\n\004IDLE\020\002\022\007\n"
      "\003RUN\020\003\022\t\n\005STALL\020\004\022\020\n\014REQUESTSTART\020\005\"\334\002\n\017"
      "VehicleTypeEnum\022\025\n\021PASSENGER_CLASSM1\020\000\022\033"
      "\n\027BUSESANDCOACHES_CLASSM2\020\001\022\033\n\027BUSESANDC"
      "OACHES_CLASSM3\020\002\022\033\n\027LIGHTCOMMERCIAL_CLAS"
      "SN1\020\003\022\025\n\021HEAVYDUTY_CLASSN2\020\004\022\025\n\021HEAVYDUT"
      "Y_CLASSN3\020\005\022\027\n\023MOTORCYCLE_CLASSL1E\020\006\022\027\n\023"
      "MOTORCYCLE_CLASSL2E\020\007\022\027\n\023MOTORCYCLE_CLAS"
      "SL3E\020\010\022\027\n\023MOTORCYCLE_CLASSL4E\020\t\022\027\n\023MOTOR"
      "CYCLE_CLASSL5E\020\n\022\027\n\023MOTORCYCLE_CLASSL6E\020"
      "\013\022\027\n\023MOTORCYCLE_CLASSL7E\020\014\"\225\004\n\014TirePress"
      "ure\022\026\n\016flTirePressure\030\001 \001(\002\022G\n\tflTireSts"
      "\030\007 \001(\01624.com.fca.uconnect.global.TirePre"
      "ssure.TireStatusEnum\022\026\n\016frTirePressure\030\002"
      " \001(\002\022G\n\tfrTireSts\030\010 \001(\01624.com.fca.uconne"
      "ct.global.TirePressure.TireStatusEnum\022\026\n"
      "\016rlTirePressure\030\003 \001(\002\022G\n\trlTireSts\030\t \001(\016"
      "24.com.fca.uconnect.global.TirePressure."
      "TireStatusEnum\022\026\n\016rrTirePressure\030\004 \001(\002\022G"
      "\n\trrTireSts\030\n \001(\01624.com.fca.uconnect.glo"
      "bal.TirePressure.TireStatusEnum\022\027\n\017rl2Ti"
      "rePressure\030\005 \001(\002\022\027\n\017rr2TirePressure\030\006 \001("
      "\002\"O\n\016TireStatusEnum\022\n\n\006NORMAL\020\000\022\007\n\003LOW\020\001"
      "\022\010\n\004HIGH\020\002\022\007\n\003SNA\020\003\022\025\n\021SIGNIFICANTLY_LOW"
      "\020\004\"\261\007\n\rVehicleStatus\022X\n\021vehicleStatusTyp"
      "e\030\006 \003(\0132=.com.fca.uconnect.global.Vehicl"
      "eStatus.VehicleStatusTypeEntry\022d\n\027vehicl"
      "eStatusParameters\030\001 \003(\0132C.com.fca.uconne"
      "ct.global.VehicleStatus.VehicleStatusPar"
      "ametersEntry\022Q\n\020engineStatusEnum\030\002 \001(\01627"
      ".com.fca.uconnect.global.VehicleStatus.E"
      "ngineStatusEnum\022\021\n\tfuelLevel\030\003 \001(\005\022\020\n\010od"
      "ometer\030\004 \001(\005\022\033\n\023interiorTemperature\030\005 \001("
      "\005\022>\n\023vehicleLocationType\030\007 \001(\0132!.com.fca"
      ".uconnect.global.Location\032e\n\026VehicleStat"
      "usTypeEntry\022\013\n\003key\030\001 \001(\t\022:\n\005value\030\002 \001(\0162"
      "+.com.fca.uconnect.global.VehicleStatus."
      "Type:\0028\001\032m\n\034VehicleStatusParametersEntry"
      "\022\013\n\003key\030\001 \001(\t\022<\n\005value\030\002 \001(\0162-.com.fca.u"
      "connect.global.VehicleStatus.Status:\0028\001\""
      "W\n\020EngineStatusEnum\022\010\n\004STOP\020\000\022\t\n\005CRANK\020\001"
      "\022\010\n\004IDLE\020\002\022\007\n\003RUN\020\003\022\t\n\005STALL\020\004\022\020\n\014REQUES"
      "TSTART\020\005\"H\n\006Status\022\n\n\006CLOSED\020\000\022\023\n\017CLOSED"
      "_UNLOCKED\020\001\022\021\n\rCLOSED_LOCKED\020\002\022\n\n\006OPENED"
      "\020\003\"\221\001\n\004Type\022\n\n\006FLDOOR\020\000\022\n\n\006FRDOOR\020\001\022\n\n\006R"
      "LDOOR\020\002\022\n\n\006RRDOOR\020\003\022\014\n\010FLWINDOW\020\004\022\014\n\010FRW"
      "INDOW\020\005\022\014\n\010LLWINDOW\020\006\022\014\n\010LRWINDOW\020\007\022\010\n\004H"
      "OOD\020\010\022\t\n\005TRUNK\020\t\022\014\n\010LIFTGATE\020\nP\000b\006proto3"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 2520);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "Global_Uconnect_VehicleInfo.proto", &protobuf_RegisterTypes);
  ::com::fca::uconnect::global::protobuf_Global_5fUconnect_5fGNSS_2eproto::AddDescriptors();
  ::google::protobuf::internal::OnShutdown(&TableStruct::Shutdown);
}

void AddDescriptors() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;

}  // namespace protobuf_Global_5fUconnect_5fVehicleInfo_2eproto

const ::google::protobuf::EnumDescriptor* VehicleInfo_EngineStatusEnum_descriptor() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_enum_descriptors[0];
}
bool VehicleInfo_EngineStatusEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const VehicleInfo_EngineStatusEnum VehicleInfo::STOP;
const VehicleInfo_EngineStatusEnum VehicleInfo::CRANK;
const VehicleInfo_EngineStatusEnum VehicleInfo::IDLE;
const VehicleInfo_EngineStatusEnum VehicleInfo::RUN;
const VehicleInfo_EngineStatusEnum VehicleInfo::STALL;
const VehicleInfo_EngineStatusEnum VehicleInfo::REQUESTSTART;
const VehicleInfo_EngineStatusEnum VehicleInfo::EngineStatusEnum_MIN;
const VehicleInfo_EngineStatusEnum VehicleInfo::EngineStatusEnum_MAX;
const int VehicleInfo::EngineStatusEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* VehicleInfo_VehicleTypeEnum_descriptor() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_enum_descriptors[1];
}
bool VehicleInfo_VehicleTypeEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const VehicleInfo_VehicleTypeEnum VehicleInfo::PASSENGER_CLASSM1;
const VehicleInfo_VehicleTypeEnum VehicleInfo::BUSESANDCOACHES_CLASSM2;
const VehicleInfo_VehicleTypeEnum VehicleInfo::BUSESANDCOACHES_CLASSM3;
const VehicleInfo_VehicleTypeEnum VehicleInfo::LIGHTCOMMERCIAL_CLASSN1;
const VehicleInfo_VehicleTypeEnum VehicleInfo::HEAVYDUTY_CLASSN2;
const VehicleInfo_VehicleTypeEnum VehicleInfo::HEAVYDUTY_CLASSN3;
const VehicleInfo_VehicleTypeEnum VehicleInfo::MOTORCYCLE_CLASSL1E;
const VehicleInfo_VehicleTypeEnum VehicleInfo::MOTORCYCLE_CLASSL2E;
const VehicleInfo_VehicleTypeEnum VehicleInfo::MOTORCYCLE_CLASSL3E;
const VehicleInfo_VehicleTypeEnum VehicleInfo::MOTORCYCLE_CLASSL4E;
const VehicleInfo_VehicleTypeEnum VehicleInfo::MOTORCYCLE_CLASSL5E;
const VehicleInfo_VehicleTypeEnum VehicleInfo::MOTORCYCLE_CLASSL6E;
const VehicleInfo_VehicleTypeEnum VehicleInfo::MOTORCYCLE_CLASSL7E;
const VehicleInfo_VehicleTypeEnum VehicleInfo::VehicleTypeEnum_MIN;
const VehicleInfo_VehicleTypeEnum VehicleInfo::VehicleTypeEnum_MAX;
const int VehicleInfo::VehicleTypeEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* TirePressure_TireStatusEnum_descriptor() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_enum_descriptors[2];
}
bool TirePressure_TireStatusEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const TirePressure_TireStatusEnum TirePressure::NORMAL;
const TirePressure_TireStatusEnum TirePressure::LOW;
const TirePressure_TireStatusEnum TirePressure::HIGH;
const TirePressure_TireStatusEnum TirePressure::SNA;
const TirePressure_TireStatusEnum TirePressure::SIGNIFICANTLY_LOW;
const TirePressure_TireStatusEnum TirePressure::TireStatusEnum_MIN;
const TirePressure_TireStatusEnum TirePressure::TireStatusEnum_MAX;
const int TirePressure::TireStatusEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* VehicleStatus_EngineStatusEnum_descriptor() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_enum_descriptors[3];
}
bool VehicleStatus_EngineStatusEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const VehicleStatus_EngineStatusEnum VehicleStatus::STOP;
const VehicleStatus_EngineStatusEnum VehicleStatus::CRANK;
const VehicleStatus_EngineStatusEnum VehicleStatus::IDLE;
const VehicleStatus_EngineStatusEnum VehicleStatus::RUN;
const VehicleStatus_EngineStatusEnum VehicleStatus::STALL;
const VehicleStatus_EngineStatusEnum VehicleStatus::REQUESTSTART;
const VehicleStatus_EngineStatusEnum VehicleStatus::EngineStatusEnum_MIN;
const VehicleStatus_EngineStatusEnum VehicleStatus::EngineStatusEnum_MAX;
const int VehicleStatus::EngineStatusEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* VehicleStatus_Status_descriptor() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_enum_descriptors[4];
}
bool VehicleStatus_Status_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const VehicleStatus_Status VehicleStatus::CLOSED;
const VehicleStatus_Status VehicleStatus::CLOSED_UNLOCKED;
const VehicleStatus_Status VehicleStatus::CLOSED_LOCKED;
const VehicleStatus_Status VehicleStatus::OPENED;
const VehicleStatus_Status VehicleStatus::Status_MIN;
const VehicleStatus_Status VehicleStatus::Status_MAX;
const int VehicleStatus::Status_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* VehicleStatus_Type_descriptor() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_enum_descriptors[5];
}
bool VehicleStatus_Type_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const VehicleStatus_Type VehicleStatus::FLDOOR;
const VehicleStatus_Type VehicleStatus::FRDOOR;
const VehicleStatus_Type VehicleStatus::RLDOOR;
const VehicleStatus_Type VehicleStatus::RRDOOR;
const VehicleStatus_Type VehicleStatus::FLWINDOW;
const VehicleStatus_Type VehicleStatus::FRWINDOW;
const VehicleStatus_Type VehicleStatus::LLWINDOW;
const VehicleStatus_Type VehicleStatus::LRWINDOW;
const VehicleStatus_Type VehicleStatus::HOOD;
const VehicleStatus_Type VehicleStatus::TRUNK;
const VehicleStatus_Type VehicleStatus::LIFTGATE;
const VehicleStatus_Type VehicleStatus::Type_MIN;
const VehicleStatus_Type VehicleStatus::Type_MAX;
const int VehicleStatus::Type_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int VehicleInfo::kVehicleLocationFieldNumber;
const int VehicleInfo::kVehicleSpeedFieldNumber;
const int VehicleInfo::kOdometerFieldNumber;
const int VehicleInfo::kEngineStatusEnumFieldNumber;
const int VehicleInfo::kLanguageFieldNumber;
const int VehicleInfo::kCountryFieldNumber;
const int VehicleInfo::kVehicleTypeFieldNumber;
const int VehicleInfo::kVinFieldNumber;
const int VehicleInfo::kBrandFieldNumber;
const int VehicleInfo::kModelFieldNumber;
const int VehicleInfo::kYearFieldNumber;
const int VehicleInfo::kRecentVehicleLocation1FieldNumber;
const int VehicleInfo::kRecentVehicleLocation2FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

VehicleInfo::VehicleInfo()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.VehicleInfo)
}
VehicleInfo::VehicleInfo(const VehicleInfo& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  language_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.language().size() > 0) {
    language_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.language_);
  }
  country_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.country().size() > 0) {
    country_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.country_);
  }
  vin_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.vin().size() > 0) {
    vin_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.vin_);
  }
  brand_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.brand().size() > 0) {
    brand_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.brand_);
  }
  model_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.model().size() > 0) {
    model_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.model_);
  }
  year_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.year().size() > 0) {
    year_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.year_);
  }
  if (from.has_vehiclelocation()) {
    vehiclelocation_ = new ::com::fca::uconnect::global::Location(*from.vehiclelocation_);
  } else {
    vehiclelocation_ = NULL;
  }
  if (from.has_recentvehiclelocation1()) {
    recentvehiclelocation1_ = new ::com::fca::uconnect::global::Location(*from.recentvehiclelocation1_);
  } else {
    recentvehiclelocation1_ = NULL;
  }
  if (from.has_recentvehiclelocation2()) {
    recentvehiclelocation2_ = new ::com::fca::uconnect::global::Location(*from.recentvehiclelocation2_);
  } else {
    recentvehiclelocation2_ = NULL;
  }
  ::memcpy(&vehiclespeed_, &from.vehiclespeed_,
    reinterpret_cast<char*>(&vehicletype_) -
    reinterpret_cast<char*>(&vehiclespeed_) + sizeof(vehicletype_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.VehicleInfo)
}

void VehicleInfo::SharedCtor() {
  language_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  country_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  vin_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  brand_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  model_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  year_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&vehiclelocation_, 0, reinterpret_cast<char*>(&vehicletype_) -
    reinterpret_cast<char*>(&vehiclelocation_) + sizeof(vehicletype_));
  _cached_size_ = 0;
}

VehicleInfo::~VehicleInfo() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.VehicleInfo)
  SharedDtor();
}

void VehicleInfo::SharedDtor() {
  language_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  country_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  vin_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  brand_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  model_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  year_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete vehiclelocation_;
  }
  if (this != internal_default_instance()) {
    delete recentvehiclelocation1_;
  }
  if (this != internal_default_instance()) {
    delete recentvehiclelocation2_;
  }
}

void VehicleInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* VehicleInfo::descriptor() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const VehicleInfo& VehicleInfo::default_instance() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::InitDefaults();
  return *internal_default_instance();
}

VehicleInfo* VehicleInfo::New(::google::protobuf::Arena* arena) const {
  VehicleInfo* n = new VehicleInfo;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void VehicleInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.VehicleInfo)
  language_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  country_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  vin_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  brand_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  model_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  year_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == NULL && vehiclelocation_ != NULL) {
    delete vehiclelocation_;
  }
  vehiclelocation_ = NULL;
  if (GetArenaNoVirtual() == NULL && recentvehiclelocation1_ != NULL) {
    delete recentvehiclelocation1_;
  }
  recentvehiclelocation1_ = NULL;
  if (GetArenaNoVirtual() == NULL && recentvehiclelocation2_ != NULL) {
    delete recentvehiclelocation2_;
  }
  recentvehiclelocation2_ = NULL;
  ::memset(&vehiclespeed_, 0, reinterpret_cast<char*>(&vehicletype_) -
    reinterpret_cast<char*>(&vehiclespeed_) + sizeof(vehicletype_));
}

bool VehicleInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.VehicleInfo)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .com.fca.uconnect.global.Location vehicleLocation = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_vehiclelocation()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // float vehicleSpeed = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(37u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &vehiclespeed_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 odometer = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &odometer_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.VehicleInfo.EngineStatusEnum engineStatusEnum = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_enginestatusenum(static_cast< ::com::fca::uconnect::global::VehicleInfo_EngineStatusEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string language = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_language()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->language().data(), this->language().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.VehicleInfo.language"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string country = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(66u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_country()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->country().data(), this->country().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.VehicleInfo.country"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.VehicleInfo.VehicleTypeEnum vehicleType = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(72u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_vehicletype(static_cast< ::com::fca::uconnect::global::VehicleInfo_VehicleTypeEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string vin = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(82u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_vin()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->vin().data(), this->vin().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.VehicleInfo.vin"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string brand = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(90u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_brand()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->brand().data(), this->brand().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.VehicleInfo.brand"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.Location recentVehicleLocation1 = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_recentvehiclelocation1()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.Location recentVehicleLocation2 = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(106u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_recentvehiclelocation2()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string model = 14;
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(114u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_model()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->model().data(), this->model().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.VehicleInfo.model"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string year = 15;
      case 15: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(122u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_year()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->year().data(), this->year().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.VehicleInfo.year"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.VehicleInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.VehicleInfo)
  return false;
#undef DO_
}

void VehicleInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.VehicleInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.Location vehicleLocation = 1;
  if (this->has_vehiclelocation()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->vehiclelocation_, output);
  }

  // float vehicleSpeed = 4;
  if (this->vehiclespeed() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(4, this->vehiclespeed(), output);
  }

  // int32 odometer = 5;
  if (this->odometer() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->odometer(), output);
  }

  // .com.fca.uconnect.global.VehicleInfo.EngineStatusEnum engineStatusEnum = 6;
  if (this->enginestatusenum() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      6, this->enginestatusenum(), output);
  }

  // string language = 7;
  if (this->language().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->language().data(), this->language().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.language");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->language(), output);
  }

  // string country = 8;
  if (this->country().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->country().data(), this->country().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.country");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      8, this->country(), output);
  }

  // .com.fca.uconnect.global.VehicleInfo.VehicleTypeEnum vehicleType = 9;
  if (this->vehicletype() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      9, this->vehicletype(), output);
  }

  // string vin = 10;
  if (this->vin().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->vin().data(), this->vin().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.vin");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      10, this->vin(), output);
  }

  // string brand = 11;
  if (this->brand().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->brand().data(), this->brand().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.brand");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      11, this->brand(), output);
  }

  // .com.fca.uconnect.global.Location recentVehicleLocation1 = 12;
  if (this->has_recentvehiclelocation1()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      12, *this->recentvehiclelocation1_, output);
  }

  // .com.fca.uconnect.global.Location recentVehicleLocation2 = 13;
  if (this->has_recentvehiclelocation2()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      13, *this->recentvehiclelocation2_, output);
  }

  // string model = 14;
  if (this->model().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->model().data(), this->model().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.model");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      14, this->model(), output);
  }

  // string year = 15;
  if (this->year().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->year().data(), this->year().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.year");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      15, this->year(), output);
  }

  // @@protoc_insertion_point(serialize_end:com.fca.uconnect.global.VehicleInfo)
}

::google::protobuf::uint8* VehicleInfo::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.VehicleInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.Location vehicleLocation = 1;
  if (this->has_vehiclelocation()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->vehiclelocation_, deterministic, target);
  }

  // float vehicleSpeed = 4;
  if (this->vehiclespeed() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(4, this->vehiclespeed(), target);
  }

  // int32 odometer = 5;
  if (this->odometer() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->odometer(), target);
  }

  // .com.fca.uconnect.global.VehicleInfo.EngineStatusEnum engineStatusEnum = 6;
  if (this->enginestatusenum() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      6, this->enginestatusenum(), target);
  }

  // string language = 7;
  if (this->language().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->language().data(), this->language().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.language");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        7, this->language(), target);
  }

  // string country = 8;
  if (this->country().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->country().data(), this->country().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.country");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        8, this->country(), target);
  }

  // .com.fca.uconnect.global.VehicleInfo.VehicleTypeEnum vehicleType = 9;
  if (this->vehicletype() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      9, this->vehicletype(), target);
  }

  // string vin = 10;
  if (this->vin().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->vin().data(), this->vin().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.vin");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        10, this->vin(), target);
  }

  // string brand = 11;
  if (this->brand().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->brand().data(), this->brand().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.brand");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        11, this->brand(), target);
  }

  // .com.fca.uconnect.global.Location recentVehicleLocation1 = 12;
  if (this->has_recentvehiclelocation1()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        12, *this->recentvehiclelocation1_, deterministic, target);
  }

  // .com.fca.uconnect.global.Location recentVehicleLocation2 = 13;
  if (this->has_recentvehiclelocation2()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        13, *this->recentvehiclelocation2_, deterministic, target);
  }

  // string model = 14;
  if (this->model().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->model().data(), this->model().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.model");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        14, this->model(), target);
  }

  // string year = 15;
  if (this->year().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->year().data(), this->year().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.VehicleInfo.year");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        15, this->year(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.VehicleInfo)
  return target;
}

size_t VehicleInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.VehicleInfo)
  size_t total_size = 0;

  // string language = 7;
  if (this->language().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->language());
  }

  // string country = 8;
  if (this->country().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->country());
  }

  // string vin = 10;
  if (this->vin().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->vin());
  }

  // string brand = 11;
  if (this->brand().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->brand());
  }

  // string model = 14;
  if (this->model().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->model());
  }

  // string year = 15;
  if (this->year().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->year());
  }

  // .com.fca.uconnect.global.Location vehicleLocation = 1;
  if (this->has_vehiclelocation()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->vehiclelocation_);
  }

  // .com.fca.uconnect.global.Location recentVehicleLocation1 = 12;
  if (this->has_recentvehiclelocation1()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->recentvehiclelocation1_);
  }

  // .com.fca.uconnect.global.Location recentVehicleLocation2 = 13;
  if (this->has_recentvehiclelocation2()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->recentvehiclelocation2_);
  }

  // float vehicleSpeed = 4;
  if (this->vehiclespeed() != 0) {
    total_size += 1 + 4;
  }

  // int32 odometer = 5;
  if (this->odometer() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->odometer());
  }

  // .com.fca.uconnect.global.VehicleInfo.EngineStatusEnum engineStatusEnum = 6;
  if (this->enginestatusenum() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->enginestatusenum());
  }

  // .com.fca.uconnect.global.VehicleInfo.VehicleTypeEnum vehicleType = 9;
  if (this->vehicletype() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->vehicletype());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void VehicleInfo::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.VehicleInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const VehicleInfo* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const VehicleInfo>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.VehicleInfo)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.VehicleInfo)
    MergeFrom(*source);
  }
}

void VehicleInfo::MergeFrom(const VehicleInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.VehicleInfo)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.language().size() > 0) {

    language_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.language_);
  }
  if (from.country().size() > 0) {

    country_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.country_);
  }
  if (from.vin().size() > 0) {

    vin_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.vin_);
  }
  if (from.brand().size() > 0) {

    brand_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.brand_);
  }
  if (from.model().size() > 0) {

    model_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.model_);
  }
  if (from.year().size() > 0) {

    year_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.year_);
  }
  if (from.has_vehiclelocation()) {
    mutable_vehiclelocation()->::com::fca::uconnect::global::Location::MergeFrom(from.vehiclelocation());
  }
  if (from.has_recentvehiclelocation1()) {
    mutable_recentvehiclelocation1()->::com::fca::uconnect::global::Location::MergeFrom(from.recentvehiclelocation1());
  }
  if (from.has_recentvehiclelocation2()) {
    mutable_recentvehiclelocation2()->::com::fca::uconnect::global::Location::MergeFrom(from.recentvehiclelocation2());
  }
  if (from.vehiclespeed() != 0) {
    set_vehiclespeed(from.vehiclespeed());
  }
  if (from.odometer() != 0) {
    set_odometer(from.odometer());
  }
  if (from.enginestatusenum() != 0) {
    set_enginestatusenum(from.enginestatusenum());
  }
  if (from.vehicletype() != 0) {
    set_vehicletype(from.vehicletype());
  }
}

void VehicleInfo::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.VehicleInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void VehicleInfo::CopyFrom(const VehicleInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.VehicleInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void VehicleInfo::Swap(VehicleInfo* other) {
  if (other == this) return;
  InternalSwap(other);
}
void VehicleInfo::InternalSwap(VehicleInfo* other) {
  language_.Swap(&other->language_);
  country_.Swap(&other->country_);
  vin_.Swap(&other->vin_);
  brand_.Swap(&other->brand_);
  model_.Swap(&other->model_);
  year_.Swap(&other->year_);
  std::swap(vehiclelocation_, other->vehiclelocation_);
  std::swap(recentvehiclelocation1_, other->recentvehiclelocation1_);
  std::swap(recentvehiclelocation2_, other->recentvehiclelocation2_);
  std::swap(vehiclespeed_, other->vehiclespeed_);
  std::swap(odometer_, other->odometer_);
  std::swap(enginestatusenum_, other->enginestatusenum_);
  std::swap(vehicletype_, other->vehicletype_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata VehicleInfo::GetMetadata() const {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// VehicleInfo

// .com.fca.uconnect.global.Location vehicleLocation = 1;
bool VehicleInfo::has_vehiclelocation() const {
  return this != internal_default_instance() && vehiclelocation_ != NULL;
}
void VehicleInfo::clear_vehiclelocation() {
  if (GetArenaNoVirtual() == NULL && vehiclelocation_ != NULL) delete vehiclelocation_;
  vehiclelocation_ = NULL;
}
const ::com::fca::uconnect::global::Location& VehicleInfo::vehiclelocation() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.vehicleLocation)
  return vehiclelocation_ != NULL ? *vehiclelocation_
                         : *::com::fca::uconnect::global::Location::internal_default_instance();
}
::com::fca::uconnect::global::Location* VehicleInfo::mutable_vehiclelocation() {
  
  if (vehiclelocation_ == NULL) {
    vehiclelocation_ = new ::com::fca::uconnect::global::Location;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.VehicleInfo.vehicleLocation)
  return vehiclelocation_;
}
::com::fca::uconnect::global::Location* VehicleInfo::release_vehiclelocation() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.VehicleInfo.vehicleLocation)
  
  ::com::fca::uconnect::global::Location* temp = vehiclelocation_;
  vehiclelocation_ = NULL;
  return temp;
}
void VehicleInfo::set_allocated_vehiclelocation(::com::fca::uconnect::global::Location* vehiclelocation) {
  delete vehiclelocation_;
  vehiclelocation_ = vehiclelocation;
  if (vehiclelocation) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.VehicleInfo.vehicleLocation)
}

// float vehicleSpeed = 4;
void VehicleInfo::clear_vehiclespeed() {
  vehiclespeed_ = 0;
}
float VehicleInfo::vehiclespeed() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.vehicleSpeed)
  return vehiclespeed_;
}
void VehicleInfo::set_vehiclespeed(float value) {
  
  vehiclespeed_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleInfo.vehicleSpeed)
}

// int32 odometer = 5;
void VehicleInfo::clear_odometer() {
  odometer_ = 0;
}
::google::protobuf::int32 VehicleInfo::odometer() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.odometer)
  return odometer_;
}
void VehicleInfo::set_odometer(::google::protobuf::int32 value) {
  
  odometer_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleInfo.odometer)
}

// .com.fca.uconnect.global.VehicleInfo.EngineStatusEnum engineStatusEnum = 6;
void VehicleInfo::clear_enginestatusenum() {
  enginestatusenum_ = 0;
}
::com::fca::uconnect::global::VehicleInfo_EngineStatusEnum VehicleInfo::enginestatusenum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.engineStatusEnum)
  return static_cast< ::com::fca::uconnect::global::VehicleInfo_EngineStatusEnum >(enginestatusenum_);
}
void VehicleInfo::set_enginestatusenum(::com::fca::uconnect::global::VehicleInfo_EngineStatusEnum value) {
  
  enginestatusenum_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleInfo.engineStatusEnum)
}

// string language = 7;
void VehicleInfo::clear_language() {
  language_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& VehicleInfo::language() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.language)
  return language_.GetNoArena();
}
void VehicleInfo::set_language(const ::std::string& value) {
  
  language_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleInfo.language)
}
#if LANG_CXX11
void VehicleInfo::set_language(::std::string&& value) {
  
  language_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.VehicleInfo.language)
}
#endif
void VehicleInfo::set_language(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  language_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.VehicleInfo.language)
}
void VehicleInfo::set_language(const char* value, size_t size) {
  
  language_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.VehicleInfo.language)
}
::std::string* VehicleInfo::mutable_language() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.VehicleInfo.language)
  return language_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* VehicleInfo::release_language() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.VehicleInfo.language)
  
  return language_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void VehicleInfo::set_allocated_language(::std::string* language) {
  if (language != NULL) {
    
  } else {
    
  }
  language_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), language);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.VehicleInfo.language)
}

// string country = 8;
void VehicleInfo::clear_country() {
  country_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& VehicleInfo::country() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.country)
  return country_.GetNoArena();
}
void VehicleInfo::set_country(const ::std::string& value) {
  
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleInfo.country)
}
#if LANG_CXX11
void VehicleInfo::set_country(::std::string&& value) {
  
  country_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.VehicleInfo.country)
}
#endif
void VehicleInfo::set_country(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.VehicleInfo.country)
}
void VehicleInfo::set_country(const char* value, size_t size) {
  
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.VehicleInfo.country)
}
::std::string* VehicleInfo::mutable_country() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.VehicleInfo.country)
  return country_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* VehicleInfo::release_country() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.VehicleInfo.country)
  
  return country_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void VehicleInfo::set_allocated_country(::std::string* country) {
  if (country != NULL) {
    
  } else {
    
  }
  country_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), country);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.VehicleInfo.country)
}

// .com.fca.uconnect.global.VehicleInfo.VehicleTypeEnum vehicleType = 9;
void VehicleInfo::clear_vehicletype() {
  vehicletype_ = 0;
}
::com::fca::uconnect::global::VehicleInfo_VehicleTypeEnum VehicleInfo::vehicletype() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.vehicleType)
  return static_cast< ::com::fca::uconnect::global::VehicleInfo_VehicleTypeEnum >(vehicletype_);
}
void VehicleInfo::set_vehicletype(::com::fca::uconnect::global::VehicleInfo_VehicleTypeEnum value) {
  
  vehicletype_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleInfo.vehicleType)
}

// string vin = 10;
void VehicleInfo::clear_vin() {
  vin_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& VehicleInfo::vin() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.vin)
  return vin_.GetNoArena();
}
void VehicleInfo::set_vin(const ::std::string& value) {
  
  vin_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleInfo.vin)
}
#if LANG_CXX11
void VehicleInfo::set_vin(::std::string&& value) {
  
  vin_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.VehicleInfo.vin)
}
#endif
void VehicleInfo::set_vin(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  vin_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.VehicleInfo.vin)
}
void VehicleInfo::set_vin(const char* value, size_t size) {
  
  vin_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.VehicleInfo.vin)
}
::std::string* VehicleInfo::mutable_vin() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.VehicleInfo.vin)
  return vin_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* VehicleInfo::release_vin() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.VehicleInfo.vin)
  
  return vin_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void VehicleInfo::set_allocated_vin(::std::string* vin) {
  if (vin != NULL) {
    
  } else {
    
  }
  vin_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), vin);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.VehicleInfo.vin)
}

// string brand = 11;
void VehicleInfo::clear_brand() {
  brand_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& VehicleInfo::brand() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.brand)
  return brand_.GetNoArena();
}
void VehicleInfo::set_brand(const ::std::string& value) {
  
  brand_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleInfo.brand)
}
#if LANG_CXX11
void VehicleInfo::set_brand(::std::string&& value) {
  
  brand_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.VehicleInfo.brand)
}
#endif
void VehicleInfo::set_brand(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  brand_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.VehicleInfo.brand)
}
void VehicleInfo::set_brand(const char* value, size_t size) {
  
  brand_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.VehicleInfo.brand)
}
::std::string* VehicleInfo::mutable_brand() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.VehicleInfo.brand)
  return brand_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* VehicleInfo::release_brand() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.VehicleInfo.brand)
  
  return brand_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void VehicleInfo::set_allocated_brand(::std::string* brand) {
  if (brand != NULL) {
    
  } else {
    
  }
  brand_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), brand);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.VehicleInfo.brand)
}

// string model = 14;
void VehicleInfo::clear_model() {
  model_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& VehicleInfo::model() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.model)
  return model_.GetNoArena();
}
void VehicleInfo::set_model(const ::std::string& value) {
  
  model_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleInfo.model)
}
#if LANG_CXX11
void VehicleInfo::set_model(::std::string&& value) {
  
  model_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.VehicleInfo.model)
}
#endif
void VehicleInfo::set_model(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  model_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.VehicleInfo.model)
}
void VehicleInfo::set_model(const char* value, size_t size) {
  
  model_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.VehicleInfo.model)
}
::std::string* VehicleInfo::mutable_model() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.VehicleInfo.model)
  return model_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* VehicleInfo::release_model() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.VehicleInfo.model)
  
  return model_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void VehicleInfo::set_allocated_model(::std::string* model) {
  if (model != NULL) {
    
  } else {
    
  }
  model_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), model);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.VehicleInfo.model)
}

// string year = 15;
void VehicleInfo::clear_year() {
  year_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& VehicleInfo::year() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.year)
  return year_.GetNoArena();
}
void VehicleInfo::set_year(const ::std::string& value) {
  
  year_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleInfo.year)
}
#if LANG_CXX11
void VehicleInfo::set_year(::std::string&& value) {
  
  year_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.VehicleInfo.year)
}
#endif
void VehicleInfo::set_year(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  year_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.VehicleInfo.year)
}
void VehicleInfo::set_year(const char* value, size_t size) {
  
  year_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.VehicleInfo.year)
}
::std::string* VehicleInfo::mutable_year() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.VehicleInfo.year)
  return year_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* VehicleInfo::release_year() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.VehicleInfo.year)
  
  return year_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void VehicleInfo::set_allocated_year(::std::string* year) {
  if (year != NULL) {
    
  } else {
    
  }
  year_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), year);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.VehicleInfo.year)
}

// .com.fca.uconnect.global.Location recentVehicleLocation1 = 12;
bool VehicleInfo::has_recentvehiclelocation1() const {
  return this != internal_default_instance() && recentvehiclelocation1_ != NULL;
}
void VehicleInfo::clear_recentvehiclelocation1() {
  if (GetArenaNoVirtual() == NULL && recentvehiclelocation1_ != NULL) delete recentvehiclelocation1_;
  recentvehiclelocation1_ = NULL;
}
const ::com::fca::uconnect::global::Location& VehicleInfo::recentvehiclelocation1() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.recentVehicleLocation1)
  return recentvehiclelocation1_ != NULL ? *recentvehiclelocation1_
                         : *::com::fca::uconnect::global::Location::internal_default_instance();
}
::com::fca::uconnect::global::Location* VehicleInfo::mutable_recentvehiclelocation1() {
  
  if (recentvehiclelocation1_ == NULL) {
    recentvehiclelocation1_ = new ::com::fca::uconnect::global::Location;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.VehicleInfo.recentVehicleLocation1)
  return recentvehiclelocation1_;
}
::com::fca::uconnect::global::Location* VehicleInfo::release_recentvehiclelocation1() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.VehicleInfo.recentVehicleLocation1)
  
  ::com::fca::uconnect::global::Location* temp = recentvehiclelocation1_;
  recentvehiclelocation1_ = NULL;
  return temp;
}
void VehicleInfo::set_allocated_recentvehiclelocation1(::com::fca::uconnect::global::Location* recentvehiclelocation1) {
  delete recentvehiclelocation1_;
  recentvehiclelocation1_ = recentvehiclelocation1;
  if (recentvehiclelocation1) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.VehicleInfo.recentVehicleLocation1)
}

// .com.fca.uconnect.global.Location recentVehicleLocation2 = 13;
bool VehicleInfo::has_recentvehiclelocation2() const {
  return this != internal_default_instance() && recentvehiclelocation2_ != NULL;
}
void VehicleInfo::clear_recentvehiclelocation2() {
  if (GetArenaNoVirtual() == NULL && recentvehiclelocation2_ != NULL) delete recentvehiclelocation2_;
  recentvehiclelocation2_ = NULL;
}
const ::com::fca::uconnect::global::Location& VehicleInfo::recentvehiclelocation2() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleInfo.recentVehicleLocation2)
  return recentvehiclelocation2_ != NULL ? *recentvehiclelocation2_
                         : *::com::fca::uconnect::global::Location::internal_default_instance();
}
::com::fca::uconnect::global::Location* VehicleInfo::mutable_recentvehiclelocation2() {
  
  if (recentvehiclelocation2_ == NULL) {
    recentvehiclelocation2_ = new ::com::fca::uconnect::global::Location;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.VehicleInfo.recentVehicleLocation2)
  return recentvehiclelocation2_;
}
::com::fca::uconnect::global::Location* VehicleInfo::release_recentvehiclelocation2() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.VehicleInfo.recentVehicleLocation2)
  
  ::com::fca::uconnect::global::Location* temp = recentvehiclelocation2_;
  recentvehiclelocation2_ = NULL;
  return temp;
}
void VehicleInfo::set_allocated_recentvehiclelocation2(::com::fca::uconnect::global::Location* recentvehiclelocation2) {
  delete recentvehiclelocation2_;
  recentvehiclelocation2_ = recentvehiclelocation2;
  if (recentvehiclelocation2) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.VehicleInfo.recentVehicleLocation2)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int TirePressure::kFlTirePressureFieldNumber;
const int TirePressure::kFlTireStsFieldNumber;
const int TirePressure::kFrTirePressureFieldNumber;
const int TirePressure::kFrTireStsFieldNumber;
const int TirePressure::kRlTirePressureFieldNumber;
const int TirePressure::kRlTireStsFieldNumber;
const int TirePressure::kRrTirePressureFieldNumber;
const int TirePressure::kRrTireStsFieldNumber;
const int TirePressure::kRl2TirePressureFieldNumber;
const int TirePressure::kRr2TirePressureFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

TirePressure::TirePressure()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.TirePressure)
}
TirePressure::TirePressure(const TirePressure& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&fltirepressure_, &from.fltirepressure_,
    reinterpret_cast<char*>(&rrtirests_) -
    reinterpret_cast<char*>(&fltirepressure_) + sizeof(rrtirests_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.TirePressure)
}

void TirePressure::SharedCtor() {
  ::memset(&fltirepressure_, 0, reinterpret_cast<char*>(&rrtirests_) -
    reinterpret_cast<char*>(&fltirepressure_) + sizeof(rrtirests_));
  _cached_size_ = 0;
}

TirePressure::~TirePressure() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.TirePressure)
  SharedDtor();
}

void TirePressure::SharedDtor() {
}

void TirePressure::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* TirePressure::descriptor() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const TirePressure& TirePressure::default_instance() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::InitDefaults();
  return *internal_default_instance();
}

TirePressure* TirePressure::New(::google::protobuf::Arena* arena) const {
  TirePressure* n = new TirePressure;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void TirePressure::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.TirePressure)
  ::memset(&fltirepressure_, 0, reinterpret_cast<char*>(&rrtirests_) -
    reinterpret_cast<char*>(&fltirepressure_) + sizeof(rrtirests_));
}

bool TirePressure::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.TirePressure)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // float flTirePressure = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(13u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &fltirepressure_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // float frTirePressure = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(21u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &frtirepressure_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // float rlTirePressure = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(29u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &rltirepressure_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // float rrTirePressure = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(37u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &rrtirepressure_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // float rl2TirePressure = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(45u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &rl2tirepressure_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // float rr2TirePressure = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(53u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &rr2tirepressure_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.TirePressure.TireStatusEnum flTireSts = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_fltirests(static_cast< ::com::fca::uconnect::global::TirePressure_TireStatusEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.TirePressure.TireStatusEnum frTireSts = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_frtirests(static_cast< ::com::fca::uconnect::global::TirePressure_TireStatusEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.TirePressure.TireStatusEnum rlTireSts = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(72u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_rltirests(static_cast< ::com::fca::uconnect::global::TirePressure_TireStatusEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.TirePressure.TireStatusEnum rrTireSts = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(80u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_rrtirests(static_cast< ::com::fca::uconnect::global::TirePressure_TireStatusEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.TirePressure)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.TirePressure)
  return false;
#undef DO_
}

void TirePressure::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.TirePressure)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float flTirePressure = 1;
  if (this->fltirepressure() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(1, this->fltirepressure(), output);
  }

  // float frTirePressure = 2;
  if (this->frtirepressure() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(2, this->frtirepressure(), output);
  }

  // float rlTirePressure = 3;
  if (this->rltirepressure() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(3, this->rltirepressure(), output);
  }

  // float rrTirePressure = 4;
  if (this->rrtirepressure() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(4, this->rrtirepressure(), output);
  }

  // float rl2TirePressure = 5;
  if (this->rl2tirepressure() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(5, this->rl2tirepressure(), output);
  }

  // float rr2TirePressure = 6;
  if (this->rr2tirepressure() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(6, this->rr2tirepressure(), output);
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum flTireSts = 7;
  if (this->fltirests() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      7, this->fltirests(), output);
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum frTireSts = 8;
  if (this->frtirests() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      8, this->frtirests(), output);
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum rlTireSts = 9;
  if (this->rltirests() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      9, this->rltirests(), output);
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum rrTireSts = 10;
  if (this->rrtirests() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      10, this->rrtirests(), output);
  }

  // @@protoc_insertion_point(serialize_end:com.fca.uconnect.global.TirePressure)
}

::google::protobuf::uint8* TirePressure::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.TirePressure)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float flTirePressure = 1;
  if (this->fltirepressure() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(1, this->fltirepressure(), target);
  }

  // float frTirePressure = 2;
  if (this->frtirepressure() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(2, this->frtirepressure(), target);
  }

  // float rlTirePressure = 3;
  if (this->rltirepressure() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(3, this->rltirepressure(), target);
  }

  // float rrTirePressure = 4;
  if (this->rrtirepressure() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(4, this->rrtirepressure(), target);
  }

  // float rl2TirePressure = 5;
  if (this->rl2tirepressure() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(5, this->rl2tirepressure(), target);
  }

  // float rr2TirePressure = 6;
  if (this->rr2tirepressure() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(6, this->rr2tirepressure(), target);
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum flTireSts = 7;
  if (this->fltirests() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      7, this->fltirests(), target);
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum frTireSts = 8;
  if (this->frtirests() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      8, this->frtirests(), target);
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum rlTireSts = 9;
  if (this->rltirests() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      9, this->rltirests(), target);
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum rrTireSts = 10;
  if (this->rrtirests() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      10, this->rrtirests(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.TirePressure)
  return target;
}

size_t TirePressure::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.TirePressure)
  size_t total_size = 0;

  // float flTirePressure = 1;
  if (this->fltirepressure() != 0) {
    total_size += 1 + 4;
  }

  // float frTirePressure = 2;
  if (this->frtirepressure() != 0) {
    total_size += 1 + 4;
  }

  // float rlTirePressure = 3;
  if (this->rltirepressure() != 0) {
    total_size += 1 + 4;
  }

  // float rrTirePressure = 4;
  if (this->rrtirepressure() != 0) {
    total_size += 1 + 4;
  }

  // float rl2TirePressure = 5;
  if (this->rl2tirepressure() != 0) {
    total_size += 1 + 4;
  }

  // float rr2TirePressure = 6;
  if (this->rr2tirepressure() != 0) {
    total_size += 1 + 4;
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum flTireSts = 7;
  if (this->fltirests() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->fltirests());
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum frTireSts = 8;
  if (this->frtirests() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->frtirests());
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum rlTireSts = 9;
  if (this->rltirests() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->rltirests());
  }

  // .com.fca.uconnect.global.TirePressure.TireStatusEnum rrTireSts = 10;
  if (this->rrtirests() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->rrtirests());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void TirePressure::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.TirePressure)
  GOOGLE_DCHECK_NE(&from, this);
  const TirePressure* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const TirePressure>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.TirePressure)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.TirePressure)
    MergeFrom(*source);
  }
}

void TirePressure::MergeFrom(const TirePressure& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.TirePressure)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.fltirepressure() != 0) {
    set_fltirepressure(from.fltirepressure());
  }
  if (from.frtirepressure() != 0) {
    set_frtirepressure(from.frtirepressure());
  }
  if (from.rltirepressure() != 0) {
    set_rltirepressure(from.rltirepressure());
  }
  if (from.rrtirepressure() != 0) {
    set_rrtirepressure(from.rrtirepressure());
  }
  if (from.rl2tirepressure() != 0) {
    set_rl2tirepressure(from.rl2tirepressure());
  }
  if (from.rr2tirepressure() != 0) {
    set_rr2tirepressure(from.rr2tirepressure());
  }
  if (from.fltirests() != 0) {
    set_fltirests(from.fltirests());
  }
  if (from.frtirests() != 0) {
    set_frtirests(from.frtirests());
  }
  if (from.rltirests() != 0) {
    set_rltirests(from.rltirests());
  }
  if (from.rrtirests() != 0) {
    set_rrtirests(from.rrtirests());
  }
}

void TirePressure::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.TirePressure)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void TirePressure::CopyFrom(const TirePressure& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.TirePressure)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void TirePressure::Swap(TirePressure* other) {
  if (other == this) return;
  InternalSwap(other);
}
void TirePressure::InternalSwap(TirePressure* other) {
  std::swap(fltirepressure_, other->fltirepressure_);
  std::swap(frtirepressure_, other->frtirepressure_);
  std::swap(rltirepressure_, other->rltirepressure_);
  std::swap(rrtirepressure_, other->rrtirepressure_);
  std::swap(rl2tirepressure_, other->rl2tirepressure_);
  std::swap(rr2tirepressure_, other->rr2tirepressure_);
  std::swap(fltirests_, other->fltirests_);
  std::swap(frtirests_, other->frtirests_);
  std::swap(rltirests_, other->rltirests_);
  std::swap(rrtirests_, other->rrtirests_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata TirePressure::GetMetadata() const {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// TirePressure

// float flTirePressure = 1;
void TirePressure::clear_fltirepressure() {
  fltirepressure_ = 0;
}
float TirePressure::fltirepressure() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.TirePressure.flTirePressure)
  return fltirepressure_;
}
void TirePressure::set_fltirepressure(float value) {
  
  fltirepressure_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.TirePressure.flTirePressure)
}

// .com.fca.uconnect.global.TirePressure.TireStatusEnum flTireSts = 7;
void TirePressure::clear_fltirests() {
  fltirests_ = 0;
}
::com::fca::uconnect::global::TirePressure_TireStatusEnum TirePressure::fltirests() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.TirePressure.flTireSts)
  return static_cast< ::com::fca::uconnect::global::TirePressure_TireStatusEnum >(fltirests_);
}
void TirePressure::set_fltirests(::com::fca::uconnect::global::TirePressure_TireStatusEnum value) {
  
  fltirests_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.TirePressure.flTireSts)
}

// float frTirePressure = 2;
void TirePressure::clear_frtirepressure() {
  frtirepressure_ = 0;
}
float TirePressure::frtirepressure() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.TirePressure.frTirePressure)
  return frtirepressure_;
}
void TirePressure::set_frtirepressure(float value) {
  
  frtirepressure_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.TirePressure.frTirePressure)
}

// .com.fca.uconnect.global.TirePressure.TireStatusEnum frTireSts = 8;
void TirePressure::clear_frtirests() {
  frtirests_ = 0;
}
::com::fca::uconnect::global::TirePressure_TireStatusEnum TirePressure::frtirests() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.TirePressure.frTireSts)
  return static_cast< ::com::fca::uconnect::global::TirePressure_TireStatusEnum >(frtirests_);
}
void TirePressure::set_frtirests(::com::fca::uconnect::global::TirePressure_TireStatusEnum value) {
  
  frtirests_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.TirePressure.frTireSts)
}

// float rlTirePressure = 3;
void TirePressure::clear_rltirepressure() {
  rltirepressure_ = 0;
}
float TirePressure::rltirepressure() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.TirePressure.rlTirePressure)
  return rltirepressure_;
}
void TirePressure::set_rltirepressure(float value) {
  
  rltirepressure_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.TirePressure.rlTirePressure)
}

// .com.fca.uconnect.global.TirePressure.TireStatusEnum rlTireSts = 9;
void TirePressure::clear_rltirests() {
  rltirests_ = 0;
}
::com::fca::uconnect::global::TirePressure_TireStatusEnum TirePressure::rltirests() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.TirePressure.rlTireSts)
  return static_cast< ::com::fca::uconnect::global::TirePressure_TireStatusEnum >(rltirests_);
}
void TirePressure::set_rltirests(::com::fca::uconnect::global::TirePressure_TireStatusEnum value) {
  
  rltirests_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.TirePressure.rlTireSts)
}

// float rrTirePressure = 4;
void TirePressure::clear_rrtirepressure() {
  rrtirepressure_ = 0;
}
float TirePressure::rrtirepressure() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.TirePressure.rrTirePressure)
  return rrtirepressure_;
}
void TirePressure::set_rrtirepressure(float value) {
  
  rrtirepressure_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.TirePressure.rrTirePressure)
}

// .com.fca.uconnect.global.TirePressure.TireStatusEnum rrTireSts = 10;
void TirePressure::clear_rrtirests() {
  rrtirests_ = 0;
}
::com::fca::uconnect::global::TirePressure_TireStatusEnum TirePressure::rrtirests() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.TirePressure.rrTireSts)
  return static_cast< ::com::fca::uconnect::global::TirePressure_TireStatusEnum >(rrtirests_);
}
void TirePressure::set_rrtirests(::com::fca::uconnect::global::TirePressure_TireStatusEnum value) {
  
  rrtirests_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.TirePressure.rrTireSts)
}

// float rl2TirePressure = 5;
void TirePressure::clear_rl2tirepressure() {
  rl2tirepressure_ = 0;
}
float TirePressure::rl2tirepressure() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.TirePressure.rl2TirePressure)
  return rl2tirepressure_;
}
void TirePressure::set_rl2tirepressure(float value) {
  
  rl2tirepressure_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.TirePressure.rl2TirePressure)
}

// float rr2TirePressure = 6;
void TirePressure::clear_rr2tirepressure() {
  rr2tirepressure_ = 0;
}
float TirePressure::rr2tirepressure() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.TirePressure.rr2TirePressure)
  return rr2tirepressure_;
}
void TirePressure::set_rr2tirepressure(float value) {
  
  rr2tirepressure_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.TirePressure.rr2TirePressure)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

VehicleStatus::VehicleStatus_VehicleStatusTypeEntry::VehicleStatus_VehicleStatusTypeEntry() {}
VehicleStatus::VehicleStatus_VehicleStatusTypeEntry::VehicleStatus_VehicleStatusTypeEntry(::google::protobuf::Arena* arena) : SuperType(arena) {}
::google::protobuf::Metadata VehicleStatus::VehicleStatus_VehicleStatusTypeEntry::GetMetadata() const {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_metadata[2];
}
void VehicleStatus::VehicleStatus_VehicleStatusTypeEntry::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}
void VehicleStatus::VehicleStatus_VehicleStatusTypeEntry::MergeFrom(const VehicleStatus_VehicleStatusTypeEntry& other) {
  MergeFromInternal(other);
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

VehicleStatus::VehicleStatus_VehicleStatusParametersEntry::VehicleStatus_VehicleStatusParametersEntry() {}
VehicleStatus::VehicleStatus_VehicleStatusParametersEntry::VehicleStatus_VehicleStatusParametersEntry(::google::protobuf::Arena* arena) : SuperType(arena) {}
::google::protobuf::Metadata VehicleStatus::VehicleStatus_VehicleStatusParametersEntry::GetMetadata() const {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_metadata[3];
}
void VehicleStatus::VehicleStatus_VehicleStatusParametersEntry::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}
void VehicleStatus::VehicleStatus_VehicleStatusParametersEntry::MergeFrom(const VehicleStatus_VehicleStatusParametersEntry& other) {
  MergeFromInternal(other);
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int VehicleStatus::kVehicleStatusTypeFieldNumber;
const int VehicleStatus::kVehicleStatusParametersFieldNumber;
const int VehicleStatus::kEngineStatusEnumFieldNumber;
const int VehicleStatus::kFuelLevelFieldNumber;
const int VehicleStatus::kOdometerFieldNumber;
const int VehicleStatus::kInteriorTemperatureFieldNumber;
const int VehicleStatus::kVehicleLocationTypeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

VehicleStatus::VehicleStatus()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.VehicleStatus)
}
VehicleStatus::VehicleStatus(const VehicleStatus& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  vehiclestatusparameters_.MergeFrom(from.vehiclestatusparameters_);
  vehiclestatustype_.MergeFrom(from.vehiclestatustype_);
  if (from.has_vehiclelocationtype()) {
    vehiclelocationtype_ = new ::com::fca::uconnect::global::Location(*from.vehiclelocationtype_);
  } else {
    vehiclelocationtype_ = NULL;
  }
  ::memcpy(&enginestatusenum_, &from.enginestatusenum_,
    reinterpret_cast<char*>(&interiortemperature_) -
    reinterpret_cast<char*>(&enginestatusenum_) + sizeof(interiortemperature_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.VehicleStatus)
}

void VehicleStatus::SharedCtor() {
  ::memset(&vehiclelocationtype_, 0, reinterpret_cast<char*>(&interiortemperature_) -
    reinterpret_cast<char*>(&vehiclelocationtype_) + sizeof(interiortemperature_));
  _cached_size_ = 0;
}

VehicleStatus::~VehicleStatus() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.VehicleStatus)
  SharedDtor();
}

void VehicleStatus::SharedDtor() {
  if (this != internal_default_instance()) {
    delete vehiclelocationtype_;
  }
}

void VehicleStatus::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* VehicleStatus::descriptor() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const VehicleStatus& VehicleStatus::default_instance() {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::InitDefaults();
  return *internal_default_instance();
}

VehicleStatus* VehicleStatus::New(::google::protobuf::Arena* arena) const {
  VehicleStatus* n = new VehicleStatus;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void VehicleStatus::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.VehicleStatus)
  vehiclestatusparameters_.Clear();
  vehiclestatustype_.Clear();
  if (GetArenaNoVirtual() == NULL && vehiclelocationtype_ != NULL) {
    delete vehiclelocationtype_;
  }
  vehiclelocationtype_ = NULL;
  ::memset(&enginestatusenum_, 0, reinterpret_cast<char*>(&interiortemperature_) -
    reinterpret_cast<char*>(&enginestatusenum_) + sizeof(interiortemperature_));
}

bool VehicleStatus::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.VehicleStatus)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // map<string, .com.fca.uconnect.global.VehicleStatus.Status> vehicleStatusParameters = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          VehicleStatus_VehicleStatusParametersEntry::Parser< ::google::protobuf::internal::MapField<
              VehicleStatus_VehicleStatusParametersEntry,
              ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
              0 >,
            ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status > > parser(&vehiclestatusparameters_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), parser.key().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.VehicleStatus.VehicleStatusParametersEntry.key"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.VehicleStatus.EngineStatusEnum engineStatusEnum = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_enginestatusenum(static_cast< ::com::fca::uconnect::global::VehicleStatus_EngineStatusEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 fuelLevel = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &fuellevel_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 odometer = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &odometer_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 interiorTemperature = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &interiortemperature_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // map<string, .com.fca.uconnect.global.VehicleStatus.Type> vehicleStatusType = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u)) {
          VehicleStatus_VehicleStatusTypeEntry::Parser< ::google::protobuf::internal::MapField<
              VehicleStatus_VehicleStatusTypeEntry,
              ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
              0 >,
            ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type > > parser(&vehiclestatustype_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), parser.key().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.VehicleStatus.VehicleStatusTypeEntry.key"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.Location vehicleLocationType = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_vehiclelocationtype()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.VehicleStatus)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.VehicleStatus)
  return false;
#undef DO_
}

void VehicleStatus::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.VehicleStatus)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .com.fca.uconnect.global.VehicleStatus.Status> vehicleStatusParameters = 1;
  if (!this->vehiclestatusparameters().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), p->first.length(),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "com.fca.uconnect.global.VehicleStatus.VehicleStatusParametersEntry.key");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->vehiclestatusparameters().size() > 1) {
      ::google::protobuf::scoped_array<SortItem> items(
          new SortItem[this->vehiclestatusparameters().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >::const_iterator
          it = this->vehiclestatusparameters().begin();
          it != this->vehiclestatusparameters().end(); ++it, ++n) {
        items[n] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[n], Less());
      ::google::protobuf::scoped_ptr<VehicleStatus_VehicleStatusParametersEntry> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(vehiclestatusparameters_.NewEnumEntryWrapper(
            items[i]->first, items[i]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            1, *entry, output);
        Utf8Check::Check(items[i]);
      }
    } else {
      ::google::protobuf::scoped_ptr<VehicleStatus_VehicleStatusParametersEntry> entry;
      for (::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >::const_iterator
          it = this->vehiclestatusparameters().begin();
          it != this->vehiclestatusparameters().end(); ++it) {
        entry.reset(vehiclestatusparameters_.NewEnumEntryWrapper(
            it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            1, *entry, output);
        Utf8Check::Check(&*it);
      }
    }
  }

  // .com.fca.uconnect.global.VehicleStatus.EngineStatusEnum engineStatusEnum = 2;
  if (this->enginestatusenum() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->enginestatusenum(), output);
  }

  // int32 fuelLevel = 3;
  if (this->fuellevel() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->fuellevel(), output);
  }

  // int32 odometer = 4;
  if (this->odometer() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->odometer(), output);
  }

  // int32 interiorTemperature = 5;
  if (this->interiortemperature() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->interiortemperature(), output);
  }

  // map<string, .com.fca.uconnect.global.VehicleStatus.Type> vehicleStatusType = 6;
  if (!this->vehiclestatustype().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), p->first.length(),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "com.fca.uconnect.global.VehicleStatus.VehicleStatusTypeEntry.key");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->vehiclestatustype().size() > 1) {
      ::google::protobuf::scoped_array<SortItem> items(
          new SortItem[this->vehiclestatustype().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >::const_iterator
          it = this->vehiclestatustype().begin();
          it != this->vehiclestatustype().end(); ++it, ++n) {
        items[n] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[n], Less());
      ::google::protobuf::scoped_ptr<VehicleStatus_VehicleStatusTypeEntry> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(vehiclestatustype_.NewEnumEntryWrapper(
            items[i]->first, items[i]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            6, *entry, output);
        Utf8Check::Check(items[i]);
      }
    } else {
      ::google::protobuf::scoped_ptr<VehicleStatus_VehicleStatusTypeEntry> entry;
      for (::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >::const_iterator
          it = this->vehiclestatustype().begin();
          it != this->vehiclestatustype().end(); ++it) {
        entry.reset(vehiclestatustype_.NewEnumEntryWrapper(
            it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            6, *entry, output);
        Utf8Check::Check(&*it);
      }
    }
  }

  // .com.fca.uconnect.global.Location vehicleLocationType = 7;
  if (this->has_vehiclelocationtype()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, *this->vehiclelocationtype_, output);
  }

  // @@protoc_insertion_point(serialize_end:com.fca.uconnect.global.VehicleStatus)
}

::google::protobuf::uint8* VehicleStatus::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.VehicleStatus)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .com.fca.uconnect.global.VehicleStatus.Status> vehicleStatusParameters = 1;
  if (!this->vehiclestatusparameters().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), p->first.length(),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "com.fca.uconnect.global.VehicleStatus.VehicleStatusParametersEntry.key");
      }
    };

    if (deterministic &&
        this->vehiclestatusparameters().size() > 1) {
      ::google::protobuf::scoped_array<SortItem> items(
          new SortItem[this->vehiclestatusparameters().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >::const_iterator
          it = this->vehiclestatusparameters().begin();
          it != this->vehiclestatusparameters().end(); ++it, ++n) {
        items[n] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[n], Less());
      ::google::protobuf::scoped_ptr<VehicleStatus_VehicleStatusParametersEntry> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(vehiclestatusparameters_.NewEnumEntryWrapper(
            items[i]->first, items[i]->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       1, *entry, deterministic, target);
;
        Utf8Check::Check(items[i]);
      }
    } else {
      ::google::protobuf::scoped_ptr<VehicleStatus_VehicleStatusParametersEntry> entry;
      for (::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >::const_iterator
          it = this->vehiclestatusparameters().begin();
          it != this->vehiclestatusparameters().end(); ++it) {
        entry.reset(vehiclestatusparameters_.NewEnumEntryWrapper(
            it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       1, *entry, deterministic, target);
;
        Utf8Check::Check(&*it);
      }
    }
  }

  // .com.fca.uconnect.global.VehicleStatus.EngineStatusEnum engineStatusEnum = 2;
  if (this->enginestatusenum() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      2, this->enginestatusenum(), target);
  }

  // int32 fuelLevel = 3;
  if (this->fuellevel() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->fuellevel(), target);
  }

  // int32 odometer = 4;
  if (this->odometer() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->odometer(), target);
  }

  // int32 interiorTemperature = 5;
  if (this->interiortemperature() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->interiortemperature(), target);
  }

  // map<string, .com.fca.uconnect.global.VehicleStatus.Type> vehicleStatusType = 6;
  if (!this->vehiclestatustype().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), p->first.length(),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "com.fca.uconnect.global.VehicleStatus.VehicleStatusTypeEntry.key");
      }
    };

    if (deterministic &&
        this->vehiclestatustype().size() > 1) {
      ::google::protobuf::scoped_array<SortItem> items(
          new SortItem[this->vehiclestatustype().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >::const_iterator
          it = this->vehiclestatustype().begin();
          it != this->vehiclestatustype().end(); ++it, ++n) {
        items[n] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[n], Less());
      ::google::protobuf::scoped_ptr<VehicleStatus_VehicleStatusTypeEntry> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(vehiclestatustype_.NewEnumEntryWrapper(
            items[i]->first, items[i]->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       6, *entry, deterministic, target);
;
        Utf8Check::Check(items[i]);
      }
    } else {
      ::google::protobuf::scoped_ptr<VehicleStatus_VehicleStatusTypeEntry> entry;
      for (::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >::const_iterator
          it = this->vehiclestatustype().begin();
          it != this->vehiclestatustype().end(); ++it) {
        entry.reset(vehiclestatustype_.NewEnumEntryWrapper(
            it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       6, *entry, deterministic, target);
;
        Utf8Check::Check(&*it);
      }
    }
  }

  // .com.fca.uconnect.global.Location vehicleLocationType = 7;
  if (this->has_vehiclelocationtype()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        7, *this->vehiclelocationtype_, deterministic, target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.VehicleStatus)
  return target;
}

size_t VehicleStatus::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.VehicleStatus)
  size_t total_size = 0;

  // map<string, .com.fca.uconnect.global.VehicleStatus.Status> vehicleStatusParameters = 1;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->vehiclestatusparameters_size());
  {
    ::google::protobuf::scoped_ptr<VehicleStatus_VehicleStatusParametersEntry> entry;
    for (::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >::const_iterator
        it = this->vehiclestatusparameters().begin();
        it != this->vehiclestatusparameters().end(); ++it) {
      entry.reset(vehiclestatusparameters_.NewEnumEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  // map<string, .com.fca.uconnect.global.VehicleStatus.Type> vehicleStatusType = 6;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->vehiclestatustype_size());
  {
    ::google::protobuf::scoped_ptr<VehicleStatus_VehicleStatusTypeEntry> entry;
    for (::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >::const_iterator
        it = this->vehiclestatustype().begin();
        it != this->vehiclestatustype().end(); ++it) {
      entry.reset(vehiclestatustype_.NewEnumEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  // .com.fca.uconnect.global.Location vehicleLocationType = 7;
  if (this->has_vehiclelocationtype()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->vehiclelocationtype_);
  }

  // .com.fca.uconnect.global.VehicleStatus.EngineStatusEnum engineStatusEnum = 2;
  if (this->enginestatusenum() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->enginestatusenum());
  }

  // int32 fuelLevel = 3;
  if (this->fuellevel() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->fuellevel());
  }

  // int32 odometer = 4;
  if (this->odometer() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->odometer());
  }

  // int32 interiorTemperature = 5;
  if (this->interiortemperature() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->interiortemperature());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void VehicleStatus::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.VehicleStatus)
  GOOGLE_DCHECK_NE(&from, this);
  const VehicleStatus* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const VehicleStatus>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.VehicleStatus)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.VehicleStatus)
    MergeFrom(*source);
  }
}

void VehicleStatus::MergeFrom(const VehicleStatus& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.VehicleStatus)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  vehiclestatusparameters_.MergeFrom(from.vehiclestatusparameters_);
  vehiclestatustype_.MergeFrom(from.vehiclestatustype_);
  if (from.has_vehiclelocationtype()) {
    mutable_vehiclelocationtype()->::com::fca::uconnect::global::Location::MergeFrom(from.vehiclelocationtype());
  }
  if (from.enginestatusenum() != 0) {
    set_enginestatusenum(from.enginestatusenum());
  }
  if (from.fuellevel() != 0) {
    set_fuellevel(from.fuellevel());
  }
  if (from.odometer() != 0) {
    set_odometer(from.odometer());
  }
  if (from.interiortemperature() != 0) {
    set_interiortemperature(from.interiortemperature());
  }
}

void VehicleStatus::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.VehicleStatus)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void VehicleStatus::CopyFrom(const VehicleStatus& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.VehicleStatus)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void VehicleStatus::Swap(VehicleStatus* other) {
  if (other == this) return;
  InternalSwap(other);
}
void VehicleStatus::InternalSwap(VehicleStatus* other) {
  vehiclestatusparameters_.Swap(&other->vehiclestatusparameters_);
  vehiclestatustype_.Swap(&other->vehiclestatustype_);
  std::swap(vehiclelocationtype_, other->vehiclelocationtype_);
  std::swap(enginestatusenum_, other->enginestatusenum_);
  std::swap(fuellevel_, other->fuellevel_);
  std::swap(odometer_, other->odometer_);
  std::swap(interiortemperature_, other->interiortemperature_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata VehicleStatus::GetMetadata() const {
  protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fVehicleInfo_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// VehicleStatus

// map<string, .com.fca.uconnect.global.VehicleStatus.Type> vehicleStatusType = 6;
int VehicleStatus::vehiclestatustype_size() const {
  return vehiclestatustype_.size();
}
void VehicleStatus::clear_vehiclestatustype() {
  vehiclestatustype_.Clear();
}
 const ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >&
VehicleStatus::vehiclestatustype() const {
  // @@protoc_insertion_point(field_map:com.fca.uconnect.global.VehicleStatus.vehicleStatusType)
  return vehiclestatustype_.GetMap();
}
 ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Type >*
VehicleStatus::mutable_vehiclestatustype() {
  // @@protoc_insertion_point(field_mutable_map:com.fca.uconnect.global.VehicleStatus.vehicleStatusType)
  return vehiclestatustype_.MutableMap();
}

// map<string, .com.fca.uconnect.global.VehicleStatus.Status> vehicleStatusParameters = 1;
int VehicleStatus::vehiclestatusparameters_size() const {
  return vehiclestatusparameters_.size();
}
void VehicleStatus::clear_vehiclestatusparameters() {
  vehiclestatusparameters_.Clear();
}
 const ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >&
VehicleStatus::vehiclestatusparameters() const {
  // @@protoc_insertion_point(field_map:com.fca.uconnect.global.VehicleStatus.vehicleStatusParameters)
  return vehiclestatusparameters_.GetMap();
}
 ::google::protobuf::Map< ::std::string, ::com::fca::uconnect::global::VehicleStatus_Status >*
VehicleStatus::mutable_vehiclestatusparameters() {
  // @@protoc_insertion_point(field_mutable_map:com.fca.uconnect.global.VehicleStatus.vehicleStatusParameters)
  return vehiclestatusparameters_.MutableMap();
}

// .com.fca.uconnect.global.VehicleStatus.EngineStatusEnum engineStatusEnum = 2;
void VehicleStatus::clear_enginestatusenum() {
  enginestatusenum_ = 0;
}
::com::fca::uconnect::global::VehicleStatus_EngineStatusEnum VehicleStatus::enginestatusenum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleStatus.engineStatusEnum)
  return static_cast< ::com::fca::uconnect::global::VehicleStatus_EngineStatusEnum >(enginestatusenum_);
}
void VehicleStatus::set_enginestatusenum(::com::fca::uconnect::global::VehicleStatus_EngineStatusEnum value) {
  
  enginestatusenum_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleStatus.engineStatusEnum)
}

// int32 fuelLevel = 3;
void VehicleStatus::clear_fuellevel() {
  fuellevel_ = 0;
}
::google::protobuf::int32 VehicleStatus::fuellevel() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleStatus.fuelLevel)
  return fuellevel_;
}
void VehicleStatus::set_fuellevel(::google::protobuf::int32 value) {
  
  fuellevel_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleStatus.fuelLevel)
}

// int32 odometer = 4;
void VehicleStatus::clear_odometer() {
  odometer_ = 0;
}
::google::protobuf::int32 VehicleStatus::odometer() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleStatus.odometer)
  return odometer_;
}
void VehicleStatus::set_odometer(::google::protobuf::int32 value) {
  
  odometer_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleStatus.odometer)
}

// int32 interiorTemperature = 5;
void VehicleStatus::clear_interiortemperature() {
  interiortemperature_ = 0;
}
::google::protobuf::int32 VehicleStatus::interiortemperature() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleStatus.interiorTemperature)
  return interiortemperature_;
}
void VehicleStatus::set_interiortemperature(::google::protobuf::int32 value) {
  
  interiortemperature_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.VehicleStatus.interiorTemperature)
}

// .com.fca.uconnect.global.Location vehicleLocationType = 7;
bool VehicleStatus::has_vehiclelocationtype() const {
  return this != internal_default_instance() && vehiclelocationtype_ != NULL;
}
void VehicleStatus::clear_vehiclelocationtype() {
  if (GetArenaNoVirtual() == NULL && vehiclelocationtype_ != NULL) delete vehiclelocationtype_;
  vehiclelocationtype_ = NULL;
}
const ::com::fca::uconnect::global::Location& VehicleStatus::vehiclelocationtype() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.VehicleStatus.vehicleLocationType)
  return vehiclelocationtype_ != NULL ? *vehiclelocationtype_
                         : *::com::fca::uconnect::global::Location::internal_default_instance();
}
::com::fca::uconnect::global::Location* VehicleStatus::mutable_vehiclelocationtype() {
  
  if (vehiclelocationtype_ == NULL) {
    vehiclelocationtype_ = new ::com::fca::uconnect::global::Location;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.VehicleStatus.vehicleLocationType)
  return vehiclelocationtype_;
}
::com::fca::uconnect::global::Location* VehicleStatus::release_vehiclelocationtype() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.VehicleStatus.vehicleLocationType)
  
  ::com::fca::uconnect::global::Location* temp = vehiclelocationtype_;
  vehiclelocationtype_ = NULL;
  return temp;
}
void VehicleStatus::set_allocated_vehiclelocationtype(::com::fca::uconnect::global::Location* vehiclelocationtype) {
  delete vehiclelocationtype_;
  vehiclelocationtype_ = vehiclelocationtype;
  if (vehiclelocationtype) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.VehicleStatus.vehicleLocationType)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// @@protoc_insertion_point(namespace_scope)

}  // namespace global
}  // namespace uconnect
}  // namespace fca
}  // namespace com

// @@protoc_insertion_point(global_scope)
