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

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "Global_Uconnect_Device.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 DeviceDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<Device> {
} _Device_default_instance_;

namespace protobuf_Global_5fUconnect_5fDevice_2eproto {


namespace {

::google::protobuf::Metadata file_level_metadata[1];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[4];

}  // 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 },
};

const ::google::protobuf::uint32 TableStruct::offsets[] = {
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, devicetype_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, deviceos_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, headunittype_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, manufacturername_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, region_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, screensize_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, tbmserialnum_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, tbmpartnum_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, tbmhardwareversion_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, tbmsoftwareversion_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, simiccid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, simimsi_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, simmsisdn_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, nadimei_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, nadhardwareversion_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, nadsoftwareversion_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, nadserialnum_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, nadpartnum_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, wifimac_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, huserialnum_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, hupartnum_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, huhardwareversion_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, husoftwareversion_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Device, ishunavigationpresent_),
};

static const ::google::protobuf::internal::MigrationSchema schemas[] = {
  { 0, -1, sizeof(Device)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&_Device_default_instance_),
};

namespace {

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "Global_Uconnect_Device.proto", schemas, file_default_instances, TableStruct::offsets, factory,
      file_level_metadata, file_level_enum_descriptors, NULL);
}

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, 1);
}

}  // namespace

void TableStruct::Shutdown() {
  _Device_default_instance_.Shutdown();
  delete file_level_metadata[0].reflection;
}

void TableStruct::InitDefaultsImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::internal::InitProtobufDefaults();
  _Device_default_instance_.DefaultConstruct();
}

void InitDefaults() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
}
void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] = {
      "\n\034Global_Uconnect_Device.proto\022\027com.fca."
      "uconnect.global\"\300\007\n\006Device\022>\n\ndeviceType"
      "\030\001 \001(\0162*.com.fca.uconnect.global.Device."
      "DeviceType\022A\n\010deviceOS\030\027 \001(\0162/.com.fca.u"
      "connect.global.Device.OperatingSystem\022\024\n"
      "\014headUnitType\030\025 \001(\t\022\030\n\020manufacturerName\030"
      "\002 \001(\t\022A\n\006region\030\026 \001(\01621.com.fca.uconnect"
      ".global.Device.ManufactureRegion\022\?\n\nscre"
      "enSize\030\030 \001(\0162+.com.fca.uconnect.global.D"
      "evice.DisplaySize\022\024\n\014tbmSerialNum\030\003 \001(\t\022"
      "\022\n\ntbmPartNum\030\004 \001(\t\022\032\n\022tbmHardwareVersio"
      "n\030\005 \001(\t\022\032\n\022tbmSoftwareVersion\030\006 \001(\t\022\020\n\010s"
      "imIccid\030\007 \001(\t\022\017\n\007simImsi\030\010 \001(\t\022\021\n\tsimMsi"
      "sdn\030\t \001(\t\022\017\n\007nadImei\030\n \001(\t\022\032\n\022nadHardwar"
      "eVersion\030\013 \001(\t\022\032\n\022nadSoftwareVersion\030\014 \001"
      "(\t\022\024\n\014nadSerialNum\030\r \001(\t\022\022\n\nnadPartNum\030\016"
      " \001(\t\022\017\n\007wifiMac\030\017 \001(\t\022\023\n\013huSerialNum\030\020 \001"
      "(\t\022\021\n\thuPartNum\030\021 \001(\t\022\031\n\021huHardwareVersi"
      "on\030\022 \001(\t\022\031\n\021huSoftwareVersion\030\023 \001(\t\022\035\n\025i"
      "sHUNavigationPresent\030\024 \001(\010\"/\n\017OperatingS"
      "ystem\022\007\n\003QNX\020\000\022\013\n\007Android\020\001\022\006\n\002CE\020\002\"B\n\013D"
      "isplaySize\022\010\n\004Five\020\000\022\t\n\005Seven\020\001\022\t\n\005Eight"
      "\020\002\022\007\n\003Ten\020\003\022\n\n\006Twelve\020\004\"H\n\021ManufactureRe"
      "gion\022\t\n\005NAFTA\020\000\022\t\n\005China\020\001\022\010\n\004APAC\020\002\022\010\n\004"
      "EMEA\020\003\022\t\n\005LATAM\020\004\"\'\n\nDeviceType\022\010\n\004ENUM\020"
      "\000\022\007\n\003TBM\020\001\022\006\n\002HU\020\002b\006proto3"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 1026);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "Global_Uconnect_Device.proto", &protobuf_RegisterTypes);
  ::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_5fDevice_2eproto

const ::google::protobuf::EnumDescriptor* Device_OperatingSystem_descriptor() {
  protobuf_Global_5fUconnect_5fDevice_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fDevice_2eproto::file_level_enum_descriptors[0];
}
bool Device_OperatingSystem_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const Device_OperatingSystem Device::QNX;
const Device_OperatingSystem Device::Android;
const Device_OperatingSystem Device::CE;
const Device_OperatingSystem Device::OperatingSystem_MIN;
const Device_OperatingSystem Device::OperatingSystem_MAX;
const int Device::OperatingSystem_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* Device_DisplaySize_descriptor() {
  protobuf_Global_5fUconnect_5fDevice_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fDevice_2eproto::file_level_enum_descriptors[1];
}
bool Device_DisplaySize_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 Device_DisplaySize Device::Five;
const Device_DisplaySize Device::Seven;
const Device_DisplaySize Device::Eight;
const Device_DisplaySize Device::Ten;
const Device_DisplaySize Device::Twelve;
const Device_DisplaySize Device::DisplaySize_MIN;
const Device_DisplaySize Device::DisplaySize_MAX;
const int Device::DisplaySize_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* Device_ManufactureRegion_descriptor() {
  protobuf_Global_5fUconnect_5fDevice_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fDevice_2eproto::file_level_enum_descriptors[2];
}
bool Device_ManufactureRegion_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 Device_ManufactureRegion Device::NAFTA;
const Device_ManufactureRegion Device::China;
const Device_ManufactureRegion Device::APAC;
const Device_ManufactureRegion Device::EMEA;
const Device_ManufactureRegion Device::LATAM;
const Device_ManufactureRegion Device::ManufactureRegion_MIN;
const Device_ManufactureRegion Device::ManufactureRegion_MAX;
const int Device::ManufactureRegion_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* Device_DeviceType_descriptor() {
  protobuf_Global_5fUconnect_5fDevice_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fDevice_2eproto::file_level_enum_descriptors[3];
}
bool Device_DeviceType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const Device_DeviceType Device::ENUM;
const Device_DeviceType Device::TBM;
const Device_DeviceType Device::HU;
const Device_DeviceType Device::DeviceType_MIN;
const Device_DeviceType Device::DeviceType_MAX;
const int Device::DeviceType_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Device::kDeviceTypeFieldNumber;
const int Device::kDeviceOSFieldNumber;
const int Device::kHeadUnitTypeFieldNumber;
const int Device::kManufacturerNameFieldNumber;
const int Device::kRegionFieldNumber;
const int Device::kScreenSizeFieldNumber;
const int Device::kTbmSerialNumFieldNumber;
const int Device::kTbmPartNumFieldNumber;
const int Device::kTbmHardwareVersionFieldNumber;
const int Device::kTbmSoftwareVersionFieldNumber;
const int Device::kSimIccidFieldNumber;
const int Device::kSimImsiFieldNumber;
const int Device::kSimMsisdnFieldNumber;
const int Device::kNadImeiFieldNumber;
const int Device::kNadHardwareVersionFieldNumber;
const int Device::kNadSoftwareVersionFieldNumber;
const int Device::kNadSerialNumFieldNumber;
const int Device::kNadPartNumFieldNumber;
const int Device::kWifiMacFieldNumber;
const int Device::kHuSerialNumFieldNumber;
const int Device::kHuPartNumFieldNumber;
const int Device::kHuHardwareVersionFieldNumber;
const int Device::kHuSoftwareVersionFieldNumber;
const int Device::kIsHUNavigationPresentFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Device::Device()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fDevice_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.Device)
}
Device::Device(const Device& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  manufacturername_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.manufacturername().size() > 0) {
    manufacturername_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.manufacturername_);
  }
  tbmserialnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.tbmserialnum().size() > 0) {
    tbmserialnum_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tbmserialnum_);
  }
  tbmpartnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.tbmpartnum().size() > 0) {
    tbmpartnum_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tbmpartnum_);
  }
  tbmhardwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.tbmhardwareversion().size() > 0) {
    tbmhardwareversion_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tbmhardwareversion_);
  }
  tbmsoftwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.tbmsoftwareversion().size() > 0) {
    tbmsoftwareversion_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tbmsoftwareversion_);
  }
  simiccid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.simiccid().size() > 0) {
    simiccid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.simiccid_);
  }
  simimsi_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.simimsi().size() > 0) {
    simimsi_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.simimsi_);
  }
  simmsisdn_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.simmsisdn().size() > 0) {
    simmsisdn_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.simmsisdn_);
  }
  nadimei_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.nadimei().size() > 0) {
    nadimei_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nadimei_);
  }
  nadhardwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.nadhardwareversion().size() > 0) {
    nadhardwareversion_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nadhardwareversion_);
  }
  nadsoftwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.nadsoftwareversion().size() > 0) {
    nadsoftwareversion_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nadsoftwareversion_);
  }
  nadserialnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.nadserialnum().size() > 0) {
    nadserialnum_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nadserialnum_);
  }
  nadpartnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.nadpartnum().size() > 0) {
    nadpartnum_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nadpartnum_);
  }
  wifimac_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.wifimac().size() > 0) {
    wifimac_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.wifimac_);
  }
  huserialnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.huserialnum().size() > 0) {
    huserialnum_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.huserialnum_);
  }
  hupartnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.hupartnum().size() > 0) {
    hupartnum_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.hupartnum_);
  }
  huhardwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.huhardwareversion().size() > 0) {
    huhardwareversion_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.huhardwareversion_);
  }
  husoftwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.husoftwareversion().size() > 0) {
    husoftwareversion_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.husoftwareversion_);
  }
  headunittype_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.headunittype().size() > 0) {
    headunittype_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.headunittype_);
  }
  ::memcpy(&devicetype_, &from.devicetype_,
    reinterpret_cast<char*>(&screensize_) -
    reinterpret_cast<char*>(&devicetype_) + sizeof(screensize_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.Device)
}

void Device::SharedCtor() {
  manufacturername_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmserialnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmpartnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmhardwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmsoftwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  simiccid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  simimsi_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  simmsisdn_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadimei_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadhardwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadsoftwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadserialnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadpartnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  wifimac_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  huserialnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  hupartnum_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  huhardwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  husoftwareversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  headunittype_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&devicetype_, 0, reinterpret_cast<char*>(&screensize_) -
    reinterpret_cast<char*>(&devicetype_) + sizeof(screensize_));
  _cached_size_ = 0;
}

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

void Device::SharedDtor() {
  manufacturername_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmserialnum_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmpartnum_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmhardwareversion_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmsoftwareversion_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  simiccid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  simimsi_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  simmsisdn_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadimei_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadhardwareversion_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadsoftwareversion_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadserialnum_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadpartnum_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  wifimac_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  huserialnum_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  hupartnum_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  huhardwareversion_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  husoftwareversion_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  headunittype_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

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

const Device& Device::default_instance() {
  protobuf_Global_5fUconnect_5fDevice_2eproto::InitDefaults();
  return *internal_default_instance();
}

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

void Device::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.Device)
  manufacturername_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmserialnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmpartnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmhardwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tbmsoftwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  simiccid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  simimsi_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  simmsisdn_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadimei_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadhardwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadsoftwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadserialnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  nadpartnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  wifimac_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  huserialnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  hupartnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  huhardwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  husoftwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  headunittype_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&devicetype_, 0, reinterpret_cast<char*>(&screensize_) -
    reinterpret_cast<char*>(&devicetype_) + sizeof(screensize_));
}

bool Device::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.Device)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .com.fca.uconnect.global.Device.DeviceType deviceType = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_devicetype(static_cast< ::com::fca::uconnect::global::Device_DeviceType >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string manufacturerName = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_manufacturername()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->manufacturername().data(), this->manufacturername().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.manufacturerName"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string tbmSerialNum = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tbmserialnum()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->tbmserialnum().data(), this->tbmserialnum().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.tbmSerialNum"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string tbmPartNum = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tbmpartnum()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->tbmpartnum().data(), this->tbmpartnum().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.tbmPartNum"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string tbmHardwareVersion = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tbmhardwareversion()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->tbmhardwareversion().data(), this->tbmhardwareversion().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.tbmHardwareVersion"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string tbmSoftwareVersion = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tbmsoftwareversion()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->tbmsoftwareversion().data(), this->tbmsoftwareversion().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.tbmSoftwareVersion"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string simIccid = 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_simiccid()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->simiccid().data(), this->simiccid().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.simIccid"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string simImsi = 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_simimsi()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->simimsi().data(), this->simimsi().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.simImsi"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string simMsisdn = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_simmsisdn()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->simmsisdn().data(), this->simmsisdn().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.simMsisdn"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string nadImei = 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_nadimei()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->nadimei().data(), this->nadimei().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.nadImei"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string nadHardwareVersion = 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_nadhardwareversion()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->nadhardwareversion().data(), this->nadhardwareversion().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.nadHardwareVersion"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string nadSoftwareVersion = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_nadsoftwareversion()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->nadsoftwareversion().data(), this->nadsoftwareversion().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.nadSoftwareVersion"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string nadSerialNum = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(106u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_nadserialnum()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->nadserialnum().data(), this->nadserialnum().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.nadSerialNum"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string nadPartNum = 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_nadpartnum()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->nadpartnum().data(), this->nadpartnum().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.nadPartNum"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string wifiMac = 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_wifimac()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->wifimac().data(), this->wifimac().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.wifiMac"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string huSerialNum = 16;
      case 16: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(130u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_huserialnum()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->huserialnum().data(), this->huserialnum().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.huSerialNum"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string huPartNum = 17;
      case 17: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(138u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_hupartnum()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->hupartnum().data(), this->hupartnum().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.huPartNum"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string huHardwareVersion = 18;
      case 18: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(146u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_huhardwareversion()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->huhardwareversion().data(), this->huhardwareversion().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.huHardwareVersion"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string huSoftwareVersion = 19;
      case 19: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(154u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_husoftwareversion()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->husoftwareversion().data(), this->husoftwareversion().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.huSoftwareVersion"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool isHUNavigationPresent = 20;
      case 20: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(160u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &ishunavigationpresent_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string headUnitType = 21;
      case 21: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(170u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_headunittype()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->headunittype().data(), this->headunittype().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.Device.headUnitType"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.Device.ManufactureRegion region = 22;
      case 22: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(176u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_region(static_cast< ::com::fca::uconnect::global::Device_ManufactureRegion >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.Device.OperatingSystem deviceOS = 23;
      case 23: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(184u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_deviceos(static_cast< ::com::fca::uconnect::global::Device_OperatingSystem >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.Device.DisplaySize screenSize = 24;
      case 24: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(192u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_screensize(static_cast< ::com::fca::uconnect::global::Device_DisplaySize >(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.Device)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.Device)
  return false;
#undef DO_
}

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

  // .com.fca.uconnect.global.Device.DeviceType deviceType = 1;
  if (this->devicetype() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->devicetype(), output);
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  // bool isHUNavigationPresent = 20;
  if (this->ishunavigationpresent() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(20, this->ishunavigationpresent(), output);
  }

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

  // .com.fca.uconnect.global.Device.ManufactureRegion region = 22;
  if (this->region() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      22, this->region(), output);
  }

  // .com.fca.uconnect.global.Device.OperatingSystem deviceOS = 23;
  if (this->deviceos() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      23, this->deviceos(), output);
  }

  // .com.fca.uconnect.global.Device.DisplaySize screenSize = 24;
  if (this->screensize() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      24, this->screensize(), output);
  }

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

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

  // .com.fca.uconnect.global.Device.DeviceType deviceType = 1;
  if (this->devicetype() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      1, this->devicetype(), target);
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  // bool isHUNavigationPresent = 20;
  if (this->ishunavigationpresent() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(20, this->ishunavigationpresent(), target);
  }

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

  // .com.fca.uconnect.global.Device.ManufactureRegion region = 22;
  if (this->region() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      22, this->region(), target);
  }

  // .com.fca.uconnect.global.Device.OperatingSystem deviceOS = 23;
  if (this->deviceos() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      23, this->deviceos(), target);
  }

  // .com.fca.uconnect.global.Device.DisplaySize screenSize = 24;
  if (this->screensize() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      24, this->screensize(), target);
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  // string huSerialNum = 16;
  if (this->huserialnum().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->huserialnum());
  }

  // string huPartNum = 17;
  if (this->hupartnum().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->hupartnum());
  }

  // string huHardwareVersion = 18;
  if (this->huhardwareversion().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->huhardwareversion());
  }

  // string huSoftwareVersion = 19;
  if (this->husoftwareversion().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->husoftwareversion());
  }

  // string headUnitType = 21;
  if (this->headunittype().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->headunittype());
  }

  // .com.fca.uconnect.global.Device.DeviceType deviceType = 1;
  if (this->devicetype() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->devicetype());
  }

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

  // .com.fca.uconnect.global.Device.ManufactureRegion region = 22;
  if (this->region() != 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->region());
  }

  // .com.fca.uconnect.global.Device.OperatingSystem deviceOS = 23;
  if (this->deviceos() != 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->deviceos());
  }

  // .com.fca.uconnect.global.Device.DisplaySize screenSize = 24;
  if (this->screensize() != 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->screensize());
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    headunittype_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.headunittype_);
  }
  if (from.devicetype() != 0) {
    set_devicetype(from.devicetype());
  }
  if (from.ishunavigationpresent() != 0) {
    set_ishunavigationpresent(from.ishunavigationpresent());
  }
  if (from.region() != 0) {
    set_region(from.region());
  }
  if (from.deviceos() != 0) {
    set_deviceos(from.deviceos());
  }
  if (from.screensize() != 0) {
    set_screensize(from.screensize());
  }
}

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

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

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

void Device::Swap(Device* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Device::InternalSwap(Device* other) {
  manufacturername_.Swap(&other->manufacturername_);
  tbmserialnum_.Swap(&other->tbmserialnum_);
  tbmpartnum_.Swap(&other->tbmpartnum_);
  tbmhardwareversion_.Swap(&other->tbmhardwareversion_);
  tbmsoftwareversion_.Swap(&other->tbmsoftwareversion_);
  simiccid_.Swap(&other->simiccid_);
  simimsi_.Swap(&other->simimsi_);
  simmsisdn_.Swap(&other->simmsisdn_);
  nadimei_.Swap(&other->nadimei_);
  nadhardwareversion_.Swap(&other->nadhardwareversion_);
  nadsoftwareversion_.Swap(&other->nadsoftwareversion_);
  nadserialnum_.Swap(&other->nadserialnum_);
  nadpartnum_.Swap(&other->nadpartnum_);
  wifimac_.Swap(&other->wifimac_);
  huserialnum_.Swap(&other->huserialnum_);
  hupartnum_.Swap(&other->hupartnum_);
  huhardwareversion_.Swap(&other->huhardwareversion_);
  husoftwareversion_.Swap(&other->husoftwareversion_);
  headunittype_.Swap(&other->headunittype_);
  std::swap(devicetype_, other->devicetype_);
  std::swap(ishunavigationpresent_, other->ishunavigationpresent_);
  std::swap(region_, other->region_);
  std::swap(deviceos_, other->deviceos_);
  std::swap(screensize_, other->screensize_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// Device

// .com.fca.uconnect.global.Device.DeviceType deviceType = 1;
void Device::clear_devicetype() {
  devicetype_ = 0;
}
::com::fca::uconnect::global::Device_DeviceType Device::devicetype() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.deviceType)
  return static_cast< ::com::fca::uconnect::global::Device_DeviceType >(devicetype_);
}
void Device::set_devicetype(::com::fca::uconnect::global::Device_DeviceType value) {
  
  devicetype_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.deviceType)
}

// .com.fca.uconnect.global.Device.OperatingSystem deviceOS = 23;
void Device::clear_deviceos() {
  deviceos_ = 0;
}
::com::fca::uconnect::global::Device_OperatingSystem Device::deviceos() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.deviceOS)
  return static_cast< ::com::fca::uconnect::global::Device_OperatingSystem >(deviceos_);
}
void Device::set_deviceos(::com::fca::uconnect::global::Device_OperatingSystem value) {
  
  deviceos_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.deviceOS)
}

// string headUnitType = 21;
void Device::clear_headunittype() {
  headunittype_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::headunittype() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.headUnitType)
  return headunittype_.GetNoArena();
}
void Device::set_headunittype(const ::std::string& value) {
  
  headunittype_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.headUnitType)
}
#if LANG_CXX11
void Device::set_headunittype(::std::string&& value) {
  
  headunittype_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.headUnitType)
}
#endif
void Device::set_headunittype(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  headunittype_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.headUnitType)
}
void Device::set_headunittype(const char* value, size_t size) {
  
  headunittype_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.headUnitType)
}
::std::string* Device::mutable_headunittype() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.headUnitType)
  return headunittype_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_headunittype() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.headUnitType)
  
  return headunittype_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_headunittype(::std::string* headunittype) {
  if (headunittype != NULL) {
    
  } else {
    
  }
  headunittype_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), headunittype);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.headUnitType)
}

// string manufacturerName = 2;
void Device::clear_manufacturername() {
  manufacturername_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::manufacturername() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.manufacturerName)
  return manufacturername_.GetNoArena();
}
void Device::set_manufacturername(const ::std::string& value) {
  
  manufacturername_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.manufacturerName)
}
#if LANG_CXX11
void Device::set_manufacturername(::std::string&& value) {
  
  manufacturername_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.manufacturerName)
}
#endif
void Device::set_manufacturername(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  manufacturername_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.manufacturerName)
}
void Device::set_manufacturername(const char* value, size_t size) {
  
  manufacturername_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.manufacturerName)
}
::std::string* Device::mutable_manufacturername() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.manufacturerName)
  return manufacturername_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_manufacturername() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.manufacturerName)
  
  return manufacturername_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_manufacturername(::std::string* manufacturername) {
  if (manufacturername != NULL) {
    
  } else {
    
  }
  manufacturername_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), manufacturername);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.manufacturerName)
}

// .com.fca.uconnect.global.Device.ManufactureRegion region = 22;
void Device::clear_region() {
  region_ = 0;
}
::com::fca::uconnect::global::Device_ManufactureRegion Device::region() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.region)
  return static_cast< ::com::fca::uconnect::global::Device_ManufactureRegion >(region_);
}
void Device::set_region(::com::fca::uconnect::global::Device_ManufactureRegion value) {
  
  region_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.region)
}

// .com.fca.uconnect.global.Device.DisplaySize screenSize = 24;
void Device::clear_screensize() {
  screensize_ = 0;
}
::com::fca::uconnect::global::Device_DisplaySize Device::screensize() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.screenSize)
  return static_cast< ::com::fca::uconnect::global::Device_DisplaySize >(screensize_);
}
void Device::set_screensize(::com::fca::uconnect::global::Device_DisplaySize value) {
  
  screensize_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.screenSize)
}

// string tbmSerialNum = 3;
void Device::clear_tbmserialnum() {
  tbmserialnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::tbmserialnum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.tbmSerialNum)
  return tbmserialnum_.GetNoArena();
}
void Device::set_tbmserialnum(const ::std::string& value) {
  
  tbmserialnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.tbmSerialNum)
}
#if LANG_CXX11
void Device::set_tbmserialnum(::std::string&& value) {
  
  tbmserialnum_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.tbmSerialNum)
}
#endif
void Device::set_tbmserialnum(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  tbmserialnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.tbmSerialNum)
}
void Device::set_tbmserialnum(const char* value, size_t size) {
  
  tbmserialnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.tbmSerialNum)
}
::std::string* Device::mutable_tbmserialnum() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.tbmSerialNum)
  return tbmserialnum_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_tbmserialnum() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.tbmSerialNum)
  
  return tbmserialnum_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_tbmserialnum(::std::string* tbmserialnum) {
  if (tbmserialnum != NULL) {
    
  } else {
    
  }
  tbmserialnum_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tbmserialnum);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.tbmSerialNum)
}

// string tbmPartNum = 4;
void Device::clear_tbmpartnum() {
  tbmpartnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::tbmpartnum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.tbmPartNum)
  return tbmpartnum_.GetNoArena();
}
void Device::set_tbmpartnum(const ::std::string& value) {
  
  tbmpartnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.tbmPartNum)
}
#if LANG_CXX11
void Device::set_tbmpartnum(::std::string&& value) {
  
  tbmpartnum_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.tbmPartNum)
}
#endif
void Device::set_tbmpartnum(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  tbmpartnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.tbmPartNum)
}
void Device::set_tbmpartnum(const char* value, size_t size) {
  
  tbmpartnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.tbmPartNum)
}
::std::string* Device::mutable_tbmpartnum() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.tbmPartNum)
  return tbmpartnum_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_tbmpartnum() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.tbmPartNum)
  
  return tbmpartnum_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_tbmpartnum(::std::string* tbmpartnum) {
  if (tbmpartnum != NULL) {
    
  } else {
    
  }
  tbmpartnum_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tbmpartnum);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.tbmPartNum)
}

// string tbmHardwareVersion = 5;
void Device::clear_tbmhardwareversion() {
  tbmhardwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::tbmhardwareversion() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.tbmHardwareVersion)
  return tbmhardwareversion_.GetNoArena();
}
void Device::set_tbmhardwareversion(const ::std::string& value) {
  
  tbmhardwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.tbmHardwareVersion)
}
#if LANG_CXX11
void Device::set_tbmhardwareversion(::std::string&& value) {
  
  tbmhardwareversion_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.tbmHardwareVersion)
}
#endif
void Device::set_tbmhardwareversion(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  tbmhardwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.tbmHardwareVersion)
}
void Device::set_tbmhardwareversion(const char* value, size_t size) {
  
  tbmhardwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.tbmHardwareVersion)
}
::std::string* Device::mutable_tbmhardwareversion() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.tbmHardwareVersion)
  return tbmhardwareversion_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_tbmhardwareversion() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.tbmHardwareVersion)
  
  return tbmhardwareversion_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_tbmhardwareversion(::std::string* tbmhardwareversion) {
  if (tbmhardwareversion != NULL) {
    
  } else {
    
  }
  tbmhardwareversion_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tbmhardwareversion);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.tbmHardwareVersion)
}

// string tbmSoftwareVersion = 6;
void Device::clear_tbmsoftwareversion() {
  tbmsoftwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::tbmsoftwareversion() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.tbmSoftwareVersion)
  return tbmsoftwareversion_.GetNoArena();
}
void Device::set_tbmsoftwareversion(const ::std::string& value) {
  
  tbmsoftwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.tbmSoftwareVersion)
}
#if LANG_CXX11
void Device::set_tbmsoftwareversion(::std::string&& value) {
  
  tbmsoftwareversion_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.tbmSoftwareVersion)
}
#endif
void Device::set_tbmsoftwareversion(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  tbmsoftwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.tbmSoftwareVersion)
}
void Device::set_tbmsoftwareversion(const char* value, size_t size) {
  
  tbmsoftwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.tbmSoftwareVersion)
}
::std::string* Device::mutable_tbmsoftwareversion() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.tbmSoftwareVersion)
  return tbmsoftwareversion_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_tbmsoftwareversion() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.tbmSoftwareVersion)
  
  return tbmsoftwareversion_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_tbmsoftwareversion(::std::string* tbmsoftwareversion) {
  if (tbmsoftwareversion != NULL) {
    
  } else {
    
  }
  tbmsoftwareversion_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tbmsoftwareversion);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.tbmSoftwareVersion)
}

// string simIccid = 7;
void Device::clear_simiccid() {
  simiccid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::simiccid() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.simIccid)
  return simiccid_.GetNoArena();
}
void Device::set_simiccid(const ::std::string& value) {
  
  simiccid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.simIccid)
}
#if LANG_CXX11
void Device::set_simiccid(::std::string&& value) {
  
  simiccid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.simIccid)
}
#endif
void Device::set_simiccid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  simiccid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.simIccid)
}
void Device::set_simiccid(const char* value, size_t size) {
  
  simiccid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.simIccid)
}
::std::string* Device::mutable_simiccid() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.simIccid)
  return simiccid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_simiccid() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.simIccid)
  
  return simiccid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_simiccid(::std::string* simiccid) {
  if (simiccid != NULL) {
    
  } else {
    
  }
  simiccid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), simiccid);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.simIccid)
}

// string simImsi = 8;
void Device::clear_simimsi() {
  simimsi_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::simimsi() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.simImsi)
  return simimsi_.GetNoArena();
}
void Device::set_simimsi(const ::std::string& value) {
  
  simimsi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.simImsi)
}
#if LANG_CXX11
void Device::set_simimsi(::std::string&& value) {
  
  simimsi_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.simImsi)
}
#endif
void Device::set_simimsi(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  simimsi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.simImsi)
}
void Device::set_simimsi(const char* value, size_t size) {
  
  simimsi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.simImsi)
}
::std::string* Device::mutable_simimsi() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.simImsi)
  return simimsi_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_simimsi() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.simImsi)
  
  return simimsi_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_simimsi(::std::string* simimsi) {
  if (simimsi != NULL) {
    
  } else {
    
  }
  simimsi_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), simimsi);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.simImsi)
}

// string simMsisdn = 9;
void Device::clear_simmsisdn() {
  simmsisdn_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::simmsisdn() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.simMsisdn)
  return simmsisdn_.GetNoArena();
}
void Device::set_simmsisdn(const ::std::string& value) {
  
  simmsisdn_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.simMsisdn)
}
#if LANG_CXX11
void Device::set_simmsisdn(::std::string&& value) {
  
  simmsisdn_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.simMsisdn)
}
#endif
void Device::set_simmsisdn(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  simmsisdn_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.simMsisdn)
}
void Device::set_simmsisdn(const char* value, size_t size) {
  
  simmsisdn_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.simMsisdn)
}
::std::string* Device::mutable_simmsisdn() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.simMsisdn)
  return simmsisdn_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_simmsisdn() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.simMsisdn)
  
  return simmsisdn_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_simmsisdn(::std::string* simmsisdn) {
  if (simmsisdn != NULL) {
    
  } else {
    
  }
  simmsisdn_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), simmsisdn);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.simMsisdn)
}

// string nadImei = 10;
void Device::clear_nadimei() {
  nadimei_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::nadimei() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.nadImei)
  return nadimei_.GetNoArena();
}
void Device::set_nadimei(const ::std::string& value) {
  
  nadimei_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.nadImei)
}
#if LANG_CXX11
void Device::set_nadimei(::std::string&& value) {
  
  nadimei_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.nadImei)
}
#endif
void Device::set_nadimei(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  nadimei_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.nadImei)
}
void Device::set_nadimei(const char* value, size_t size) {
  
  nadimei_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.nadImei)
}
::std::string* Device::mutable_nadimei() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.nadImei)
  return nadimei_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_nadimei() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.nadImei)
  
  return nadimei_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_nadimei(::std::string* nadimei) {
  if (nadimei != NULL) {
    
  } else {
    
  }
  nadimei_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nadimei);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.nadImei)
}

// string nadHardwareVersion = 11;
void Device::clear_nadhardwareversion() {
  nadhardwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::nadhardwareversion() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.nadHardwareVersion)
  return nadhardwareversion_.GetNoArena();
}
void Device::set_nadhardwareversion(const ::std::string& value) {
  
  nadhardwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.nadHardwareVersion)
}
#if LANG_CXX11
void Device::set_nadhardwareversion(::std::string&& value) {
  
  nadhardwareversion_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.nadHardwareVersion)
}
#endif
void Device::set_nadhardwareversion(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  nadhardwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.nadHardwareVersion)
}
void Device::set_nadhardwareversion(const char* value, size_t size) {
  
  nadhardwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.nadHardwareVersion)
}
::std::string* Device::mutable_nadhardwareversion() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.nadHardwareVersion)
  return nadhardwareversion_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_nadhardwareversion() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.nadHardwareVersion)
  
  return nadhardwareversion_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_nadhardwareversion(::std::string* nadhardwareversion) {
  if (nadhardwareversion != NULL) {
    
  } else {
    
  }
  nadhardwareversion_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nadhardwareversion);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.nadHardwareVersion)
}

// string nadSoftwareVersion = 12;
void Device::clear_nadsoftwareversion() {
  nadsoftwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::nadsoftwareversion() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.nadSoftwareVersion)
  return nadsoftwareversion_.GetNoArena();
}
void Device::set_nadsoftwareversion(const ::std::string& value) {
  
  nadsoftwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.nadSoftwareVersion)
}
#if LANG_CXX11
void Device::set_nadsoftwareversion(::std::string&& value) {
  
  nadsoftwareversion_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.nadSoftwareVersion)
}
#endif
void Device::set_nadsoftwareversion(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  nadsoftwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.nadSoftwareVersion)
}
void Device::set_nadsoftwareversion(const char* value, size_t size) {
  
  nadsoftwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.nadSoftwareVersion)
}
::std::string* Device::mutable_nadsoftwareversion() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.nadSoftwareVersion)
  return nadsoftwareversion_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_nadsoftwareversion() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.nadSoftwareVersion)
  
  return nadsoftwareversion_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_nadsoftwareversion(::std::string* nadsoftwareversion) {
  if (nadsoftwareversion != NULL) {
    
  } else {
    
  }
  nadsoftwareversion_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nadsoftwareversion);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.nadSoftwareVersion)
}

// string nadSerialNum = 13;
void Device::clear_nadserialnum() {
  nadserialnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::nadserialnum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.nadSerialNum)
  return nadserialnum_.GetNoArena();
}
void Device::set_nadserialnum(const ::std::string& value) {
  
  nadserialnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.nadSerialNum)
}
#if LANG_CXX11
void Device::set_nadserialnum(::std::string&& value) {
  
  nadserialnum_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.nadSerialNum)
}
#endif
void Device::set_nadserialnum(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  nadserialnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.nadSerialNum)
}
void Device::set_nadserialnum(const char* value, size_t size) {
  
  nadserialnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.nadSerialNum)
}
::std::string* Device::mutable_nadserialnum() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.nadSerialNum)
  return nadserialnum_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_nadserialnum() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.nadSerialNum)
  
  return nadserialnum_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_nadserialnum(::std::string* nadserialnum) {
  if (nadserialnum != NULL) {
    
  } else {
    
  }
  nadserialnum_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nadserialnum);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.nadSerialNum)
}

// string nadPartNum = 14;
void Device::clear_nadpartnum() {
  nadpartnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::nadpartnum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.nadPartNum)
  return nadpartnum_.GetNoArena();
}
void Device::set_nadpartnum(const ::std::string& value) {
  
  nadpartnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.nadPartNum)
}
#if LANG_CXX11
void Device::set_nadpartnum(::std::string&& value) {
  
  nadpartnum_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.nadPartNum)
}
#endif
void Device::set_nadpartnum(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  nadpartnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.nadPartNum)
}
void Device::set_nadpartnum(const char* value, size_t size) {
  
  nadpartnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.nadPartNum)
}
::std::string* Device::mutable_nadpartnum() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.nadPartNum)
  return nadpartnum_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_nadpartnum() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.nadPartNum)
  
  return nadpartnum_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_nadpartnum(::std::string* nadpartnum) {
  if (nadpartnum != NULL) {
    
  } else {
    
  }
  nadpartnum_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nadpartnum);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.nadPartNum)
}

// string wifiMac = 15;
void Device::clear_wifimac() {
  wifimac_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::wifimac() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.wifiMac)
  return wifimac_.GetNoArena();
}
void Device::set_wifimac(const ::std::string& value) {
  
  wifimac_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.wifiMac)
}
#if LANG_CXX11
void Device::set_wifimac(::std::string&& value) {
  
  wifimac_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.wifiMac)
}
#endif
void Device::set_wifimac(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  wifimac_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.wifiMac)
}
void Device::set_wifimac(const char* value, size_t size) {
  
  wifimac_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.wifiMac)
}
::std::string* Device::mutable_wifimac() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.wifiMac)
  return wifimac_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_wifimac() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.wifiMac)
  
  return wifimac_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_wifimac(::std::string* wifimac) {
  if (wifimac != NULL) {
    
  } else {
    
  }
  wifimac_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), wifimac);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.wifiMac)
}

// string huSerialNum = 16;
void Device::clear_huserialnum() {
  huserialnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::huserialnum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.huSerialNum)
  return huserialnum_.GetNoArena();
}
void Device::set_huserialnum(const ::std::string& value) {
  
  huserialnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.huSerialNum)
}
#if LANG_CXX11
void Device::set_huserialnum(::std::string&& value) {
  
  huserialnum_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.huSerialNum)
}
#endif
void Device::set_huserialnum(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  huserialnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.huSerialNum)
}
void Device::set_huserialnum(const char* value, size_t size) {
  
  huserialnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.huSerialNum)
}
::std::string* Device::mutable_huserialnum() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.huSerialNum)
  return huserialnum_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_huserialnum() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.huSerialNum)
  
  return huserialnum_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_huserialnum(::std::string* huserialnum) {
  if (huserialnum != NULL) {
    
  } else {
    
  }
  huserialnum_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), huserialnum);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.huSerialNum)
}

// string huPartNum = 17;
void Device::clear_hupartnum() {
  hupartnum_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::hupartnum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.huPartNum)
  return hupartnum_.GetNoArena();
}
void Device::set_hupartnum(const ::std::string& value) {
  
  hupartnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.huPartNum)
}
#if LANG_CXX11
void Device::set_hupartnum(::std::string&& value) {
  
  hupartnum_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.huPartNum)
}
#endif
void Device::set_hupartnum(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  hupartnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.huPartNum)
}
void Device::set_hupartnum(const char* value, size_t size) {
  
  hupartnum_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.huPartNum)
}
::std::string* Device::mutable_hupartnum() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.huPartNum)
  return hupartnum_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_hupartnum() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.huPartNum)
  
  return hupartnum_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_hupartnum(::std::string* hupartnum) {
  if (hupartnum != NULL) {
    
  } else {
    
  }
  hupartnum_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), hupartnum);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.huPartNum)
}

// string huHardwareVersion = 18;
void Device::clear_huhardwareversion() {
  huhardwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::huhardwareversion() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.huHardwareVersion)
  return huhardwareversion_.GetNoArena();
}
void Device::set_huhardwareversion(const ::std::string& value) {
  
  huhardwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.huHardwareVersion)
}
#if LANG_CXX11
void Device::set_huhardwareversion(::std::string&& value) {
  
  huhardwareversion_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.huHardwareVersion)
}
#endif
void Device::set_huhardwareversion(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  huhardwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.huHardwareVersion)
}
void Device::set_huhardwareversion(const char* value, size_t size) {
  
  huhardwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.huHardwareVersion)
}
::std::string* Device::mutable_huhardwareversion() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.huHardwareVersion)
  return huhardwareversion_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_huhardwareversion() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.huHardwareVersion)
  
  return huhardwareversion_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_huhardwareversion(::std::string* huhardwareversion) {
  if (huhardwareversion != NULL) {
    
  } else {
    
  }
  huhardwareversion_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), huhardwareversion);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.huHardwareVersion)
}

// string huSoftwareVersion = 19;
void Device::clear_husoftwareversion() {
  husoftwareversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Device::husoftwareversion() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.huSoftwareVersion)
  return husoftwareversion_.GetNoArena();
}
void Device::set_husoftwareversion(const ::std::string& value) {
  
  husoftwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.huSoftwareVersion)
}
#if LANG_CXX11
void Device::set_husoftwareversion(::std::string&& value) {
  
  husoftwareversion_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.Device.huSoftwareVersion)
}
#endif
void Device::set_husoftwareversion(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  husoftwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.Device.huSoftwareVersion)
}
void Device::set_husoftwareversion(const char* value, size_t size) {
  
  husoftwareversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.Device.huSoftwareVersion)
}
::std::string* Device::mutable_husoftwareversion() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.Device.huSoftwareVersion)
  return husoftwareversion_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Device::release_husoftwareversion() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.Device.huSoftwareVersion)
  
  return husoftwareversion_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Device::set_allocated_husoftwareversion(::std::string* husoftwareversion) {
  if (husoftwareversion != NULL) {
    
  } else {
    
  }
  husoftwareversion_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), husoftwareversion);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.Device.huSoftwareVersion)
}

// bool isHUNavigationPresent = 20;
void Device::clear_ishunavigationpresent() {
  ishunavigationpresent_ = false;
}
bool Device::ishunavigationpresent() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Device.isHUNavigationPresent)
  return ishunavigationpresent_;
}
void Device::set_ishunavigationpresent(bool value) {
  
  ishunavigationpresent_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Device.isHUNavigationPresent)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// @@protoc_insertion_point(namespace_scope)

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

// @@protoc_insertion_point(global_scope)
