AppMain
authorJustin Dickow <jjdickow@gmail.com>
Tue, 15 Jul 2014 15:39:21 +0000 (11:39 -0400)
committerJustin Dickow <jjdickow@gmail.com>
Tue, 15 Jul 2014 15:39:21 +0000 (11:39 -0400)
Signed-off-by: Justin Dickow <jjdickow@gmail.com>
src/appMain/CMakeLists.txt
src/appMain/hmi_capabilities.json
src/appMain/life_cycle.cc
src/appMain/life_cycle.h
src/appMain/main.cc
src/appMain/policy.ini [new file with mode: 0644]
src/appMain/qdbserver.sh [new file with mode: 0755]
src/appMain/sdl_preloaded_pt.json
src/appMain/smartDeviceLink.ini

index 3460e6c..f32c200 100644 (file)
@@ -21,12 +21,17 @@ set(default_media_inc
 )
 endif()
 
+if (TIME_TESTER)
+    set(TIME_TESTER_LIB
+        TimeTester)
+endif()
 set(LIBRARIES
   ApplicationManager
   HMI_API
   MOBILE_API
   v4_protocol_v1_2_no_extra
   SmartObjects
+  ${TIME_TESTER_LIB}
   formatters
   ProtocolHandler
   connectionHandler
@@ -76,6 +81,7 @@ include_directories (
   ../components/request_watchdog/include
   ../components/smart_objects/include/
   ../components/media_manager/include/
+  ${CMAKE_SOURCE_DIR}/src/components/time_tester/include
   ${CMAKE_SOURCE_DIR}/src/components/policy/src/policy/include/
   ../components/resumption/include/
   ../thirdPartyLibs/MessageBroker/include
@@ -110,6 +116,7 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/sdl_preloaded_pt.json DESTINATION ${CMAKE_
 if (BUILD_TESTS)
   file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx.properties DESTINATION ${CMAKE_BINARY_DIR}/test/)
   file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/smartDeviceLink.ini DESTINATION ${CMAKE_BINARY_DIR}/test/)
+  file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/hmi_capabilities.json DESTINATION ${CMAKE_BINARY_DIR}/test/)
 endif()
 
 if (${QT_HMI})
index bbaeab5..d8a35dd 100644 (file)
            "displayCapabilities":
                {
                        "displayType":"GEN2_8_DMA",
-                       "textFields":
-                       [
-                               "mainField1","mainField2","mainField3","mainField4","statusBar","mediaClock","mediaTrack","alertText1","alertText2","alertText3",
-                               "scrollableMessageBody","initialInteractionText","navigationText1","navigationText2","ETA","totalDistance",
-                               "audioPassThruDisplayText1","audioPassThruDisplayText2","sliderHeader","sliderFooter","notificationText","menuName",
-                               "secondaryText","tertiaryText","timeToDestination","turnText"
-                       ],
+                       "textFields": [{
+                                            "name": "mainField1",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "mainField2",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "mainField3",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "mainField4",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "statusBar",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "mediaClock",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "mediaTrack",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "alertText1",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "alertText2",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "alertText3",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "scrollableMessageBody",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "initialInteractionText",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "navigationText1",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "navigationText2",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "ETA",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "totalDistance",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "navigationText",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "audioPassThruDisplayText1",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "audioPassThruDisplayText2",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "sliderHeader",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "sliderFooter",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "notificationText",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "menuName",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "secondaryText",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "tertiaryText",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "timeToDestination",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "turnText",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        },
+                                        {
+                                            "name": "menuTitle",
+                                            "characterSet": "TYPE2SET",
+                                            "width": 500,
+                                            "rows": 1
+                                        }
+                                    ],
                                "imageFields":
                        [
                                {
                         "numCustomPresetsAvailable":8,
                        "imageCapabilities":
                        [
-                               "DYNAMIC"
+                               "DYNAMIC",
+                               "STATIC"
                        ]
                },
                "audioPassThruCapabilities":
                {
                        "samplingRate"  : "44KHZ",
-                       "bitsPerSample" : "8_BIT",
+                       "bitsPerSample" : "RATE_8_BIT",
                        "audioType"             : "PCM"
                },
                "hmiZoneCapabilities":"FRONT",
index 546e70d..da87617 100644 (file)
 using threads::Thread;
 
 namespace main_namespace {
-#ifdef ENABLE_LOG
-log4cxx::LoggerPtr LifeCycle::logger_ = log4cxx::LoggerPtr(
-    log4cxx::Logger::getLogger("appMain"));
-#endif // ENABLE_LOG
+CREATE_LOGGERPTR_GLOBAL(logger_, "appMain")
 
 namespace {
-
 void NameMessageBrokerThread(const System::Thread& thread,
                              const std::string& name) {
   Thread::SetNameForId(Thread::Id(thread.GetId()), name);
@@ -62,6 +58,9 @@ LifeCycle::LifeCycle()
   , hmi_handler_(NULL)
   , hmi_message_adapter_(NULL)
   , media_manager_(NULL)
+#ifdef TIME_TESTER
+  , time_tester_(NULL)
+#endif //TIME_TESTER
 #ifdef DBUS_HMIADAPTER
   , dbus_adapter_(NULL)
   , dbus_adapter_thread_(NULL)
@@ -94,7 +93,6 @@ bool LifeCycle::StartComponents() {
   app_manager_ =
     application_manager::ApplicationManagerImpl::instance();
   DCHECK(app_manager_ != NULL);
-
   hmi_handler_ =
     hmi_message_handler::HMIMessageHandlerImpl::instance();
   DCHECK(hmi_handler_ != NULL)
@@ -106,6 +104,7 @@ bool LifeCycle::StartComponents() {
 
   media_manager_ = media_manager::MediaManagerImpl::instance();
 
+  connection_handler_->SetProtocolHandler(protocol_handler_);
   protocol_handler_->set_session_observer(connection_handler_);
   protocol_handler_->AddProtocolObserver(media_manager_);
   protocol_handler_->AddProtocolObserver(app_manager_);
@@ -114,14 +113,19 @@ bool LifeCycle::StartComponents() {
   connection_handler_->set_transport_manager(transport_manager_);
   connection_handler_->set_connection_handler_observer(app_manager_);
 
+  // it is important to initialise TimeTester before TM to listen TM Adapters
+#ifdef TIME_TESTER
+  time_tester_ = new time_tester::TimeManager();
+  time_tester_->Init(protocol_handler_);
+#endif //TIME_TESTER
   // It's important to initialise TM after setting up listener chain
   // [TM -> CH -> AM], otherwise some events from TM could arrive at nowhere
   transport_manager_->Init();
-
+  //start transport manager
+  transport_manager_->Visibility(true);
   app_manager_->set_protocol_handler(protocol_handler_);
   app_manager_->set_connection_handler(connection_handler_);
   app_manager_->set_hmi_message_handler(hmi_handler_);
-
   return true;
 }
 
@@ -213,8 +217,6 @@ bool LifeCycle::InitMessageSystem() {
  * @return true if success otherwise false.
  */
 bool LifeCycle::InitMessageSystem() {
-  log4cxx::LoggerPtr logger = log4cxx::LoggerPtr(
-                                log4cxx::Logger::getLogger("appMain"));
 
   dbus_adapter_ = new hmi_message_handler::DBusMessageAdapter(
     hmi_message_handler::HMIMessageHandlerImpl::instance());
@@ -222,13 +224,13 @@ bool LifeCycle::InitMessageSystem() {
   hmi_message_handler::HMIMessageHandlerImpl::instance()->AddHMIMessageAdapter(
     dbus_adapter_);
   if (!dbus_adapter_->Init()) {
-    LOG4CXX_INFO(logger, "Cannot init DBus service!");
+    LOG4CXX_INFO(logger_, "Cannot init DBus service!");
     return false;
   }
 
   dbus_adapter_->SubscribeTo();
 
-  LOG4CXX_INFO(logger, "Start DBusMessageAdapter thread!");
+  LOG4CXX_INFO(logger_, "Start DBusMessageAdapter thread!");
   dbus_adapter_thread_ = new System::Thread(
     new System::ThreadArgImpl<hmi_message_handler::DBusMessageAdapter>(
       *dbus_adapter_,
@@ -251,6 +253,13 @@ bool LifeCycle::InitMessageSystem() {
 #endif  // MQUEUE_HMIADAPTER
 
 void LifeCycle::StopComponents() {
+#ifdef TIME_TESTER
+  if (time_tester_) {
+    time_tester_->Stop();
+    delete time_tester_;
+    time_tester_ = NULL;
+  }
+#endif //TIME_TESTER
   hmi_handler_->set_message_observer(NULL);
   connection_handler_->set_connection_handler_observer(NULL);
   protocol_handler_->RemoveProtocolObserver(app_manager_);
@@ -296,11 +305,11 @@ void LifeCycle::StopComponents() {
   if (mb_adapter_) {
     mb_adapter_->unregisterController();
     mb_adapter_->Close();
+    mb_adapter_->exitReceavingThread();
     delete mb_adapter_;
   }
   if (mb_adapter_thread_) {
     mb_adapter_thread_->Stop();
-    mb_adapter_thread_->Join();
     delete mb_adapter_thread_;
   }
 
@@ -330,6 +339,15 @@ void LifeCycle::StopComponents() {
 
   LOG4CXX_INFO(logger_, "Destroying Last State");
   resumption::LastState::destroy();
+
+#ifdef TIME_TESTER
+  // It's important to delete tester Obcervers after TM adapters destruction
+  if (time_tester_) {
+    time_tester_->Stop();
+    delete time_tester_;
+    time_tester_ = NULL;
+  }
+#endif //TIME_TESTER
 }
 
 void LifeCycle::StopComponentsOnSignal(int32_t params) {
index 095bc93..1d90dc3 100644 (file)
@@ -52,7 +52,9 @@
 #include "transport_manager/transport_manager_default.h"
 #include "media_manager/media_manager_impl.h"
 #include "utils/singleton.h"
-
+#ifdef TIME_TESTER
+#include "time_tester/time_manager.h"
+#endif
 #ifdef MESSAGEBROKER_HMIADAPTER
 #  include "CMessageBroker.hpp"
 #  include "mb_tcpserver.hpp"
@@ -60,6 +62,7 @@
 #endif  // MESSAGEBROKER_HMIADAPTER
 #include "system.h"      // cpplint: Include the directory when naming .h files
 
+
 namespace main_namespace {
 class LifeCycle : public utils::Singleton<LifeCycle> {
   public:
@@ -79,6 +82,9 @@ class LifeCycle : public utils::Singleton<LifeCycle> {
     protocol_handler::ProtocolHandlerImpl* protocol_handler_;
     connection_handler::ConnectionHandlerImpl* connection_handler_;
     application_manager::ApplicationManagerImpl* app_manager_;
+#ifdef TIME_TESTER
+    time_tester::TimeManager* time_tester_;
+#endif //TIME_TESTER
     hmi_message_handler::HMIMessageHandlerImpl* hmi_handler_;
 #ifdef DBUS_HMIADAPTER
     hmi_message_handler::DBusMessageAdapter* dbus_adapter_;
@@ -100,10 +106,6 @@ class LifeCycle : public utils::Singleton<LifeCycle> {
     System::Thread* dbus_adapter_thread_;
 #endif  // DBUS_HMIADAPTER
 
-#   ifdef ENABLE_LOG
-    static log4cxx::LoggerPtr logger_;
-#   endif // ENABLE_LOG
-
     DISALLOW_COPY_AND_ASSIGN(LifeCycle);
 
     FRIEND_BASE_SINGLETON_CLASS(LifeCycle);
index 429a803..514454f 100644 (file)
@@ -61,6 +61,7 @@
 
 // ----------------------------------------------------------------------------
 
+CREATE_LOGGERPTR_GLOBAL(logger, "appMain")
 namespace {
 
 const char kBrowser[] = "/usr/bin/chromium-browser";
@@ -71,30 +72,26 @@ const char kApplicationVersion[] = "Develop";
 
 #ifdef __QNX__
 bool Execute(std::string command, const char * const *) {
-  log4cxx::LoggerPtr logger = log4cxx::LoggerPtr(
-      log4cxx::Logger::getLogger("appMain"));
   if (system(command.c_str()) == -1) {
-    LOG4CXX_INFO(logger, "Can't start HMI!");
+    LOG4CXX_FATAL(logger, "Can't start HMI!");
     return false;
   }
   return true;
 }
 #else
 bool Execute(std::string file, const char * const * argv) {
-  log4cxx::LoggerPtr logger = log4cxx::LoggerPtr(
-      log4cxx::Logger::getLogger("appMain"));
   // Create a child process.
   pid_t pid_hmi = fork();
 
   switch (pid_hmi) {
     case -1: {  // Error
-      LOG4CXX_INFO(logger, "fork() failed!");
+      LOG4CXX_FATAL(logger, "fork() failed!");
       return false;
     }
     case 0: {  // Child process
       int32_t fd_dev0 = open("/dev/null", O_RDWR, S_IWRITE);
       if (0 > fd_dev0) {
-        LOG4CXX_WARN(logger, "Open dev0 failed!");
+        LOG4CXX_FATAL(logger, "Open dev0 failed!");
         return false;
       }
       // close input/output file descriptors.
@@ -129,12 +126,10 @@ bool Execute(std::string file, const char * const * argv) {
  * @return true if success otherwise false.
  */
 bool InitHmi() {
-log4cxx::LoggerPtr logger = log4cxx::LoggerPtr(
-                              log4cxx::Logger::getLogger("appMain"));
 
 struct stat sb;
 if (stat("hmi_link", &sb) == -1) {
-  LOG4CXX_INFO(logger, "File with HMI link doesn't exist!");
+  LOG4CXX_FATAL(logger, "File with HMI link doesn't exist!");
   return false;
 }
 
@@ -142,7 +137,7 @@ std::ifstream file_str;
 file_str.open("hmi_link");
 
 if (!file_str.is_open()) {
-  LOG4CXX_INFO(logger, "File with HMI link was not opened!");
+  LOG4CXX_FATAL(logger, "File with HMI link was not opened!");
   return false;
 }
 
@@ -159,7 +154,7 @@ LOG4CXX_INFO(logger,
 file_str.close();
 
 if (stat(hmi_link.c_str(), &sb) == -1) {
-  LOG4CXX_INFO(logger, "HMI index.html doesn't exist!");
+  LOG4CXX_FATAL(logger, "HMI index.html doesn't exist!");
   return false;
 }
 
@@ -177,12 +172,10 @@ if (stat(hmi_link.c_str(), &sb) == -1) {
  * @return true if success otherwise false.
  */
 bool InitHmi() {
-  log4cxx::LoggerPtr logger = log4cxx::LoggerPtr(
-      log4cxx::Logger::getLogger("appMain"));
   std::string kStartHmi = "./start_hmi.sh";
   struct stat sb;
   if (stat(kStartHmi.c_str(), &sb) == -1) {
-    LOG4CXX_INFO(logger, "HMI start script doesn't exist!");
+    LOG4CXX_FATAL(logger, "HMI start script doesn't exist!");
     return false;
   }
 
@@ -202,10 +195,7 @@ int32_t main(int32_t argc, char** argv) {
 
   // --------------------------------------------------------------------------
   // Logger initialization
-
-  log4cxx::LoggerPtr logger = log4cxx::LoggerPtr(
-                                log4cxx::Logger::getLogger("appMain"));
-  log4cxx::PropertyConfigurator::configure("log4cxx.properties");
+  INIT_LOGGER("log4cxx.properties");
 
   threads::Thread::SetNameForId(threads::Thread::CurrentId(), "MainThread");
 
@@ -232,8 +222,7 @@ int32_t main(int32_t argc, char** argv) {
 
   if (!main_namespace::LifeCycle::instance()->InitMessageSystem()) {
     main_namespace::LifeCycle::instance()->StopComponents();
-// without this line log4cxx threads continue using some instances destroyed by exit()
-    log4cxx::Logger::getRootLogger()->closeNestedAppenders();
+    DEINIT_LOGGER();
     exit(EXIT_FAILURE);
   }
   LOG4CXX_INFO(logger, "InitMessageBroker successful");
@@ -246,8 +235,7 @@ int32_t main(int32_t argc, char** argv) {
 #ifndef NO_HMI
       if (!InitHmi()) {
         main_namespace::LifeCycle::instance()->StopComponents();
-// without this line log4cxx threads continue using some instances destroyed by exit()
-        log4cxx::Logger::getRootLogger()->closeNestedAppenders();
+        DEINIT_LOGGER();
         exit(EXIT_FAILURE);
       }
       LOG4CXX_INFO(logger, "InitHmi successful");
diff --git a/src/appMain/policy.ini b/src/appMain/policy.ini
new file mode 100644 (file)
index 0000000..e22a07e
--- /dev/null
@@ -0,0 +1,4 @@
+# This config file for QDB
+# Format see in manual of QNX
+[policy]
+Filename=policy.sqlite
\ No newline at end of file
diff --git a/src/appMain/qdbserver.sh b/src/appMain/qdbserver.sh
new file mode 100755 (executable)
index 0000000..40ecbea
--- /dev/null
@@ -0,0 +1,6 @@
+# This script star QDB server for SDL
+# Need superuser to start qdb
+
+LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/qnx650/target/qnx6/x86/usr/lib
+export LD_LIBRARY_PATH
+/usr/sbin/qdb -c policy.ini
index b282bde..275d5e2 100644 (file)
-{\r
-  "policy_table": {\r
-    "module_config": {\r
-      "preloaded_pt": true,\r
-      "vehicle_make": "",\r
-      "vehicle_model": "",\r
-      "vehicle_year": "",\r
-      "exchange_after_x_ignition_cycles": 100,\r
-      "exchange_after_x_kilometers": 1800,\r
-      "exchange_after_x_days": 30,\r
-      "timeout_after_x_seconds": 60,\r
-      "seconds_between_retries": [\r
-        1,\r
-        5,\r
-        25,\r
-        125,\r
-        625\r
-      ],\r
-      "endpoints": {\r
-        "0x07": {\r
-          "default": [\r
-            "http://policies.telematics.ford.com/api/policies"\r
-          ]\r
-        }\r
-      },\r
-      "notifications_per_minute_by_priority": {\r
-        "EMERGENCY": 60,\r
-        "NAVIGATION": 15,\r
-        "COMMUNICATION": 6,\r
-        "NORMAL": 4,\r
-        "NONE": 0\r
-      }\r
-    },\r
-    "functional_groupings": {\r
-       "pre_Base-1": {\r
-                   "rpcs": {\r
-                     "ChangeRegistration": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     },\r
-                     "DeleteFile": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     },\r
-                     "GenericResponse": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED"\r
-                       ]\r
-                     },\r
-                     "ListFiles": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     },\r
-                     "OnAppInterfaceUnregistered": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     },\r
-                     "OnLanguageChange": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     },\r
-                     "OnPermissionsChange": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     },\r
-                     "PutFile": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     },\r
-                     "RegisterAppInterface": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     },\r
-                     "ResetGlobalProperties": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED"\r
-                       ]\r
-                     },\r
-                     "SetAppIcon": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     },\r
-                     "SetDisplayLayout": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     },\r
-                     "SetGlobalProperties": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED"\r
-                       ]\r
-                     },\r
-                     "UnregisterAppInterface": {\r
-                       "hmi_levels": [\r
-                         "BACKGROUND",\r
-                         "FULL",\r
-                         "LIMITED",\r
-                         "NONE"\r
-                       ]\r
-                     }\r
-                   }\r
-               },\r
-      "Base-4": {\r
-        "rpcs": {\r
-         "OnSystemRequest": {\r
-              "hmi_levels": [\r
-              "FULL",\r
-              "LIMITED",\r
-              "BACKGROUND",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "AddCommand": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "AddSubMenu": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "Alert": {\r
-            "hmi_levels": [\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "ChangeRegistration": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "CreateInteractionChoiceSet": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "DeleteCommand": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "DeleteFile": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "DeleteInteractionChoiceSet": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "DeleteSubMenu": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "EncodedSyncPData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "EndAudioPassThru": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "GenericResponse": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "ListFiles": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "OnAppInterfaceUnregistered": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "OnAudioPassThru": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "OnButtonEvent": {\r
-            "hmi_levels": [\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "OnButtonPress": {\r
-            "hmi_levels": [\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "OnCommand": {\r
-            "hmi_levels": [\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "OnDriverDistraction": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "OnEncodedSyncPData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "OnHMIStatus": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "OnLanguageChange": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "OnPermissionsChange": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "OnSyncPData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "OnTBTClientState": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "PerformAudioPassThru": {\r
-            "hmi_levels": [\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "PerformInteraction": {\r
-            "hmi_levels": [\r
-              "FULL",\r
-        "LIMITED"\r
-            ]\r
-          },\r
-          "PutFile": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "RegisterAppInterface": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "ResetGlobalProperties": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "ScrollableMessage": {\r
-            "hmi_levels": [\r
-              "FULL"\r
-            ]\r
-          },\r
-          "SetAppIcon": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "SetDisplayLayout": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "SetGlobalProperties": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "SetMediaClockTimer": {\r
-            "hmi_levels": [\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "Show": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "Slider": {\r
-            "hmi_levels": [\r
-              "FULL"\r
-            ]\r
-          },\r
-          "Speak": {\r
-            "hmi_levels": [\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "SubscribeButton": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "SyncPData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "UnregisterAppInterface": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED",\r
-              "NONE"\r
-            ]\r
-          },\r
-          "UnsubscribeButton": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          }\r
-        }\r
-      },\r
-      "DrivingCharacteristics-3": {\r
-        "user_consent_prompt": "DrivingCharacteristics",\r
-        "rpcs": {\r
-          "GetVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "accPedalPosition",\r
-              "beltStatus",\r
-              "driverBraking",\r
-              "myKey",\r
-              "prndl",\r
-              "rpm",\r
-              "steeringWheelAngle"\r
-            ]\r
-          },\r
-          "OnVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "accPedalPosition",\r
-              "beltStatus",\r
-              "driverBraking",\r
-              "myKey",\r
-              "prndl",\r
-              "rpm",\r
-              "steeringWheelAngle"\r
-            ]\r
-          },\r
-          "SubscribeVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "accPedalPosition",\r
-              "beltStatus",\r
-              "driverBraking",\r
-              "myKey",\r
-              "prndl",\r
-              "rpm",\r
-              "steeringWheelAngle"\r
-            ]\r
-          },\r
-          "UnsubscribeVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "accPedalPosition",\r
-              "beltStatus",\r
-              "driverBraking",\r
-              "myKey",\r
-              "prndl",\r
-              "rpm",\r
-              "steeringWheelAngle"\r
-            ]\r
-          }\r
-        }\r
-      },\r
-      "Notifications": {\r
-        "user_consent_prompt": "Notifications",\r
-        "rpcs": {\r
-          "Alert": {\r
-            "hmi_levels": [\r
-              "BACKGROUND"\r
-            ]\r
-          }\r
-        }\r
-      },\r
-      "VehicleInfo-3": {\r
-        "user_consent_prompt": "VehicleInfo",\r
-        "rpcs": {\r
-          "GetVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "OnVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "SubscribeVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "UnsubscribeVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          }\r
-        }\r
-      },\r
-      "Location-1": {\r
-        "user_consent_prompt": "Location",\r
-        "rpcs": {\r
-          "GetVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "gps",\r
-              "speed"\r
-            ]\r
-          },\r
-          "OnVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "gps",\r
-              "speed"\r
-            ]\r
-          },\r
-          "SubscribeVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "gps",\r
-              "speed"\r
-            ]\r
-          },\r
-          "UnsubscribeVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "gps",\r
-              "speed"\r
-            ]\r
-          }\r
-        }\r
-      },\r
-      "PropriataryData-1": {\r
-        "rpcs": {\r
-          "DiagnosticMessage": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "GetDTCs": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "ReadDID": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          }\r
-        }\r
-      },\r
-      "Emergency-1": {\r
-        "rpcs": {\r
-          "GetVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "airbagStatus",\r
-              "bodyInformation",\r
-              "clusterModeStatus",\r
-              "deviceStatus",\r
-              "eCallInfo",\r
-              "emergencyEvent"\r
-            ]\r
-          },\r
-          "OnVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "airbagStatus",\r
-              "bodyInformation",\r
-              "clusterModeStatus",\r
-              "deviceStatus",\r
-              "eCallInfo",\r
-              "emergencyEvent"\r
-            ]\r
-          },\r
-          "SubscribeVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "airbagStatus",\r
-              "bodyInformation",\r
-              "clusterModeStatus",\r
-              "deviceStatus",\r
-              "eCallInfo",\r
-              "emergencyEvent"\r
-            ]\r
-          },\r
-          "UnsubscribeVehicleData": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ],\r
-            "parameters": [\r
-              "airbagStatus",\r
-              "bodyInformation",\r
-              "clusterModeStatus",\r
-              "deviceStatus",\r
-              "eCallInfo",\r
-              "emergencyEvent"\r
-            ]\r
-          }\r
-        }\r
-      },\r
-      "Navigation-1": {\r
-        "rpcs": {\r
-          "AlertManeuver": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "ShowConstantTBT": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          },\r
-          "UpdateTurnList": {\r
-            "hmi_levels": [\r
-              "BACKGROUND",\r
-              "FULL",\r
-              "LIMITED"\r
-            ]\r
-          }\r
-        }\r
-      },\r
-      "DataConsent-2": {\r
-        "user_consent_prompt": "DataConsent",\r
-        "rpcs": null\r
-      }\r
-    },\r
-    "consumer_friendly_messages": {\r
-      "version": "001.001.015",\r
-      "messages": {\r
-        "AppPermissions": {\r
-          "languages": {\r
-            "de-de": {\r
-              "tts": "%appName% benötigt die folgenden Fahrzeuginformationen und Zugriffsberechtigungen: %functionalGroupLabels%. Wenn Sie Ja drücken, erklären Sie sich damit einverstanden, dass %vehicleMake% nicht für Schäden oder Verletzungen der Privatsphäre haftet, die im Zusammenhang mit der Nutzung Ihrer Benutzerdaten durch %appName% entstehen. Mit Ja stimmen Sie zu; mit Nein lehnen Sie ab.",\r
-              "line1": "Zugriffsanfrage(n)",\r
-              "line2": "erlauben?"\r
-            },\r
-            "en-au": {\r
-              "tts": "%appName% is requesting the use of the following vehicle information and permissions: %functionalGroupLabels%. If you press Yes, you agree that %vehicleMake% will not be liable for any damages or loss of privacy related to %appName%'s use of your data. Please press Yes to allow or No to deny.",\r
-              "line1": "Grant requested",\r
-              "line2": "permission(s)?"\r
-            },\r
-            "en-gb": {\r
-              "tts": "%appName% is requesting the use of the following vehicle information and permissions: %functionalGroupLabels%. If you press Yes, you agree that %vehicleMake% will not be liable for any damages or loss of privacy related to %appName%'s use of your data. Please press Yes to allow or No to deny.",\r
-              "line1": "Grant requested",\r
-              "line2": "permission(s)?"\r
-            },\r
-            "en-ie": {\r
-              "tts": "%appName% is requesting the use of the following vehicle information and permissions: %functionalGroupLabels%. If you press Yes, you agree that %vehicleMake% will not be liable for any damages or loss of privacy related to %appName%'s use of your data. Please press Yes to allow or No to deny.",\r
-              "line1": "Grant requested",\r
-              "line2": "permission(s)?"\r
-            },\r
-            "en-us": {\r
-              "tts": "%appName% is requesting the use of the following vehicle information and permissions: %functionalGroupLabels%. If you press yes, you agree that %vehicleMake% will not be liable for any damages or loss of privacy related to %appName%'s use of your data. Please press yes to allow or no to deny.",\r
-              "line1": "Grant Requested",\r
-              "line2": "Permission(s)?"\r
-            },\r
-            "es-en": {\r
-              "tts": "%appName% solicita el uso de la siguiente información y permisos del vehículo: %functionalGroupLabels%. Si presiona Sí, acepta que %vehicleMake% no se hará responsable por los daños o pérdidas de privacidad relacionados con el uso que %appName% haga de sus datos. Presione Sí para permitir y No para denegar.",\r
-              "line1": "¿Otorgar permiso(s)",\r
-              "line2": "solicitado(s)?"\r
-            },\r
-            "es-es": {\r
-              "tts": "%appName% está solicitando el uso de los siguientes permisos e información del vehículo: %functionalGroupLabels%. Si pulsa sí, acepta que %vehicleMake% no será responsable de los daños o la pérdida de privacidad relacionados con el uso de sus datos por parte de %appName%. Pulse sí para permitir o no para denegar.",\r
-              "line1": "¿Conceder permisos",\r
-              "line2": "solicitados?"\r
-            },\r
-            "es-mx": {\r
-              "tts": "%appName% solicita el uso de la siguiente información y permisos del vehículo: %functionalGroupLabels%. Si presiona Sí, acepta que %vehicleMake% no se hará responsable por los daños o pérdidas de privacidad relacionados con el uso que %appName% haga de sus datos. Presione Sí para permitir y No para denegar.",\r
-              "line1": "¿Otorgar permiso(s)",\r
-              "line2": "solicitado(s)?"\r
-            },\r
-            "fr-ca": {\r
-              "tts": "%appName% demande d’utiliser les informations du véhicule et les permissions suivantes : %functionalGroupLabels%. Si vous appuyez sur Oui, vous acceptez que %vehicleMake% ne sera pas responsable des dommages ou des pertes de confidentialité reliées à l’utilisation de vos données par %appName%. Veuillez appuyer sur Oui pour autoriser ou sur Non pour refuser.",\r
-              "line1": "Accorder permission(s)",\r
-              "line2": "demandée(s)"\r
-            },\r
-            "fr-fr": {\r
-              "tts": "%appName% demande d’utiliser les informations du véhicule et les permissions suivantes : %functionalGroupLabels%. Si vous appuyez sur Oui, vous acceptez que %vehicleMake% ne sera pas responsable des dommages ou des pertes de confidentialité reliées à l’utilisation de vos données par %appName%. Veuillez appuyer sur Oui pour autoriser ou sur Non pour refuser.",\r
-              "line1": "Accorder permission(s)",\r
-              "line2": "demandée(s)"\r
-            },\r
-            "it-it": {\r
-              "tts": "%appName% richiede l'uso delle seguenti informazioni e autorizzazioni sul veicolo: %functionalGroupLabels%. Se si preme Sì, si acconsente che %vehicleMake% non sarà responsabile per danni o perdita di privacy in relazione all'impiego dei dati da parte di %appName%. Premere Sì per consentire e No per negare.",\r
-              "line1": "Concedi autorizzaz.",\r
-              "line2": "richiesta(e)?"\r
-            },\r
-            "nl-nl": {\r
-              "tts": "%appName% vraagt gebruikmaking van de volgende voertuiginformatie en toestemmingen aan: %functionalGroupLabels%. Als u op Ja drukt, gaat u ermee akkoord dat %vehicleMake% in geen geval aansprakelijk gesteld kan worden voor schade of verlies van privacy als gevolg van het feit dat %appName% gebruik maakt van uw gegevens. Druk op Ja om dit toe te staan of Nee om te weigeren.",\r
-              "line1": "Aangevraagde",\r
-              "line2": "permissie(s) verlenen?"\r
-            },\r
-            "pl-pl": {\r
-              "tts": "%appName% wymaga następujących informacji o pojeździe oraz pozwoleń: %functionalGroupLabels%. Naciśnięcie TAK oznacza zgodę na fakt, iż %vehicleMake% nie będzie ponosić odpowiedzialności za szkody ani utratę prywatności w związku z wykorzystaniem przez %appName% danych, należących do użytkownika. Naciśnij TAK w celu udzielenia zgody lub NIE w celu odrzucenia żądania.",\r
-              "line1": "Udzielić żądanych",\r
-              "line2": "pozwoleń?"\r
-            },\r
-            "pt-br": {\r
-              "tts": "%appName% está solicitando o uso das seguintes informações e permissões do veículo: %functionalGroupLabels%. Se pressionar sim, você concorda que a %vehicleMake% não será responsável por danos ou perdas de privacidade relacionados ao uso dos seus dados por %appName%. Pressione sim para permitir ou não para negar.",\r
-              "line1": "Conceder permissão",\r
-              "line2": "solicitada?"\r
-            },\r
-            "pt-pt": {\r
-              "tts": "%appName% está a solicitar a utilização das seguintes informações e permissões do veículo: %functionalGroupLabels%. Se premir “Sim”, concorda que %vehicleMake% não será responsável por quaisquer danos ou perda de privacidade relacionada com a utilização dos seus dados por parte de %appName%. Prima “Sim” para permitir ou “Não” para recusar.",\r
-              "line1": "Conceder permiss.",\r
-              "line2": "solicitada(s)?"\r
-            },\r
-            "ru-ru": {\r
-              "tts": "%appName% запрашивает следующую информацию об автомобиле и разрешения: %functionalGroupLabels%. Нажатием \"\"да\"\", Вы соглашаетесь, что %vehicleMake% не будет нести ответственность за какие-либо убытки или потерю прайвеси, связанные с использованием Ваших данных компанией %appName%. Нажмите \"\"Да\"\", если Вы согласны, или \"\"Нет\"\" - если не согласны.",\r
-              "line1": "Предост. заправш.",\r
-              "line2": "разрешения?"\r
-            },\r
-            "sv-se": {\r
-              "tts": "%appName% begär att få tillgång till följande fordonsinformation och tillstånd: %functionalGroupLabels%. Om du trycker Ja godkänner du att %vehicleMake% ska hållas skadeslös för alla skador som kan uppstå eller eventuella integritetsintrång som uppstår när %appName% använder dina data. Tryck Ja för att godkänna eller Nej för att neka.",\r
-              "line1": "Vill du ge",\r
-              "line2": "tillstånd?"\r
-            },\r
-            "tr-tr": {\r
-              "tts": "%appName%, şu araç bilgilerini ve izinleri kullanma isteğinde bulunuyor: %functionalGroupLabels%. Evet'e basarsanız, %appName%'in verilerinizi kullanması sonucunda oluşabilecek hasarlardan veya gizlilik kaybından %vehicleMake%'in sorumlu olmayacağını kabul etmiş olacaksınız. Lütfen kabul etmek için Evet'e veya reddetmek için Hayır'a basın.",\r
-              "line1": "İstenen izinler",\r
-              "line2": "verilsin mi?"\r
-            },\r
-            "zh-cn": {\r
-              "tts": "%appName% 正在请求使用下列车辆信息和权限: %functionalGroupLabels%。如果您按“是”,则表示您同意。 %vehicleMake% 将不会对因 %appName% 使用您的数据而引起的任何损毁或隐私损失负责。 请按“是”允许或按“否”拒绝。",\r
-              "line1": "是否允许请求的",\r
-              "line2": "权限?"\r
-            },\r
-            "zh-tw": {\r
-              "tts": "%appName% 正請求使用 %functionalGroupLabels% 的車輛資訊和許可。按「是」,表示您同意,如因 %appName% 使用您的資料導致任何損害或損失,%vehicleMake% 將不負賠償責任。同意請按「是」,拒絕請按「否」。",\r
-              "line1": "允許",\r
-              "line2": "授權請求?"\r
-            }\r
-          }\r
-        },\r
-        "AppPermissionsHelp": {\r
-          "languages": {\r
-            "de-de": {\r
-              "tts": "%appName% fordert folgende Fahrzeuginformationen und Zugriffsberechtigungen: %functionalGroupLabels%. Im Einstellungsmenü der mobilen Apps können Sie diese Berechtigungen ändern und sich detaillierte Beschreibungen anhören. Mit Ja stimmen Sie zu; mit Nein lehnen Sie ab."\r
-            },\r
-            "en-au": {\r
-              "tts": "%appName% is requesting the following vehicle information and permissions: %functionalGroupLabels%. You can change these permissions and hear detailed descriptions in the mobile apps settings menu. Please press Yes to grant permissions or No to deny."\r
-            },\r
-            "en-gb": {\r
-              "tts": "%appName% is requesting the following vehicle information and permissions: %functionalGroupLabels%. You can change these permissions and hear detailed descriptions in the mobile apps settings menu. Please press Yes to grant permissions or No to deny."\r
-            },\r
-            "en-ie": {\r
-              "tts": "%appName% is requesting the following vehicle information and permissions: %functionalGroupLabels%. You can change these permissions and hear detailed descriptions in the mobile apps settings menu. Please press Yes to grant permissions or No to deny."\r
-            },\r
-            "en-us": {\r
-              "tts": "%appName% is requesting the following vehicle information and permissions: %functionalGroupLabels%. You can change these permissions and hear detailed descriptions in the mobile apps settings menu. Please press yes to grant permissions or no to deny."\r
-            },\r
-            "es-en": {\r
-              "tts": "%appName% solicita la siguiente información y permisos del vehículo: %functionalGroupLabels%. Puede cambiar estos permisos y consultar descripciones detalladas en el menú de configuración de las aplicaciones móviles. Presione Sí para otorgar permisos y No para denegar."\r
-            },\r
-            "es-es": {\r
-              "tts": "%appName% está solicitando los siguientes permisos e información del vehículo: %functionalGroupLabels%. Puede cambiar estos permisos y escuchar descripciones detalladas en el menú de configuración de la aplicación móvil. Pulse sí para conceder el permiso o no para denegarlo."\r
-            },\r
-            "es-mx": {\r
-              "tts": "%appName% solicita la siguiente información y permisos del vehículo: %functionalGroupLabels%. Puede cambiar estos permisos y consultar descripciones detalladas en el menú de configuración de las aplicaciones móviles. Presione Sí para otorgar permisos y No para denegar."\r
-            },\r
-            "fr-ca": {\r
-              "tts": "%appName% demande d’utiliser les informations du véhicule et les permissions suivantes : %functionalGroupLabels%. Vous pouvez modifier ces permissions et entendre les descriptions détaillées dans le menu des réglages des applications mobiles. Veuillez appuyer sur Oui pour accorder les permissions ou sur Non pour refuser."\r
-            },\r
-            "fr-fr": {\r
-              "tts": "%appName% demande d’utiliser les informations du véhicule et les permissions suivantes : %functionalGroupLabels%. Vous pouvez modifier ces permissions et entendre les descriptions détaillées dans le menu des réglages des applications mobiles. Veuillez appuyer sur Oui pour accorder les permissions ou sur Non pour refuser."\r
-            },\r
-            "it-it": {\r
-              "tts": "%appName% richiede le seguenti informazioni e autorizzazioni riguardo il veicolo: %functionalGroupLabels%. È possibile modificare tali autorizzazioni e ascoltare descrizioni dettagliate nel menu impostazioni delle app mobili. Premere Sì per concedere le autorizzazioni e No per negarle."\r
-            },\r
-            "nl-nl": {\r
-              "tts": "%appName% vraagt gebruikmaking van de volgende voertuiginformatie en toestemmingen aan: %functionalGroupLabels%. U kunt deze toestemmingen wijzigen en gedetailleerde beschrijvingen beluisteren in het instellingenmenu voor mobiele apps. Druk op Ja om permissies te verlenen of op Nee om te weigeren."\r
-            },\r
-            "pl-pl": {\r
-              "tts": "%appName% wymaga następujących informacji o pojeździe oraz zezwoleń: %functionalGroupLabels%. W menu ustawień aplikacji mobilnych można zmienić owe zezwolenia i usłyszeć ich szczegółowy opis. Naciśnij TAK, aby wyrazić zgodę lub NIE w celu odrzucenia żądania."\r
-            },\r
-            "pt-br": {\r
-              "tts": "%appName% está solicitando as seguintes informações e permissões do veículo: %functionalGroupLabels%. Você pode alterar estas permissões e ouvir descrições detalhadas no menu de configurações de aplicativos móveis. Pressione sim para conceder as permissões ou não para negar."\r
-            },\r
-            "pt-pt": {\r
-              "tts": "%appName% está a solicitar as seguintes informações e permissões do veículo: %functionalGroupLabels%. Pode alterar estas permissões e ouvir descrições detalhadas no menu de definições das aplicações móveis. Prima \"\"Sim\"\" para permitir ou \"\"Não\"\" para recusar."\r
-            },\r
-            "ru-ru": {\r
-              "tts": "%appName% запрашивает следующую информацию об автомобиле и разрешения: %functionalGroupLabels%. Вы можете изменить эти разрешения и прослушать подробные их описания в меню настроек мобильного приложения. Нажмите \"\"да\"\", чтобы предоставить разрешения, или \"\"нет\"\", чтобы не предоставлять."\r
-            },\r
-            "sv-se": {\r
-              "tts": "%appName% begär tillgång till följande fordonsinformation och tillstånd: %functionalGroupLabels%. Du kan ändra tillstånden och höra detaljerade beskrivningar i menyn för mobilappsinställningar. Tryck Ja för att ge tillstånd eller Nej för att neka."\r
-            },\r
-            "tr-tr": {\r
-              "tts": "%appName%, şu araç bilgilerini ve izinleri istiyor: %functionalGroupLabels%. Bu izinleri değiştirebilir ve mobil uygulamalar ayarlar menüsünden ayrıntılı açıklamaları dinleyebilirsiniz. Lütfen izin vermek için Evet'e veya reddetmek için Hayır'a basın."\r
-            },\r
-            "zh-cn": {\r
-              "tts": "%appName% 正在请求下列车辆信息和权限: %functionalGroupLabels%。您可在移动应用程序设置菜单中更改这些权限,并听取详细说明。请按“是”允许权限或按“否”拒绝。"\r
-            },\r
-            "zh-tw": {\r
-              "tts": "%appName% 正請求使用 %functionalGroupLabels% 的車輛資訊和許可。您可在行動應用程式設定清單中更改這些許可,並聆聽詳細說明。給予許可請按「是」,拒絕請按「否」。"\r
-            }\r
-          }\r
-        },\r
-        "AppPermissionsRevoked": {\r
-          "languages": {\r
-            "de-de": {\r
-              "tts": "Die Autorisierungsdaten der App wurden geändert. %appName% hat keinen Zugriff auf %functionalGroupLabels% mehr. Installieren Sie die neueste Version der App auf Ihrem Gerät.."\r
-            },\r
-            "en-au": {\r
-              "tts": "App authorizations have changed. %appName% can no longer access %functionalGroupLabels%. Please ensure you have the most recent app version installed on your mobile device."\r
-            },\r
-            "en-gb": {\r
-              "tts": "App authorizations have changed. %appName% can no longer access %functionalGroupLabels%. Please ensure you have the most recent app version installed on your mobile device."\r
-            },\r
-            "en-ie": {\r
-              "tts": "App authorizations have changed. %appName% can no longer access %functionalGroupLabels%. Please ensure you have the most recent app version installed on your mobile device."\r
-            },\r
-            "en-us": {\r
-              "tts": "App authorizations have changed. %appName% can no longer access %functionalGroupLabels%. Please ensure you have the most recent app version installed on your mobile device."\r
-            },\r
-            "es-en": {\r
-              "tts": "Las autorizaciones de la aplicación han cambiado. %appName% ya no puede acceder a %functionalGroupLabels%. Asegúrese de haber instalado la versión más reciente de la aplicación en su dispositivo móvil."\r
-            },\r
-            "es-es": {\r
-              "tts": "Las autorizaciones de la aplicación han cambiado. %appName% ya no puede acceder a %functionalGroupLabels%. Asegúrese de que tiene la versión más reciente de la aplicación instalada en su dispositivo móvil."\r
-            },\r
-            "es-mx": {\r
-              "tts": "Las autorizaciones de la aplicación han cambiado. %appName% ya no puede acceder a %functionalGroupLabels%. Asegúrese de haber instalado la versión más reciente de la aplicación en su dispositivo móvil."\r
-            },\r
-            "fr-ca": {\r
-              "tts": "Les autorisations pour app ont changé. %appName% ne peut plus accéder à %functionalGroupLabels%. Veuillez vous assurer que la plus récente version de l’application est installée sur votre appareil mobile."\r
-            },\r
-            "fr-fr": {\r
-              "tts": "Les autorisations pour app ont changé. %appName% ne peut plus accéder à %functionalGroupLabels%. Veuillez vous assurer que la plus récente version de l’application est installée sur votre appareil mobile."\r
-            },\r
-            "it-it": {\r
-              "tts": "Le autorizzazioni dell'app sono cambiate. %appName% non è più in grado di accedere a %functionalGroupLabels%. Assicurarsi di avere la versione più recente dell'app installata sul dispositivo mobile."\r
-            },\r
-            "nl-nl": {\r
-              "tts": "De app-autorisaties zijn gewijzigd. %appName% heeft geen toegang meer tot %functionalGroupLabels%. Zorg ervoor dat u de meest recente app-versie op uw mobiele apparaat geïnstalleerd hebt."\r
-            },\r
-            "pl-pl": {\r
-              "tts": "Dane dostępu aplikacji zostały zmienione. %appName% nie ma już dostępu do %functionalGroupLabels%. Sprawdź, czy na telefonie komórkowym zainstalowano najnowszą wersję aplikacji."\r
-            },\r
-            "pt-br": {\r
-              "tts": "As autorizações dos aplicativos foram alteradas. %appName% não pode mais acessar %functionalGroupLabels%. Certifique-se de que a versão mais recente do aplicativo está instalada no seu dispositivo móvel."\r
-            },\r
-            "pt-pt": {\r
-              "tts": "As autorizações das aplicações mudaram. %appName% já não consegue aceder a %functionalGroupLabels%. Certifique-se de que tem a última versão da aplicação no seu dispositivo móvel."\r
-            },\r
-            "ru-ru": {\r
-              "tts": "Авторизации приложения изменены. %appName% больше не имеет доступа к %functionalGroupLabels%. Убедитесь, что на вашем мобильном устройстве установлена самая новая версия приложения."\r
-            },\r
-            "sv-se": {\r
-              "tts": "Appens behörigheter har ändrats. %appName% har inte längre åtkomst till %functionalGroupLabels%. Kontrollera att du har installerat den senaste versionen av appen på mobilenheten."\r
-            },\r
-            "tr-tr": {\r
-              "tts": "Uygulama yetkileri değişti. %appName% artık %functionalGroupLabels%'e erişemeyecek. Lütfen mobil aygıtınızda en son uygulama sürümünün yüklü olduğundan emin olun."\r
-            },\r
-            "zh-cn": {\r
-              "tts": "应用程序授权已变更。 %appName% 将不能再访问 %functionalGroupLabels%。 请确认您的移动设备上安装的应用程序是最新版本。"\r
-            },\r
-            "zh-tw": {\r
-              "tts": "應用程式授權已改變。%appName% 已無法進入 %functionalGroupLabels%。請確認您的行動裝置上安裝了最新版應用程式。"\r
-            }\r
-          }\r
-        },\r
-        "AppUnauthorized": {\r
-          "languages": {\r
-            "de-de": {\r
-              "tts": "Diese Version von %appName% ist nicht autorisiert und wird nicht mit SYNC funktionieren.",\r
-              "line1": "nicht autorisiert"\r
-            },\r
-            "en-au": {\r
-              "tts": "This version of %appName% is not authorized and will not work with SYNC.",\r
-              "line1": "not authorized"\r
-            },\r
-            "en-gb": {\r
-              "tts": "This version of %appName% is not authorized and will not work with SYNC.",\r
-              "line1": "not authorized"\r
-            },\r
-            "en-ie": {\r
-              "tts": "This version of %appName% is not authorized and will not work with SYNC.",\r
-              "line1": "not authorized"\r
-            },\r
-            "en-us": {\r
-              "tts": "This version of %appName% is not authorized and will not work with SYNC.",\r
-              "line1": "Not Authorized"\r
-            },\r
-            "es-en": {\r
-              "tts": "Esta versión de %appName% no tiene autorización y no funcionará con SYNC.",\r
-              "line1": "no autorizada"\r
-            },\r
-            "es-es": {\r
-              "tts": "Esta versión de %appName% no está autorizada y no funcionará con SYNC.",\r
-              "line1": "No autorizada"\r
-            },\r
-            "es-mx": {\r
-              "tts": "Esta versión de %appName% no tiene autorización y no funcionará con SYNC.",\r
-              "line1": "no autorizada"\r
-            },\r
-            "fr-ca": {\r
-              "tts": "Cette version de %appName% n’est pas autorisée et ne fonctionnera pas avec SYNC.",\r
-              "line1": "non autorisée"\r
-            },\r
-            "fr-fr": {\r
-              "tts": "Cette version de %appName% n’est pas autorisée et ne fonctionnera pas avec SYNC.",\r
-              "line1": "non autorisée"\r
-            },\r
-            "it-it": {\r
-              "tts": "Questa versione di %appName% non è autorizzata e non funziona con il SYNC.",\r
-              "line1": "non autorizzata"\r
-            },\r
-            "nl-nl": {\r
-              "tts": "Deze versie van %appName% is niet geautoriseerd en werkt niet met SYNC.",\r
-              "line1": "niet geautoriseerd"\r
-            },\r
-            "pl-pl": {\r
-              "tts": "Niniejsza wersja %appName% nie posiada autoryzacji i nie będzie działać z SYNC.",\r
-              "line1": "brak autoryzacji"\r
-            },\r
-            "pt-br": {\r
-              "tts": "Esta versão do %appName% não tem autorização e não funcionará com o SYNC.",\r
-              "line1": "não autorizado"\r
-            },\r
-            "pt-pt": {\r
-              "tts": "Esta versão de %appName% não está autorizada e não funcionará com o SYNC.",\r
-              "line1": "não autorizada"\r
-            },\r
-            "ru-ru": {\r
-              "tts": "Эта версия %appName% не авторизирована и не будет работать с SYNC.",\r
-              "line1": "не авторизировано"\r
-            },\r
-            "sv-se": {\r
-              "tts": "Den här versionen av %appName% är inte godkänd och fungerar inte med SYNC.",\r
-              "line1": "är ej godkänd"\r
-            },\r
-            "tr-tr": {\r
-              "tts": "Bu %appName% sürümüne izin verilmediğinden SYNC ile çalışamaz.",\r
-              "line1": "için izin yok"\r
-            },\r
-            "zh-cn": {\r
-              "tts": "此版本的%appName% 未得到授权,无法在SYNC上使用。",\r
-              "line1": "未得到授权"\r
-            },\r
-            "zh-tw": {\r
-              "tts": "%appName% 的版本未獲得授權,將無法透過 SYNC 使用。",\r
-              "line1": "無授權"\r
-            }\r
-          }\r
-        },\r
-        "AppUnsupported": {\r
-          "languages": {\r
-            "de-de": {\r
-              "tts": "Diese Version von %appName% wird von SYNC nicht unterstützt.",\r
-              "line1": "nicht unterstützt"\r
-            },\r
-            "en-au": {\r
-              "tts": "This version of %appName% is not supported by SYNC.",\r
-              "line1": "not supported"\r
-            },\r
-            "en-gb": {\r
-              "tts": "This version of %appName% is not supported by SYNC.",\r
-              "line1": "not supported"\r
-            },\r
-            "en-ie": {\r
-              "tts": "This version of %appName% is not supported by SYNC.",\r
-              "line1": "not supported"\r
-            },\r
-            "en-us": {\r
-              "tts": "This version of %appName% is not supported by SYNC.",\r
-              "line1": "Not Supported"\r
-            },\r
-            "es-en": {\r
-              "tts": "Esta versión de %appName% no es compatible con SYNC.",\r
-              "line1": "no compatible"\r
-            },\r
-            "es-es": {\r
-              "tts": "Esta versión de %appName% no es compatible con SYNC.",\r
-              "line1": "No compatible"\r
-            },\r
-            "es-mx": {\r
-              "tts": "Esta versión de %appName% no es compatible con SYNC.",\r
-              "line1": "no compatible"\r
-            },\r
-            "fr-ca": {\r
-              "tts": "Cette version de %appName% n’est pas prise en charge par SYNC.",\r
-              "line1": "incompatible"\r
-            },\r
-            "fr-fr": {\r
-              "tts": "Cette version de %appName% n’est pas prise en charge par SYNC.",\r
-              "line1": "incompatible"\r
-            },\r
-            "it-it": {\r
-              "tts": "Questa versione di %appName% non è supportata dal SYNC.",\r
-              "line1": "non supportata"\r
-            },\r
-            "nl-nl": {\r
-              "tts": "Deze versie van %appName% wordt niet ondersteund door SYNC.",\r
-              "line1": "niet ondersteund"\r
-            },\r
-            "pl-pl": {\r
-              "tts": "Niniejsza wersja %appName% nie jest obsługiwana przez system SYNC.",\r
-              "line1": "aplikacja nie obsług."\r
-            },\r
-            "pt-br": {\r
-              "tts": "Esta versão do %appName% não é suportada pelo SYNC.",\r
-              "line1": "não suportado"\r
-            },\r
-            "pt-pt": {\r
-              "tts": "Esta versão de %appName% não é suportado pelo SYNC.",\r
-              "line1": "não suportada"\r
-            },\r
-            "ru-ru": {\r
-              "tts": "Эта версия %appName% не поддерживается SYNC.",\r
-              "line1": "не поддерживается"\r
-            },\r
-            "sv-se": {\r
-              "tts": "SYNC har inte stöd för den här versionen av %appName%.",\r
-              "line1": "stöds ej"\r
-            },\r
-            "tr-tr": {\r
-              "tts": "Bu %appName% sürümü SYNC tarafından desteklenmiyor.",\r
-              "line1": "desteklenmiyor"\r
-            },\r
-            "zh-cn": {\r
-              "tts": "SYNC不支持此版本的%appName%。",\r
-              "line1": "不受支持"\r
-            },\r
-            "zh-tw": {\r
-              "tts": "SYNC 不支援此版本的%appName% 。",\r
-              "line1": "不支援"\r
-            }\r
-          }\r
-        },\r
-        "DataConsent": {\r
-          "languages": {\r
-            "en-us": {\r
-              "tts": "To use mobile apps with SYNC, SYNC will communicate with Ford at least once per month using your mobile device's data plan. Standard rates may apply. SYNC will send your VIN and SYNC module number to Ford U.S. Please press yes or no, or help for more information. ",\r
-              "line1": "Enable Mobile Apps",\r
-              "line2": "on SYNC? (Uses Data)"\r
-            }\r
-          }\r
-        },\r
-        "DataConsentHelp": {\r
-          "languages": {\r
-            "en-us": {\r
-              "tts": "Updates are about the size of an email, and the occurrence of updates depends on your vehicle usage and when a new app is found on your device. To turn on or off, visit the SYNC mobile apps settings menu. See your Owner Guide for more information. "\r
-            }\r
-          }\r
-        },\r
-        "DisableApps": {\r
-          "languages": {\r
-            "de-de": {\r
-              "tts": "Ausschalten der automatischen Updates führt zum Ausschalten von SYNC mobile Apps. Sie können Ihre mobilen Apps dann nicht mehr mit SYNC nutzen. Bitte drücken Sie Ja zur Bestätigung oder Nein, um abzubrechen.",\r
-              "line1": "Auto-Update",\r
-              "line2": "und Mobile Apps deaktivieren"\r
-            },\r
-            "en-au": {\r
-              "tts": "Disabling automatic updates will also disable SYNC mobile apps. You will not be able to use any mobile apps with SYNC. Please press Yes to confirm or No to cancel.",\r
-              "line1": "Disable auto-updates",\r
-              "line2": "and Mobile Apps?"\r
-            },\r
-            "en-gb": {\r
-              "tts": "Disabling automatic updates will also disable SYNC mobile apps. You will not be able to use any mobile apps with SYNC. Please press Yes to confirm or No to cancel.",\r
-              "line1": "Disable auto-updates",\r
-              "line2": "and Mobile Apps?"\r
-            },\r
-            "en-ie": {\r
-              "tts": "Disabling automatic updates will also disable SYNC mobile apps. You will not be able to use any mobile apps with SYNC. Please press Yes to confirm or No to cancel.",\r
-              "line1": "Disable auto-updates",\r
-              "line2": "and Mobile Apps?"\r
-            },\r
-            "en-us": {\r
-              "tts": "Disabling automatic updates will also disable sync mobile apps. You will not be able to use any mobile apps with SYNC. Please press yes to confirm or no to cancel.",\r
-              "line1": "Disable Auto-Updates",\r
-              "line2": "and Mobile Apps?"\r
-            },\r
-            "es-en": {\r
-              "tts": "Si se desactivan las actualizaciones automáticas, también se desactivarán las aplicaciones móviles de SYNC. No podrá usar ninguna aplicación móvil con SYNC. Presione Sí para confirmar o No para cancelar.",\r
-              "line1": "¿Deshab. actualiz.",\r
-              "line2": "autom. y aplic. móv.?"\r
-            },\r
-            "es-es": {\r
-              "tts": "Si desactiva las actualizaciones automáticas, también se desactivará la sincronización de las aplicaciones móviles. No podrá utilizar ninguna aplicación móvil con SYNC. Pulse sí para confirmar o no para cancelar.",\r
-              "line1": "¿Desact. actual. auto",\r
-              "line2": "y apl. móviles?"\r
-            },\r
-            "es-mx": {\r
-              "tts": "Si se desactivan las actualizaciones automáticas, también se desactivarán las aplicaciones móviles de SYNC. No podrá usar ninguna aplicación móvil con SYNC. Presione Sí para confirmar o No para cancelar.",\r
-              "line1": "¿Deshab. actualiz.",\r
-              "line2": "autom. y aplic. móv.?"\r
-            },\r
-            "fr-ca": {\r
-              "tts": "La désactivation des mises à jour automatiques désactivera aussi les applications mobiles SYNC. Vous ne pourrez pas utiliser d’application mobile avec SYNC. Veuillez appuyer sur Oui pour confirmer ou sur Non pour annuler.",\r
-              "line1": "Désactiver màj autom.",\r
-              "line2": "et app. mobiles?"\r
-            },\r
-            "fr-fr": {\r
-              "tts": "La désactivation des mises à jour automatiques désactivera aussi les applications mobiles SYNC. Vous ne pourrez pas utiliser d’application mobile avec SYNC. Veuillez appuyer sur Oui pour confirmer ou sur Non pour annuler.",\r
-              "line1": "Désactiver màj autom.",\r
-              "line2": "et app. mobiles?"\r
-            },\r
-            "it-it": {\r
-              "tts": "Disabilitando gli aggiornamenti automatici si disattiva anche la sincronizzazione delle app mobili. Non sarà possibile usare app mobili con il SYNC. Premere Sì per confermare e No per cancellare.",\r
-              "line1": "Disabilitare agg. aut.",\r
-              "line2": "e app mobili?"\r
-            },\r
-            "nl-nl": {\r
-              "tts": "Door automatische updates uit te schakelen, schakelt u ook SYNC-mobiele apps uit. U kunt dan geen mobiele apps meer gebruiken met SYNC. Druk op Ja om te bevestigen of op Nee om te annuleren.",\r
-              "line1": "Auto-updates en mob.",\r
-              "line2": "apps uitschakelen?"\r
-            },\r
-            "pl-pl": {\r
-              "tts": "Wyłączenie automatycznych aktualizacji spowoduje także wyłączenie aplikacji mobilnych SYNC. Korzystanie z mobilnych aplikacji za pomocą SYNC będzie niemożliwe. Naciśnij TAK, by potwierdzić lub NIE, by anulować.",\r
-              "line1": "Wył. automat. aktual.",\r
-              "line2": "i aplikacje mobilne?"\r
-            },\r
-            "pt-br": {\r
-              "tts": "Se as atualizações automáticas forem desativadas, os aplicativos também serão desativados. Você não poderá usar nenhum aplicativo com o SYNC. Pressione sim para confirmar ou não para cancelar.",\r
-              "line1": "Desativar atualizações",\r
-              "line2": "autom. e aplicativos?"\r
-            },\r
-            "pt-pt": {\r
-              "tts": "A desactivação das actualizações automáticas desactiva igualmente as aplicações móveis do SYNC. Não poderá utilizar quaisquer aplicações móveis com o SYNC. Prima \"\"Sim\"\" para confirmar ou \"\"Não\"\" para cancelar.",\r
-              "line1": "Desact. actual. autom.",\r
-              "line2": "e aplicações móveis?"\r
-            },\r
-            "ru-ru": {\r
-              "tts": "При отключении автоматических обновлений также будут отключены мобильные приложения sync. Вы не сможете использовать какие-либо мобильные приложения с SYNC. Нажмите \"\"Да\"\" для подтверждения или \"\"Нет\"\" для отмены.",\r
-              "line1": "Откл. автообновления",\r
-              "line2": "и мобил. прилож.?"\r
-            },\r
-            "sv-se": {\r
-              "tts": "Om du avaktiverar automatisk uppdatering avaktiverar du även synkning av mobilappar. Du kommer inte längre att kunna använda dina mobilappar med SYNC. Tryck Ja för att bekräfta eller Nej för att avbryta.",\r
-              "line1": "Avaktiverar autouppdat.",\r
-              "line2": "och mobilappar?"\r
-            },\r
-            "tr-tr": {\r
-              "tts": "Otomatik güncellemeleri devre dışı bırakırsanız sync mobil uygulamalar da devre dışı kalır. SYNC ile mobil uygulama kullanmanız mümkün olmaz. Lütfen onaylamak için Evet'e veya iptal etmek için Hayır'a basın.",\r
-              "line1": "Oto. güncelleme ve",\r
-              "line2": "mobil uygul. kapat?"\r
-            },\r
-            "zh-cn": {\r
-              "tts": "禁用自动更新同时也会禁用SYNC移动应用程序。您将无法在 SYNC 中使用任何移动应用程序。请按“是”确认或按“否”取消。",\r
-              "line1": "是否禁用自动更新和",\r
-              "line2": "移动应用程序?"\r
-            },\r
-            "zh-tw": {\r
-              "tts": "停用自動更新也將停用 sync 行動應用程式。您將無法透過 SYNC 使用任何行動應用程式。確認請按「是」,取消請按「否」。",\r
-              "line1": "停用自動更新",\r
-              "line2": "和行動應用程式?"\r
-            }\r
-          }\r
-        },\r
-        "DrivingCharacteristics": {\r
-          "languages": {\r
-            "de-de": {\r
-              "tts": "Eine App hat Zugriff auf die folgenden Fahreigenschaften: Kraftstoffverbrauch, MyKey, Sicherheitsgurtstatus.",\r
-              "label": "Fahreigenschaften"\r
-            },\r
-            "en-au": {\r
-              "tts": "An app can access the following driving characteristics: Fuel consumption, MyKey, Seat belt status.",\r
-              "label": "Driving characteristics"\r
-            },\r
-            "en-gb": {\r
-              "tts": "An app can access the following driving characteristics: Fuel consumption, MyKey, Seat belt status.",\r
-              "label": "Driving characteristics"\r
-            },\r
-            "en-ie": {\r
-              "tts": "An app can access the following driving characteristics: Fuel consumption, MyKey, Seat belt status.",\r
-              "label": "Driving characteristics"\r
-            },\r
-            "en-us": {\r
-              "tts": "An app can access the following driving characteristics: Fuel Consumption, MyKey, Seat Belt Status.",\r
-              "label": "Driving Characteristics"\r
-            },\r
-            "es-en": {\r
-              "tts": "Las aplicaciones pueden acceder a las siguientes características del manejo: Consumo de combustible, MyKey, Estado del cinturón de seguridad.",\r
-              "label": "Características del manejo"\r
-            },\r
-            "es-es": {\r
-              "tts": "Una aplicación puede acceder a las siguientes características de conducción: Consumo de combustible, MyKey, Estado cinturones de seguridad.",\r
-              "label": "Características de conducción"\r
-            },\r
-            "es-mx": {\r
-              "tts": "Las aplicaciones pueden acceder a las siguientes características del manejo: Consumo de combustible, MyKey, Estado del cinturón de seguridad.",\r
-              "label": "Características del manejo"\r
-            },\r
-            "fr-ca": {\r
-              "tts": "Une application peut accéder aux caractéristiques de conduite suivantes: Consommation de carburant, MyKey, État des ceintures de sécurité.",\r
-              "label": "Caractéristiques de conduite"\r
-            },\r
-            "fr-fr": {\r
-              "tts": "Une application peut accéder aux caractéristiques de conduite suivantes: Consommation de carburant, MyKey, État des ceintures de sécurité.",\r
-              "label": "Caractéristiques de conduite"\r
-            },\r
-            "it-it": {\r
-              "tts": "Un'app può avere accesso alle seguenti caratteristiche di guida: Consumo carburante, MyKey, Stato cinture di sicurezza.",\r
-              "label": "Caratteristiche di guida"\r
-            },\r
-            "nl-nl": {\r
-              "tts": "Een app heeft toegang tot de volgende rijkenmerken: Brandstofverbruik, MyKey, Veiligheidsgordelstatus.",\r
-              "label": "Rijkenmerken"\r
-            },\r
-            "pl-pl": {\r
-              "tts": "Aplikacja może uzyskać dostęp do następujących informacji dotyczących jazdy: Zużycie paliwa, MyKey, Stan pasów bezpieczeństwa.",\r
-              "label": "Informacje dotyczące stylu jazdy"\r
-            },\r
-            "pt-br": {\r
-              "tts": "Um aplicativo pode acessar as seguintes características de condução: Consumo de combustível, MyKey, Estado do cinto de segurança.",\r
-              "label": "Características de condução"\r
-            },\r
-            "pt-pt": {\r
-              "tts": "Uma aplicação consegue aceder às seguintes informações de condução: Consumo de combustível, MyKey, Estado dos cintos de segurança.",\r
-              "label": "Características de condução"\r
-            },\r
-            "ru-ru": {\r
-              "tts": "Приложение имеет доступ к следующим характеристикам движения: Расход топлива, MyKey, Состояние ремней безопасности.",\r
-              "label": "Характеристики движения"\r
-            },\r
-            "sv-se": {\r
-              "tts": "Appen kan komma åt följande köregenskaper: Bränsleförbrukning, MyKey, Bältesstatus.",\r
-              "label": "Köregenskaper"\r
-            },\r
-            "tr-tr": {\r
-              "tts": "Bir uygulama şu sürüş karakteristiklerine erişebilir: Yakıt tüketimi, MyKey, Emniyet kemeri durumu.",\r
-              "label": "Sürüş karakteristikleri"\r
-            },\r
-            "zh-cn": {\r
-              "tts": "移动应用程序可访问下列行驶特性: 油耗, MyKey, 安全带状态",\r
-              "label": "行驶特性"\r
-            },\r
-            "zh-tw": {\r
-              "tts": "應用程式可存取以下駕駛特性: 油耗, MyKey, 安全帶狀態",\r
-              "label": "駕駛特性"\r
-            }\r
-          }\r
-        },\r
-        "Location": {\r
-          "languages": {\r
-            "de-de": {\r
-              "tts": "Eine App hat Zugriff auf die GPS-Daten und die Geschwindigkeit des Fahrzeugs.",\r
-              "label": "GPS und Geschwindigkeit"\r
-            },\r
-            "en-au": {\r
-              "tts": "An app can access vehicle GPS and speed.",\r
-              "label": "GPS and speed"\r
-            },\r
-            "en-gb": {\r
-              "tts": "An app can access vehicle GPS and speed.",\r
-              "label": "GPS and speed"\r
-            },\r
-            "en-ie": {\r
-              "tts": "An app can access vehicle GPS and speed.",\r
-              "label": "GPS and speed"\r
-            },\r
-            "en-us": {\r
-              "tts": "An app can access vehicle GPS and speed.",\r
-              "label": "GPS and speed"\r
-            },\r
-            "es-en": {\r
-              "tts": "Las aplicaciones pueden acceder al GPS y a la velocidad del vehículo.",\r
-              "label": "GPS y velocidad"\r
-            },\r
-            "es-es": {\r
-              "tts": "Una aplicación puede acceder al GPS y la velocidad del vehículo.",\r
-              "label": "GPS y velocidad"\r
-            },\r
-            "es-mx": {\r
-              "tts": "Las aplicaciones pueden acceder al GPS y a la velocidad del vehículo.",\r
-              "label": "GPS y velocidad"\r
-            },\r
-            "fr-ca": {\r
-              "tts": "Une application peut accéder au GPS et à la vitesse du véhicule.",\r
-              "label": "GPS et vitesse"\r
-            },\r
-            "fr-fr": {\r
-              "tts": "Une application peut accéder au GPS et à la vitesse du véhicule.",\r
-              "label": "GPS et vitesse"\r
-            },\r
-            "it-it": {\r
-              "tts": "Un'app può avere accesso a GPS e velocità del veicolo.",\r
-              "label": "GPS e velocità"\r
-            },\r
-            "nl-nl": {\r
-              "tts": "Een app heeft toegang tot gps en de snelheid van het voertuig.",\r
-              "label": "Gps en snelheid"\r
-            },\r
-            "pl-pl": {\r
-              "tts": "Aplikacja może uzyskać dostęp do modułu GPS i prędkości pojazdu.",\r
-              "label": "GPS i prędkość"\r
-            },\r
-            "pt-br": {\r
-              "tts": "Um aplicativo pode acessar o GPS e a velocidade do veículo.",\r
-              "label": "GPS e velocidade"\r
-            },\r
-            "pt-pt": {\r
-              "tts": "Uma aplicação consegue aceder ao GPS e à velocidade do veículo.",\r
-              "label": "GPS e velocidade"\r
-            },\r
-            "ru-ru": {\r
-              "tts": "Приложение имеет доступ к GPS и скорости автомобиля.",\r
-              "label": "GPS и скорость"\r
-            },\r
-            "sv-se": {\r
-              "tts": "Appen kan komma åt fordonets GPS och hastighetsmätare.",\r
-              "label": "GPS och hastighet"\r
-            },\r
-            "tr-tr": {\r
-              "tts": "Bu uygulama aracın GPS ve hız bilgilerine erişebilir.",\r
-              "label": "GPS ve hız"\r
-            },\r
-            "zh-cn": {\r
-              "tts": "移动应用程序可以访问车辆 GPS 和车速信息。",\r
-              "label": "GPS 和车速"\r
-            },\r
-            "zh-tw": {\r
-              "tts": "應用程式可存取車輛的GPS和速度。",\r
-              "label": "GPS和車速"\r
-            }\r
-          }\r
-        },\r
-        "Notifications": {\r
-          "languages": {\r
-            "de-de": {\r
-              "tts": "Läuft die App im Hintergrund, kann Sie Benachrichtigungen senden.",\r
-              "label": "Push-Benachrichtigungen"\r
-            },\r
-            "en-au": {\r
-              "tts": "An app can send notifications when running in the background.",\r
-              "label": "Push notifications"\r
-            },\r
-            "en-gb": {\r
-              "tts": "An app can send notifications when running in the background.",\r
-              "label": "Push notifications"\r
-            },\r
-            "en-ie": {\r
-              "tts": "An app can send notifications when running in the background.",\r
-              "label": "Push notifications"\r
-            },\r
-            "en-us": {\r
-              "tts": "An app can send notifications when running in the background.",\r
-              "label": "Push notifications"\r
-            },\r
-            "es-en": {\r
-              "tts": "Las aplicaciones pueden enviar notificaciones cuando se ejecutan en segundo plano.",\r
-              "label": "Notificaciones tipo Push"\r
-            },\r
-            "es-es": {\r
-              "tts": "Una aplicación puede enviar notificaciones cuando se está ejecutando en segundo plano.",\r
-              "label": "Notificaciones push"\r
-            },\r
-            "es-mx": {\r
-              "tts": "Las aplicaciones pueden enviar notificaciones cuando se ejecutan en segundo plano.",\r
-              "label": "Notificaciones tipo Push"\r
-            },\r
-            "fr-ca": {\r
-              "tts": "Une application peut envoyer des avis lorsqu’elle fonctionne en arrière-plan.",\r
-              "label": "Notifications instantanées"\r
-            },\r
-            "fr-fr": {\r
-              "tts": "Une application peut envoyer des avis lorsqu’elle fonctionne en arrière-plan.",\r
-              "label": "Notifications push"\r
-            },\r
-            "it-it": {\r
-              "tts": "Un'app può inviare notifiche se eseguita in background.",\r
-              "label": "Notifiche push"\r
-            },\r
-            "nl-nl": {\r
-              "tts": "Een app kan meldingen versturen als deze op de achtergrond actief is.",\r
-              "label": "Push-meldingen"\r
-            },\r
-            "pl-pl": {\r
-              "tts": "Aplikacja może wysyłać powiadomienia, działając w tle.",\r
-              "label": "Powiadomienia Push"\r
-            },\r
-            "pt-br": {\r
-              "tts": "Um aplicativo pode enviar notificações quando estiver sendo executado em segundo plano.",\r
-              "label": "Notificações Push"\r
-            },\r
-            "pt-pt": {\r
-              "tts": "Uma aplicação consegue enviar notificações quando está activa em segundo plano.",\r
-              "label": "Notificações push"\r
-            },\r
-            "ru-ru": {\r
-              "tts": "Если приложение работает в фоновом режиме, оно может отправлять оповещения.",\r
-              "label": "Оповещения о пересылке"\r
-            },\r
-            "sv-se": {\r
-              "tts": "Appen kan skicka meddelanden när den körs i bakgrunden.",\r
-              "label": "Push-notiser"\r
-            },\r
-            "tr-tr": {\r
-              "tts": "Bir uygulama arka planda çalışırken bildirim gönderebilir.",\r
-              "label": "Anlık bildirimleri"\r
-            },\r
-            "zh-cn": {\r
-              "tts": "移动应用程序在后台运行时可推送通知。",\r
-              "label": "推送通知"\r
-            },\r
-            "zh-tw": {\r
-              "tts": "車輛行進時,應用程式可在背景中傳送通知。",\r
-              "label": "傳送通知"\r
-            }\r
-          }\r
-        },\r
-        "SettingDisableUpdates": {\r
-          "languages": {\r
-            "de-de": {\r
-              "line1": "Updates deakt."\r
-            },\r
-            "en-au": {\r
-              "line1": "Disable updates"\r
-            },\r
-            "en-gb": {\r
-              "line1": "Disable updates"\r
-            },\r
-            "en-ie": {\r
-              "line1": "Disable updates"\r
-            },\r
-            "en-us": {\r
-              "line1": "Disable Updates"\r
-            },\r
-            "es-en": {\r
-              "line1": "Deshab. actual."\r
-            },\r
-            "es-es": {\r
-              "line1": "Desact. actual."\r
-            },\r
-            "es-mx": {\r
-              "line1": "Deshab. actual."\r
-            },\r
-            "fr-ca": {\r
-              "line1": "Désactiver MAJ"\r
-            },\r
-            "fr-fr": {\r
-              "line1": "Désactiver màj"\r
-            },\r
-            "it-it": {\r
-              "line1": "Disabilita agg."\r
-            },\r
-            "nl-nl": {\r
-              "line1": "Upd. uitschak."\r
-            },\r
-            "pl-pl": {\r
-              "line1": "Wyłącz aktual."\r
-            },\r
-            "pt-br": {\r
-              "line1": "Desat. atualiz."\r
-            },\r
-            "pt-pt": {\r
-              "line1": "Desact. actualiz."\r
-            },\r
-            "ru-ru": {\r
-              "line1": "Откл. обновл."\r
-            },\r
-            "sv-se": {\r
-              "line1": "Inaktivera uppd."\r
-            },\r
-            "tr-tr": {\r
-              "line1": "Güncell. Kapat"\r
-            },\r
-            "zh-cn": {\r
-              "line1": "禁用更新"\r
-            },\r
-            "zh-tw": {\r
-              "line1": "停用更新"\r
-            }\r
-          }\r
-        },\r
-        "SettingEnableUpdates": {\r
-          "languages": {\r
-            "de-de": {\r
-              "line1": "Apps aktivieren"\r
-            },\r
-            "en-au": {\r
-              "line1": "Enable Apps"\r
-            },\r
-            "en-gb": {\r
-              "line1": "Enable Apps"\r
-            },\r
-            "en-ie": {\r
-              "line1": "Enable Apps"\r
-            },\r
-            "en-us": {\r
-              "line1": "Enable Apps"\r
-            },\r
-            "es-en": {\r
-              "line1": "Hab. aplic."\r
-            },\r
-            "es-es": {\r
-              "line1": "Activar apl."\r
-            },\r
-            "es-mx": {\r
-              "line1": "Hab. aplic."\r
-            },\r
-            "fr-ca": {\r
-              "line1": "Activer app."\r
-            },\r
-            "fr-fr": {\r
-              "line1": "Activer app."\r
-            },\r
-            "it-it": {\r
-              "line1": "Abilita app"\r
-            },\r
-            "nl-nl": {\r
-              "line1": "Apps inschak."\r
-            },\r
-            "pl-pl": {\r
-              "line1": "Włącz aplikacje"\r
-            },\r
-            "pt-br": {\r
-              "line1": "Ativar aplic."\r
-            },\r
-            "pt-pt": {\r
-              "line1": "Activar actualiz."\r
-            },\r
-            "ru-ru": {\r
-              "line1": "Вкл. прилож."\r
-            },\r
-            "sv-se": {\r
-              "line1": "Aktivera appar"\r
-            },\r
-            "tr-tr": {\r
-              "line1": "Uygulamaları aç"\r
-            },\r
-            "zh-cn": {\r
-              "line1": "启用应用程序"\r
-            },\r
-            "zh-tw": {\r
-              "line1": "啟用應用程式"\r
-            }\r
-          }\r
-        },\r
-        "SettingUpdateAuto": {\r
-          "languages": {\r
-            "de-de": {\r
-              "line1": "Update anford."\r
-            },\r
-            "en-au": {\r
-              "line1": "Request update"\r
-            },\r
-            "en-gb": {\r
-              "line1": "Request update"\r
-            },\r
-            "en-ie": {\r
-              "line1": "Request update"\r
-            },\r
-            "en-us": {\r
-              "line1": "Request Update"\r
-            },\r
-            "es-en": {\r
-              "line1": "Solicit. actualiz."\r
-            },\r
-            "es-es": {\r
-              "line1": "Solicitar actual."\r
-            },\r
-            "es-mx": {\r
-              "line1": "Solicit. actualiz."\r
-            },\r
-            "fr-ca": {\r
-              "line1": "Demander MAJ"\r
-            },\r
-            "fr-fr": {\r
-              "line1": "Demander màj"\r
-            },\r
-            "it-it": {\r
-              "line1": "Rich. aggiorn."\r
-            },\r
-            "nl-nl": {\r
-              "line1": "Upd. aanvragen"\r
-            },\r
-            "pl-pl": {\r
-              "line1": "Zażądaj aktual."\r
-            },\r
-            "pt-br": {\r
-              "line1": "Solicitar atualiz."\r
-            },\r
-            "pt-pt": {\r
-              "line1": "Solicit. actualiz."\r
-            },\r
-            "ru-ru": {\r
-              "line1": "Запрос на обн."\r
-            },\r
-            "sv-se": {\r
-              "line1": "Begär uppdat."\r
-            },\r
-            "tr-tr": {\r
-              "line1": "Güncelleme iste"\r
-            },\r
-            "zh-cn": {\r
-              "line1": "请求更新"\r
-            },\r
-            "zh-tw": {\r
-              "line1": "請求更新"\r
-            }\r
-          }\r
-        },\r
-        "StatusNeeded": {\r
-          "languages": {\r
-            "de-de": {\r
-              "line1": "Update benötigt"\r
-            },\r
-            "en-au": {\r
-              "line1": "Update needed"\r
-            },\r
-            "en-gb": {\r
-              "line1": "Update needed"\r
-            },\r
-            "en-ie": {\r
-              "line1": "Update needed"\r
-            },\r
-            "en-us": {\r
-              "line1": "Update Needed"\r
-            },\r
-            "es-en": {\r
-              "line1": "Actualiz. neces."\r
-            },\r
-            "es-es": {\r
-              "line1": "Actu. necesaria"\r
-            },\r
-            "es-mx": {\r
-              "line1": "Actualiz. neces."\r
-            },\r
-            "fr-ca": {\r
-              "line1": "Màj requise"\r
-            },\r
-            "fr-fr": {\r
-              "line1": "Mise à jour requise"\r
-            },\r
-            "it-it": {\r
-              "line1": "Necess. aggiorn."\r
-            },\r
-            "nl-nl": {\r
-              "line1": "Update nodig"\r
-            },\r
-            "pl-pl": {\r
-              "line1": "Potrzeba aktual."\r
-            },\r
-            "pt-br": {\r
-              "line1": "Atualiz. necess."\r
-            },\r
-            "pt-pt": {\r
-              "line1": "Actual. necess."\r
-            },\r
-            "ru-ru": {\r
-              "line1": "Необх. обновл."\r
-            },\r
-            "sv-se": {\r
-              "line1": "Uppdat. krävs"\r
-            },\r
-            "tr-tr": {\r
-              "line1": "Güncellenmeli"\r
-            },\r
-            "zh-cn": {\r
-              "line1": "需要进行更新"\r
-            },\r
-            "zh-tw": {\r
-              "line1": "需更新"\r
-            }\r
-          }\r
-        },\r
-        "StatusPending": {\r
-          "languages": {\r
-            "de-de": {\r
-              "line1": "Aktualisieren..."\r
-            },\r
-            "en-au": {\r
-              "line1": "Updating..."\r
-            },\r
-            "en-gb": {\r
-              "line1": "Updating..."\r
-            },\r
-            "en-ie": {\r
-              "line1": "Updating..."\r
-            },\r
-            "en-us": {\r
-              "line1": "Updating..."\r
-            },\r
-            "es-en": {\r
-              "line1": "Actualizando..."\r
-            },\r
-            "es-es": {\r
-              "line1": "Actualizando..."\r
-            },\r
-            "es-mx": {\r
-              "line1": "Actualizando..."\r
-            },\r
-            "fr-ca": {\r
-              "line1": "MAJ en cours..."\r
-            },\r
-            "fr-fr": {\r
-              "line1": "Màj en cours..."\r
-            },\r
-            "it-it": {\r
-              "line1": "Aggiornamento"\r
-            },\r
-            "nl-nl": {\r
-              "line1": "Updaten..."\r
-            },\r
-            "pl-pl": {\r
-              "line1": "Aktualizowanie"\r
-            },\r
-            "pt-br": {\r
-              "line1": "Atualizando..."\r
-            },\r
-            "pt-pt": {\r
-              "line1": "A actualizar..."\r
-            },\r
-            "ru-ru": {\r
-              "line1": "Обновление..."\r
-            },\r
-            "sv-se": {\r
-              "line1": "Uppdaterar..."\r
-            },\r
-            "tr-tr": {\r
-              "line1": "Güncelleniyor..."\r
-            },\r
-            "zh-cn": {\r
-              "line1": "正在更新......"\r
-            },\r
-            "zh-tw": {\r
-              "line1": "更新中..."\r
-            }\r
-          }\r
-        },\r
-        "StatusUpToDate": {\r
-          "languages": {\r
-            "de-de": {\r
-              "line1": "Aktuelle Version"\r
-            },\r
-            "en-au": {\r
-              "line1": "Up-to-date"\r
-            },\r
-            "en-gb": {\r
-              "line1": "Up-to-date"\r
-            },\r
-            "en-ie": {\r
-              "line1": "Up-to-date"\r
-            },\r
-            "en-us": {\r
-              "line1": "Up-To-Date"\r
-            },\r
-            "es-en": {\r
-              "line1": "Actualizado"\r
-            },\r
-            "es-es": {\r
-              "line1": "Actualizada"\r
-            },\r
-            "es-mx": {\r
-              "line1": "Actualizado"\r
-            },\r
-            "fr-ca": {\r
-              "line1": "Déjà à jour"\r
-            },\r
-            "fr-fr": {\r
-              "line1": "Déjà à jour"\r
-            },\r
-            "it-it": {\r
-              "line1": "più recente"\r
-            },\r
-            "nl-nl": {\r
-              "line1": "Up-to-date"\r
-            },\r
-            "pl-pl": {\r
-              "line1": "Aktualne"\r
-            },\r
-            "pt-br": {\r
-              "line1": "Atualizado"\r
-            },\r
-            "pt-pt": {\r
-              "line1": "Actualizado"\r
-            },\r
-            "ru-ru": {\r
-              "line1": "Обновлено"\r
-            },\r
-            "sv-se": {\r
-              "line1": "Uppdat. krävs ej"\r
-            },\r
-            "tr-tr": {\r
-              "line1": "Güncel"\r
-            },\r
-            "zh-cn": {\r
-              "line1": "最新更新"\r
-            },\r
-            "zh-tw": {\r
-              "line1": "更新最新"\r
-            }\r
-          }\r
-        },\r
-        "VehicleInfo": {\r
-          "languages": {\r
-            "de-de": {\r
-              "tts": "Eine App hat Zugriff auf die folgenden Fahrzeuginformationen: Kraftstoff-Füllstand, Kraftstoffverbrauch, Motordrehzahl, Kilometerzähler, FIN, Außentemperatur, Gangstellung, Reifenluftdruck.",\r
-              "label": "Fahrzeuginformationen"\r
-            },\r
-            "en-au": {\r
-              "tts": "An app can access the following vehicle information: Fuel level, Fuel economy, Engine RPMs, Odometer, VIN, Outside air temperature, Gear position, Tyre pressure.",\r
-              "label": "Vehicle information"\r
-            },\r
-            "en-gb": {\r
-              "tts": "An app can access the following vehicle information: Fuel level, Fuel economy, Engine RPMs, Odometer, VIN, Outside air temperature, Gear position, Tyre pressure.",\r
-              "label": "Vehicle information"\r
-            },\r
-            "en-ie": {\r
-              "tts": "An app can access the following vehicle information: Fuel level, Fuel economy, Engine RPMs, Odometer, VIN, Outside air temperature, Gear position, Tyre pressure.",\r
-              "label": "Vehicle information"\r
-            },\r
-            "en-us": {\r
-              "tts": "An app can access the following vehicle information: Fuel Level, Fuel Economy, Engine RPMs, Odometer, VIN, External Temperature, Gear Position, Tire Pressure.",\r
-              "label": "Vehicle information"\r
-            },\r
-            "es-en": {\r
-              "tts": "Las aplicaciones pueden acceder a la siguiente información del vehículo: Nivel de combustible, Economía de combustible, RPM del motor, Cuentakilómetros, Número de identificación del vehículo, Temperatura externa, Posición del cambio, Presión de los neumáticos.",\r
-              "label": "Información del vehículo"\r
-            },\r
-            "es-es": {\r
-              "tts": "Una aplicación puede acceder a la siguiente información del vehículo: Nivel de combustible, Ahorro de combustible, RPM del motor, Cuentakilómetros, VIN, Temperatura aire exterior, Marcha engranada, Presión de neumáticos.",\r
-              "label": "Información del vehículo"\r
-            },\r
-            "es-mx": {\r
-              "tts": "Las aplicaciones pueden acceder a la siguiente información del vehículo: Nivel de combustible, Economía de combustible, RPM del motor, Cuentakilómetros, Número de identificación del vehículo, Temperatura externa, Posición del cambio, Presión de los neumáticos.",\r
-              "label": "Información del vehículo"\r
-            },\r
-            "fr-ca": {\r
-              "tts": "Une application peut accéder aux informations suivantes du véhicule: Niveau de carburant, Économie de carburant, Au régime du moteur, Odomètre, NIV, Température extérieure, Position d’embrayage, Pression des pneus.",\r
-              "label": "Renseignements du véhicule"\r
-            },\r
-            "fr-fr": {\r
-              "tts": "Une application peut accéder aux informations suivantes du véhicule: Niveau de carburant, Économie de carburant, Vitesse de moteur, Compteur kilométrique, NIV, Température extérieure, Position de vitesse, Pression des pneus.",\r
-              "label": "Renseignements du véhicule"\r
-            },\r
-            "it-it": {\r
-              "tts": "Un'app può avere accesso alle seguenti informazioni del veicolo: Livello carburante, Consumi carburante, Numero giri motore, Contachilometri, VIN, Temperatura esterna, Posizione marcia, Pressione pneumatici.",\r
-              "label": "Informazioni sul veicolo"\r
-            },\r
-            "nl-nl": {\r
-              "tts": "Een app heeft toegang tot de volgende voertuiginformatie: Brandstofpeil, Brandstofverbruik, Motortoerental, Kilometerteller, VIN, Buitentemperatuur, Versnellingsstand, Bandenspanning.",\r
-              "label": "Voertuiginformatie"\r
-            },\r
-            "pl-pl": {\r
-              "tts": "Aplikacja może uzyskać dostęp do następujących informacji o pojeździe: Poziom paliwa, Zużycie paliwa, Obroty silnika, Licznik przebiegu, Numer VIN, Temperatura zewnętrzna, Aktualny bieg, Ciśnienie opon.",\r
-              "label": "Informacje o pojeździe"\r
-            },\r
-            "pt-br": {\r
-              "tts": "Um aplicativo pode acessar as seguintes informações sobre o veículo: Nível de combustível, Economia de combustível, RPM do motor, Hodômetro, VIN, Temperatura externa, Posição das marchas, Pressão dos pneus.",\r
-              "label": "Informações sobre o veículo"\r
-            },\r
-            "pt-pt": {\r
-              "tts": "Uma aplicação consegue aceder às seguintes informações do veículo: Nível de combustível, Poupança de combustível, RPM do motor, Conta-quilómetros, VIN, Temperatura exterior, Posição da mudança de velocidade, Pressão dos pneus.",\r
-              "label": "Informações do veículo"\r
-            },\r
-            "ru-ru": {\r
-              "tts": "Приложение имеет доступ к следующим данным автомобиля: Уровень топлива, Економия топлива, Число оборотов двигателя, Одометр, Номер VIN, Температура за бортом, Положение передачи, Давление шин.",\r
-              "label": "Информация об автомобиле"\r
-            },\r
-            "sv-se": {\r
-              "tts": "Appen kan komma åt följande fordonsinformation: Bränslenivå, Bränsleekonomi, Motorns varvtal, Vägmätare, VIN, Utetemperatur, Växelläge, Däcktryck.",\r
-              "label": "Fordonsinformation"\r
-            },\r
-            "tr-tr": {\r
-              "tts": "Bir uygulama şu araç bilgilerine erişebilir: Yakıt seviyesi, Yakıt ekonomisi, Motor devirleri, Kilometre sayacı, VIN, Dış sıcaklık, Vites konumu, Lastik basıncı.",\r
-              "label": "Araç bilgisi"\r
-            },\r
-            "zh-cn": {\r
-              "tts": "移动应用程序可访问下列车辆信息 : 燃油量, 燃油经济性, 发动机转速(RPM), 里程表, VIN, 车外温度, 档位, 胎压.",\r
-              "label": "车辆信息"\r
-            },\r
-            "zh-tw": {\r
-              "tts": "一個應用程式可存取以下車輛資訊 : 燃油存量, 燃油經濟性, 引擎轉速, 里程表, 車輛識別號碼, 車外溫度, 檔位, 胎壓.",\r
-              "label": "車輛資訊"\r
-            }\r
-          }\r
-        }\r
-      }\r
-    },\r
-    "app_policies": {\r
-      "default": {\r
-        "keep_context": false,\r
-        "steal_focus": false,\r
-        "priority": "NONE",\r
-        "default_hmi": "NONE",\r
-        "memory_kb": 300,\r
-        "watchdog_timer_ms": 1000,\r
-        "groups": [\r
-          "Base-4",\r
-          "VehicleInfo-3",\r
-          "PropriataryData-1"\r
-        ]\r
-      },\r
-      "device": {\r
-        "keep_context": false,\r
-        "steal_focus": false,\r
-        "priority": "NONE",\r
-        "default_hmi": "NONE",\r
-        "memory_kb": 300,\r
-        "watchdog_timer_ms": 1000,\r
-        "groups": [\r
-          "DataConsent-2"\r
-        ]\r
-      },\r
-      "pre_DataConsent": {\r
-        "keep_context": false,\r
-        "steal_focus": false,\r
-        "priority": "NONE",\r
-        "default_hmi": "NONE",\r
-        "memory_kb": 300,\r
-        "watchdog_timer_ms": 1000,\r
-        "groups": [\r
-          "pre_Base-1"\r
-        ]\r
-      }\r
-    }\r
-  }\r
-}\r
+{
+  "policy_table": {
+    "module_config": {
+      "preloaded_pt": true,
+      "vehicle_make": "",
+      "vehicle_model": "",
+      "vehicle_year": "",
+      "exchange_after_x_ignition_cycles": 100,
+      "exchange_after_x_kilometers": 1800,
+      "exchange_after_x_days": 30,
+      "timeout_after_x_seconds": 60,
+      "seconds_between_retries": [
+        1,
+        5,
+        25,
+        125,
+        625
+      ],
+      "endpoints": {
+        "0x07": {
+          "default": [
+            "http://policies.telematics.ford.com/api/policies"
+          ]
+        }
+      },
+      "notifications_per_minute_by_priority": {
+        "EMERGENCY": 60,
+        "NAVIGATION": 15,
+        "COMMUNICATION": 6,
+        "NORMAL": 4,
+        "NONE": 0
+      }
+    },
+    "functional_groupings": {
+       "pre_Base-1": {
+                   "rpcs": {
+                     "ChangeRegistration": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     },
+                     "DeleteFile": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     },
+                     "GenericResponse": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED"
+                       ]
+                     },
+                     "ListFiles": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     },
+                     "OnAppInterfaceUnregistered": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     },
+                     "OnLanguageChange": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     },
+                     "OnPermissionsChange": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     },
+                     "PutFile": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     },
+                     "RegisterAppInterface": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     },
+                     "ResetGlobalProperties": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED"
+                       ]
+                     },
+                     "SystemRequest": {
+                       "hmi_levels": [
+                         "NONE",
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED"
+                       ]
+                     },
+                     "SetAppIcon": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     },
+                     "SetDisplayLayout": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     },
+                     "SetGlobalProperties": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED"
+                       ]
+                     },
+                     "UnregisterAppInterface": {
+                       "hmi_levels": [
+                         "BACKGROUND",
+                         "FULL",
+                         "LIMITED",
+                         "NONE"
+                       ]
+                     }
+                   }
+               },
+      "Base-4": {
+        "rpcs": {
+          "SystemRequest": {
+            "hmi_levels": [
+              "NONE",
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+                     },
+         "OnSystemRequest": {
+              "hmi_levels": [
+              "FULL",
+              "LIMITED",
+              "BACKGROUND",
+              "NONE"
+            ]
+          },
+          "AddCommand": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "AddSubMenu": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "Alert": {
+            "hmi_levels": [
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "ChangeRegistration": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "CreateInteractionChoiceSet": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "DeleteCommand": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "DeleteFile": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "DeleteInteractionChoiceSet": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "DeleteSubMenu": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "EncodedSyncPData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "EndAudioPassThru": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "GenericResponse": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "ListFiles": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "OnAppInterfaceUnregistered": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "OnAudioPassThru": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "OnButtonEvent": {
+            "hmi_levels": [
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "OnButtonPress": {
+            "hmi_levels": [
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "OnCommand": {
+            "hmi_levels": [
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "OnDriverDistraction": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "OnEncodedSyncPData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "OnHMIStatus": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "OnLanguageChange": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "OnPermissionsChange": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "OnSyncPData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "OnTBTClientState": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "PerformAudioPassThru": {
+            "hmi_levels": [
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "PerformInteraction": {
+            "hmi_levels": [
+              "FULL",
+        "LIMITED"
+            ]
+          },
+          "PutFile": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "RegisterAppInterface": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "ResetGlobalProperties": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "ScrollableMessage": {
+            "hmi_levels": [
+              "FULL"
+            ]
+          },
+          "SetAppIcon": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "SetDisplayLayout": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "SetGlobalProperties": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "SetMediaClockTimer": {
+            "hmi_levels": [
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "Show": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "Slider": {
+            "hmi_levels": [
+              "FULL"
+            ]
+          },
+          "Speak": {
+            "hmi_levels": [
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "SubscribeButton": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "SyncPData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "UnregisterAppInterface": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED",
+              "NONE"
+            ]
+          },
+          "UnsubscribeButton": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          }
+        }
+      },
+      "DrivingCharacteristics-3": {
+        "user_consent_prompt": "DrivingCharacteristics",
+        "rpcs": {
+          "GetVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "accPedalPosition",
+              "beltStatus",
+              "driverBraking",
+              "myKey",
+              "prndl",
+              "rpm",
+              "steeringWheelAngle"
+            ]
+          },
+          "OnVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "accPedalPosition",
+              "beltStatus",
+              "driverBraking",
+              "myKey",
+              "prndl",
+              "rpm",
+              "steeringWheelAngle"
+            ]
+          },
+          "SubscribeVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "accPedalPosition",
+              "beltStatus",
+              "driverBraking",
+              "myKey",
+              "prndl",
+              "rpm",
+              "steeringWheelAngle"
+            ]
+          },
+          "UnsubscribeVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "accPedalPosition",
+              "beltStatus",
+              "driverBraking",
+              "myKey",
+              "prndl",
+              "rpm",
+              "steeringWheelAngle"
+            ]
+          }
+        }
+      },
+      "Notifications": {
+        "user_consent_prompt": "Notifications",
+        "rpcs": {
+          "Alert": {
+            "hmi_levels": [
+              "BACKGROUND"
+            ]
+          }
+        }
+      },
+      "VehicleInfo-3": {
+        "user_consent_prompt": "VehicleInfo",
+        "rpcs": {
+          "GetVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "OnVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "SubscribeVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "UnsubscribeVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          }
+        }
+      },
+      "Location-1": {
+        "user_consent_prompt": "Location",
+        "rpcs": {
+          "GetVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "gps",
+              "speed"
+            ]
+          },
+          "OnVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "gps",
+              "speed"
+            ]
+          },
+          "SubscribeVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "gps",
+              "speed"
+            ]
+          },
+          "UnsubscribeVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "gps",
+              "speed"
+            ]
+          }
+        }
+      },
+      "PropriataryData-1": {
+        "rpcs": {
+          "DiagnosticMessage": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "GetDTCs": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "ReadDID": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          }
+        }
+      },
+      "Emergency-1": {
+        "rpcs": {
+          "GetVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "airbagStatus",
+              "bodyInformation",
+              "clusterModeStatus",
+              "deviceStatus",
+              "eCallInfo",
+              "emergencyEvent"
+            ]
+          },
+          "OnVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "airbagStatus",
+              "bodyInformation",
+              "clusterModeStatus",
+              "deviceStatus",
+              "eCallInfo",
+              "emergencyEvent"
+            ]
+          },
+          "SubscribeVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "airbagStatus",
+              "bodyInformation",
+              "clusterModeStatus",
+              "deviceStatus",
+              "eCallInfo",
+              "emergencyEvent"
+            ]
+          },
+          "UnsubscribeVehicleData": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ],
+            "parameters": [
+              "airbagStatus",
+              "bodyInformation",
+              "clusterModeStatus",
+              "deviceStatus",
+              "eCallInfo",
+              "emergencyEvent"
+            ]
+          }
+        }
+      },
+      "Navigation-1": {
+        "rpcs": {
+          "AlertManeuver": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "ShowConstantTBT": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          },
+          "UpdateTurnList": {
+            "hmi_levels": [
+              "BACKGROUND",
+              "FULL",
+              "LIMITED"
+            ]
+          }
+        }
+      },
+      "DataConsent-2": {
+        "user_consent_prompt": "DataConsent",
+        "rpcs": null
+      }
+    },
+    "consumer_friendly_messages": {
+      "version": "001.001.015",
+      "messages": {
+        "AppPermissions": {
+          "languages": {
+            "de-de": {
+              "tts": "%appName% benötigt die folgenden Fahrzeuginformationen und Zugriffsberechtigungen: %functionalGroupLabels%. Wenn Sie Ja drücken, erklären Sie sich damit einverstanden, dass %vehicleMake% nicht für Schäden oder Verletzungen der Privatsphäre haftet, die im Zusammenhang mit der Nutzung Ihrer Benutzerdaten durch %appName% entstehen. Mit Ja stimmen Sie zu; mit Nein lehnen Sie ab.",
+              "line1": "Zugriffsanfrage(n)",
+              "line2": "erlauben?"
+            },
+            "en-au": {
+              "tts": "%appName% is requesting the use of the following vehicle information and permissions: %functionalGroupLabels%. If you press Yes, you agree that %vehicleMake% will not be liable for any damages or loss of privacy related to %appName%'s use of your data. Please press Yes to allow or No to deny.",
+              "line1": "Grant requested",
+              "line2": "permission(s)?"
+            },
+            "en-gb": {
+              "tts": "%appName% is requesting the use of the following vehicle information and permissions: %functionalGroupLabels%. If you press Yes, you agree that %vehicleMake% will not be liable for any damages or loss of privacy related to %appName%'s use of your data. Please press Yes to allow or No to deny.",
+              "line1": "Grant requested",
+              "line2": "permission(s)?"
+            },
+            "en-ie": {
+              "tts": "%appName% is requesting the use of the following vehicle information and permissions: %functionalGroupLabels%. If you press Yes, you agree that %vehicleMake% will not be liable for any damages or loss of privacy related to %appName%'s use of your data. Please press Yes to allow or No to deny.",
+              "line1": "Grant requested",
+              "line2": "permission(s)?"
+            },
+            "en-us": {
+              "tts": "%appName% is requesting the use of the following vehicle information and permissions: %functionalGroupLabels%. If you press yes, you agree that %vehicleMake% will not be liable for any damages or loss of privacy related to %appName%'s use of your data. Please press yes to allow or no to deny.",
+              "line1": "Grant Requested",
+              "line2": "Permission(s)?"
+            },
+            "es-en": {
+              "tts": "%appName% solicita el uso de la siguiente información y permisos del vehículo: %functionalGroupLabels%. Si presiona Sí, acepta que %vehicleMake% no se hará responsable por los daños o pérdidas de privacidad relacionados con el uso que %appName% haga de sus datos. Presione Sí para permitir y No para denegar.",
+              "line1": "¿Otorgar permiso(s)",
+              "line2": "solicitado(s)?"
+            },
+            "es-es": {
+              "tts": "%appName% está solicitando el uso de los siguientes permisos e información del vehículo: %functionalGroupLabels%. Si pulsa sí, acepta que %vehicleMake% no será responsable de los daños o la pérdida de privacidad relacionados con el uso de sus datos por parte de %appName%. Pulse sí para permitir o no para denegar.",
+              "line1": "¿Conceder permisos",
+              "line2": "solicitados?"
+            },
+            "es-mx": {
+              "tts": "%appName% solicita el uso de la siguiente información y permisos del vehículo: %functionalGroupLabels%. Si presiona Sí, acepta que %vehicleMake% no se hará responsable por los daños o pérdidas de privacidad relacionados con el uso que %appName% haga de sus datos. Presione Sí para permitir y No para denegar.",
+              "line1": "¿Otorgar permiso(s)",
+              "line2": "solicitado(s)?"
+            },
+            "fr-ca": {
+              "tts": "%appName% demande d’utiliser les informations du véhicule et les permissions suivantes : %functionalGroupLabels%. Si vous appuyez sur Oui, vous acceptez que %vehicleMake% ne sera pas responsable des dommages ou des pertes de confidentialité reliées à l’utilisation de vos données par %appName%. Veuillez appuyer sur Oui pour autoriser ou sur Non pour refuser.",
+              "line1": "Accorder permission(s)",
+              "line2": "demandée(s)"
+            },
+            "fr-fr": {
+              "tts": "%appName% demande d’utiliser les informations du véhicule et les permissions suivantes : %functionalGroupLabels%. Si vous appuyez sur Oui, vous acceptez que %vehicleMake% ne sera pas responsable des dommages ou des pertes de confidentialité reliées à l’utilisation de vos données par %appName%. Veuillez appuyer sur Oui pour autoriser ou sur Non pour refuser.",
+              "line1": "Accorder permission(s)",
+              "line2": "demandée(s)"
+            },
+            "it-it": {
+              "tts": "%appName% richiede l'uso delle seguenti informazioni e autorizzazioni sul veicolo: %functionalGroupLabels%. Se si preme Sì, si acconsente che %vehicleMake% non sarà responsabile per danni o perdita di privacy in relazione all'impiego dei dati da parte di %appName%. Premere Sì per consentire e No per negare.",
+              "line1": "Concedi autorizzaz.",
+              "line2": "richiesta(e)?"
+            },
+            "nl-nl": {
+              "tts": "%appName% vraagt gebruikmaking van de volgende voertuiginformatie en toestemmingen aan: %functionalGroupLabels%. Als u op Ja drukt, gaat u ermee akkoord dat %vehicleMake% in geen geval aansprakelijk gesteld kan worden voor schade of verlies van privacy als gevolg van het feit dat %appName% gebruik maakt van uw gegevens. Druk op Ja om dit toe te staan of Nee om te weigeren.",
+              "line1": "Aangevraagde",
+              "line2": "permissie(s) verlenen?"
+            },
+            "pl-pl": {
+              "tts": "%appName% wymaga następujących informacji o pojeździe oraz pozwoleń: %functionalGroupLabels%. Naciśnięcie TAK oznacza zgodę na fakt, iż %vehicleMake% nie będzie ponosić odpowiedzialności za szkody ani utratę prywatności w związku z wykorzystaniem przez %appName% danych, należących do użytkownika. Naciśnij TAK w celu udzielenia zgody lub NIE w celu odrzucenia żądania.",
+              "line1": "Udzielić żądanych",
+              "line2": "pozwoleń?"
+            },
+            "pt-br": {
+              "tts": "%appName% está solicitando o uso das seguintes informações e permissões do veículo: %functionalGroupLabels%. Se pressionar sim, você concorda que a %vehicleMake% não será responsável por danos ou perdas de privacidade relacionados ao uso dos seus dados por %appName%. Pressione sim para permitir ou não para negar.",
+              "line1": "Conceder permissão",
+              "line2": "solicitada?"
+            },
+            "pt-pt": {
+              "tts": "%appName% está a solicitar a utilização das seguintes informações e permissões do veículo: %functionalGroupLabels%. Se premir “Sim”, concorda que %vehicleMake% não será responsável por quaisquer danos ou perda de privacidade relacionada com a utilização dos seus dados por parte de %appName%. Prima “Sim” para permitir ou “Não” para recusar.",
+              "line1": "Conceder permiss.",
+              "line2": "solicitada(s)?"
+            },
+            "ru-ru": {
+              "tts": "%appName% запрашивает следующую информацию об автомобиле и разрешения: %functionalGroupLabels%. Нажатием \"\"да\"\", Вы соглашаетесь, что %vehicleMake% не будет нести ответственность за какие-либо убытки или потерю прайвеси, связанные с использованием Ваших данных компанией %appName%. Нажмите \"\"Да\"\", если Вы согласны, или \"\"Нет\"\" - если не согласны.",
+              "line1": "Предост. заправш.",
+              "line2": "разрешения?"
+            },
+            "sv-se": {
+              "tts": "%appName% begär att få tillgång till följande fordonsinformation och tillstånd: %functionalGroupLabels%. Om du trycker Ja godkänner du att %vehicleMake% ska hållas skadeslös för alla skador som kan uppstå eller eventuella integritetsintrång som uppstår när %appName% använder dina data. Tryck Ja för att godkänna eller Nej för att neka.",
+              "line1": "Vill du ge",
+              "line2": "tillstånd?"
+            },
+            "tr-tr": {
+              "tts": "%appName%, şu araç bilgilerini ve izinleri kullanma isteğinde bulunuyor: %functionalGroupLabels%. Evet'e basarsanız, %appName%'in verilerinizi kullanması sonucunda oluşabilecek hasarlardan veya gizlilik kaybından %vehicleMake%'in sorumlu olmayacağını kabul etmiş olacaksınız. Lütfen kabul etmek için Evet'e veya reddetmek için Hayır'a basın.",
+              "line1": "İstenen izinler",
+              "line2": "verilsin mi?"
+            },
+            "zh-cn": {
+              "tts": "%appName% 正在请求使用下列车辆信息和权限: %functionalGroupLabels%。如果您按“是”,则表示您同意。 %vehicleMake% 将不会对因 %appName% 使用您的数据而引起的任何损毁或隐私损失负责。 请按“是”允许或按“否”拒绝。",
+              "line1": "是否允许请求的",
+              "line2": "权限?"
+            },
+            "zh-tw": {
+              "tts": "%appName% 正請求使用 %functionalGroupLabels% 的車輛資訊和許可。按「是」,表示您同意,如因 %appName% 使用您的資料導致任何損害或損失,%vehicleMake% 將不負賠償責任。同意請按「是」,拒絕請按「否」。",
+              "line1": "允許",
+              "line2": "授權請求?"
+            }
+          }
+        },
+        "AppPermissionsHelp": {
+          "languages": {
+            "de-de": {
+              "tts": "%appName% fordert folgende Fahrzeuginformationen und Zugriffsberechtigungen: %functionalGroupLabels%. Im Einstellungsmenü der mobilen Apps können Sie diese Berechtigungen ändern und sich detaillierte Beschreibungen anhören. Mit Ja stimmen Sie zu; mit Nein lehnen Sie ab."
+            },
+            "en-au": {
+              "tts": "%appName% is requesting the following vehicle information and permissions: %functionalGroupLabels%. You can change these permissions and hear detailed descriptions in the mobile apps settings menu. Please press Yes to grant permissions or No to deny."
+            },
+            "en-gb": {
+              "tts": "%appName% is requesting the following vehicle information and permissions: %functionalGroupLabels%. You can change these permissions and hear detailed descriptions in the mobile apps settings menu. Please press Yes to grant permissions or No to deny."
+            },
+            "en-ie": {
+              "tts": "%appName% is requesting the following vehicle information and permissions: %functionalGroupLabels%. You can change these permissions and hear detailed descriptions in the mobile apps settings menu. Please press Yes to grant permissions or No to deny."
+            },
+            "en-us": {
+              "tts": "%appName% is requesting the following vehicle information and permissions: %functionalGroupLabels%. You can change these permissions and hear detailed descriptions in the mobile apps settings menu. Please press yes to grant permissions or no to deny."
+            },
+            "es-en": {
+              "tts": "%appName% solicita la siguiente información y permisos del vehículo: %functionalGroupLabels%. Puede cambiar estos permisos y consultar descripciones detalladas en el menú de configuración de las aplicaciones móviles. Presione Sí para otorgar permisos y No para denegar."
+            },
+            "es-es": {
+              "tts": "%appName% está solicitando los siguientes permisos e información del vehículo: %functionalGroupLabels%. Puede cambiar estos permisos y escuchar descripciones detalladas en el menú de configuración de la aplicación móvil. Pulse sí para conceder el permiso o no para denegarlo."
+            },
+            "es-mx": {
+              "tts": "%appName% solicita la siguiente información y permisos del vehículo: %functionalGroupLabels%. Puede cambiar estos permisos y consultar descripciones detalladas en el menú de configuración de las aplicaciones móviles. Presione Sí para otorgar permisos y No para denegar."
+            },
+            "fr-ca": {
+              "tts": "%appName% demande d’utiliser les informations du véhicule et les permissions suivantes : %functionalGroupLabels%. Vous pouvez modifier ces permissions et entendre les descriptions détaillées dans le menu des réglages des applications mobiles. Veuillez appuyer sur Oui pour accorder les permissions ou sur Non pour refuser."
+            },
+            "fr-fr": {
+              "tts": "%appName% demande d’utiliser les informations du véhicule et les permissions suivantes : %functionalGroupLabels%. Vous pouvez modifier ces permissions et entendre les descriptions détaillées dans le menu des réglages des applications mobiles. Veuillez appuyer sur Oui pour accorder les permissions ou sur Non pour refuser."
+            },
+            "it-it": {
+              "tts": "%appName% richiede le seguenti informazioni e autorizzazioni riguardo il veicolo: %functionalGroupLabels%. È possibile modificare tali autorizzazioni e ascoltare descrizioni dettagliate nel menu impostazioni delle app mobili. Premere Sì per concedere le autorizzazioni e No per negarle."
+            },
+            "nl-nl": {
+              "tts": "%appName% vraagt gebruikmaking van de volgende voertuiginformatie en toestemmingen aan: %functionalGroupLabels%. U kunt deze toestemmingen wijzigen en gedetailleerde beschrijvingen beluisteren in het instellingenmenu voor mobiele apps. Druk op Ja om permissies te verlenen of op Nee om te weigeren."
+            },
+            "pl-pl": {
+              "tts": "%appName% wymaga następujących informacji o pojeździe oraz zezwoleń: %functionalGroupLabels%. W menu ustawień aplikacji mobilnych można zmienić owe zezwolenia i usłyszeć ich szczegółowy opis. Naciśnij TAK, aby wyrazić zgodę lub NIE w celu odrzucenia żądania."
+            },
+            "pt-br": {
+              "tts": "%appName% está solicitando as seguintes informações e permissões do veículo: %functionalGroupLabels%. Você pode alterar estas permissões e ouvir descrições detalhadas no menu de configurações de aplicativos móveis. Pressione sim para conceder as permissões ou não para negar."
+            },
+            "pt-pt": {
+              "tts": "%appName% está a solicitar as seguintes informações e permissões do veículo: %functionalGroupLabels%. Pode alterar estas permissões e ouvir descrições detalhadas no menu de definições das aplicações móveis. Prima \"\"Sim\"\" para permitir ou \"\"Não\"\" para recusar."
+            },
+            "ru-ru": {
+              "tts": "%appName% запрашивает следующую информацию об автомобиле и разрешения: %functionalGroupLabels%. Вы можете изменить эти разрешения и прослушать подробные их описания в меню настроек мобильного приложения. Нажмите \"\"да\"\", чтобы предоставить разрешения, или \"\"нет\"\", чтобы не предоставлять."
+            },
+            "sv-se": {
+              "tts": "%appName% begär tillgång till följande fordonsinformation och tillstånd: %functionalGroupLabels%. Du kan ändra tillstånden och höra detaljerade beskrivningar i menyn för mobilappsinställningar. Tryck Ja för att ge tillstånd eller Nej för att neka."
+            },
+            "tr-tr": {
+              "tts": "%appName%, şu araç bilgilerini ve izinleri istiyor: %functionalGroupLabels%. Bu izinleri değiştirebilir ve mobil uygulamalar ayarlar menüsünden ayrıntılı açıklamaları dinleyebilirsiniz. Lütfen izin vermek için Evet'e veya reddetmek için Hayır'a basın."
+            },
+            "zh-cn": {
+              "tts": "%appName% 正在请求下列车辆信息和权限: %functionalGroupLabels%。您可在移动应用程序设置菜单中更改这些权限,并听取详细说明。请按“是”允许权限或按“否”拒绝。"
+            },
+            "zh-tw": {
+              "tts": "%appName% 正請求使用 %functionalGroupLabels% 的車輛資訊和許可。您可在行動應用程式設定清單中更改這些許可,並聆聽詳細說明。給予許可請按「是」,拒絕請按「否」。"
+            }
+          }
+        },
+        "AppPermissionsRevoked": {
+          "languages": {
+            "de-de": {
+              "tts": "Die Autorisierungsdaten der App wurden geändert. %appName% hat keinen Zugriff auf %functionalGroupLabels% mehr. Installieren Sie die neueste Version der App auf Ihrem Gerät.."
+            },
+            "en-au": {
+              "tts": "App authorizations have changed. %appName% can no longer access %functionalGroupLabels%. Please ensure you have the most recent app version installed on your mobile device."
+            },
+            "en-gb": {
+              "tts": "App authorizations have changed. %appName% can no longer access %functionalGroupLabels%. Please ensure you have the most recent app version installed on your mobile device."
+            },
+            "en-ie": {
+              "tts": "App authorizations have changed. %appName% can no longer access %functionalGroupLabels%. Please ensure you have the most recent app version installed on your mobile device."
+            },
+            "en-us": {
+              "tts": "App authorizations have changed. %appName% can no longer access %functionalGroupLabels%. Please ensure you have the most recent app version installed on your mobile device."
+            },
+            "es-en": {
+              "tts": "Las autorizaciones de la aplicación han cambiado. %appName% ya no puede acceder a %functionalGroupLabels%. Asegúrese de haber instalado la versión más reciente de la aplicación en su dispositivo móvil."
+            },
+            "es-es": {
+              "tts": "Las autorizaciones de la aplicación han cambiado. %appName% ya no puede acceder a %functionalGroupLabels%. Asegúrese de que tiene la versión más reciente de la aplicación instalada en su dispositivo móvil."
+            },
+            "es-mx": {
+              "tts": "Las autorizaciones de la aplicación han cambiado. %appName% ya no puede acceder a %functionalGroupLabels%. Asegúrese de haber instalado la versión más reciente de la aplicación en su dispositivo móvil."
+            },
+            "fr-ca": {
+              "tts": "Les autorisations pour app ont changé. %appName% ne peut plus accéder à %functionalGroupLabels%. Veuillez vous assurer que la plus récente version de l’application est installée sur votre appareil mobile."
+            },
+            "fr-fr": {
+              "tts": "Les autorisations pour app ont changé. %appName% ne peut plus accéder à %functionalGroupLabels%. Veuillez vous assurer que la plus récente version de l’application est installée sur votre appareil mobile."
+            },
+            "it-it": {
+              "tts": "Le autorizzazioni dell'app sono cambiate. %appName% non è più in grado di accedere a %functionalGroupLabels%. Assicurarsi di avere la versione più recente dell'app installata sul dispositivo mobile."
+            },
+            "nl-nl": {
+              "tts": "De app-autorisaties zijn gewijzigd. %appName% heeft geen toegang meer tot %functionalGroupLabels%. Zorg ervoor dat u de meest recente app-versie op uw mobiele apparaat geïnstalleerd hebt."
+            },
+            "pl-pl": {
+              "tts": "Dane dostępu aplikacji zostały zmienione. %appName% nie ma już dostępu do %functionalGroupLabels%. Sprawdź, czy na telefonie komórkowym zainstalowano najnowszą wersję aplikacji."
+            },
+            "pt-br": {
+              "tts": "As autorizações dos aplicativos foram alteradas. %appName% não pode mais acessar %functionalGroupLabels%. Certifique-se de que a versão mais recente do aplicativo está instalada no seu dispositivo móvel."
+            },
+            "pt-pt": {
+              "tts": "As autorizações das aplicações mudaram. %appName% já não consegue aceder a %functionalGroupLabels%. Certifique-se de que tem a última versão da aplicação no seu dispositivo móvel."
+            },
+            "ru-ru": {
+              "tts": "Авторизации приложения изменены. %appName% больше не имеет доступа к %functionalGroupLabels%. Убедитесь, что на вашем мобильном устройстве установлена самая новая версия приложения."
+            },
+            "sv-se": {
+              "tts": "Appens behörigheter har ändrats. %appName% har inte längre åtkomst till %functionalGroupLabels%. Kontrollera att du har installerat den senaste versionen av appen på mobilenheten."
+            },
+            "tr-tr": {
+              "tts": "Uygulama yetkileri değişti. %appName% artık %functionalGroupLabels%'e erişemeyecek. Lütfen mobil aygıtınızda en son uygulama sürümünün yüklü olduğundan emin olun."
+            },
+            "zh-cn": {
+              "tts": "应用程序授权已变更。 %appName% 将不能再访问 %functionalGroupLabels%。 请确认您的移动设备上安装的应用程序是最新版本。"
+            },
+            "zh-tw": {
+              "tts": "應用程式授權已改變。%appName% 已無法進入 %functionalGroupLabels%。請確認您的行動裝置上安裝了最新版應用程式。"
+            }
+          }
+        },
+        "AppUnauthorized": {
+          "languages": {
+            "de-de": {
+              "tts": "Diese Version von %appName% ist nicht autorisiert und wird nicht mit SYNC funktionieren.",
+              "line1": "nicht autorisiert"
+            },
+            "en-au": {
+              "tts": "This version of %appName% is not authorized and will not work with SYNC.",
+              "line1": "not authorized"
+            },
+            "en-gb": {
+              "tts": "This version of %appName% is not authorized and will not work with SYNC.",
+              "line1": "not authorized"
+            },
+            "en-ie": {
+              "tts": "This version of %appName% is not authorized and will not work with SYNC.",
+              "line1": "not authorized"
+            },
+            "en-us": {
+              "tts": "This version of %appName% is not authorized and will not work with SYNC.",
+              "line1": "Not Authorized"
+            },
+            "es-en": {
+              "tts": "Esta versión de %appName% no tiene autorización y no funcionará con SYNC.",
+              "line1": "no autorizada"
+            },
+            "es-es": {
+              "tts": "Esta versión de %appName% no está autorizada y no funcionará con SYNC.",
+              "line1": "No autorizada"
+            },
+            "es-mx": {
+              "tts": "Esta versión de %appName% no tiene autorización y no funcionará con SYNC.",
+              "line1": "no autorizada"
+            },
+            "fr-ca": {
+              "tts": "Cette version de %appName% n’est pas autorisée et ne fonctionnera pas avec SYNC.",
+              "line1": "non autorisée"
+            },
+            "fr-fr": {
+              "tts": "Cette version de %appName% n’est pas autorisée et ne fonctionnera pas avec SYNC.",
+              "line1": "non autorisée"
+            },
+            "it-it": {
+              "tts": "Questa versione di %appName% non è autorizzata e non funziona con il SYNC.",
+              "line1": "non autorizzata"
+            },
+            "nl-nl": {
+              "tts": "Deze versie van %appName% is niet geautoriseerd en werkt niet met SYNC.",
+              "line1": "niet geautoriseerd"
+            },
+            "pl-pl": {
+              "tts": "Niniejsza wersja %appName% nie posiada autoryzacji i nie będzie działać z SYNC.",
+              "line1": "brak autoryzacji"
+            },
+            "pt-br": {
+              "tts": "Esta versão do %appName% não tem autorização e não funcionará com o SYNC.",
+              "line1": "não autorizado"
+            },
+            "pt-pt": {
+              "tts": "Esta versão de %appName% não está autorizada e não funcionará com o SYNC.",
+              "line1": "não autorizada"
+            },
+            "ru-ru": {
+              "tts": "Эта версия %appName% не авторизирована и не будет работать с SYNC.",
+              "line1": "не авторизировано"
+            },
+            "sv-se": {
+              "tts": "Den här versionen av %appName% är inte godkänd och fungerar inte med SYNC.",
+              "line1": "är ej godkänd"
+            },
+            "tr-tr": {
+              "tts": "Bu %appName% sürümüne izin verilmediğinden SYNC ile çalışamaz.",
+              "line1": "için izin yok"
+            },
+            "zh-cn": {
+              "tts": "此版本的%appName% 未得到授权,无法在SYNC上使用。",
+              "line1": "未得到授权"
+            },
+            "zh-tw": {
+              "tts": "%appName% 的版本未獲得授權,將無法透過 SYNC 使用。",
+              "line1": "無授權"
+            }
+          }
+        },
+        "AppUnsupported": {
+          "languages": {
+            "de-de": {
+              "tts": "Diese Version von %appName% wird von SYNC nicht unterstützt.",
+              "line1": "nicht unterstützt"
+            },
+            "en-au": {
+              "tts": "This version of %appName% is not supported by SYNC.",
+              "line1": "not supported"
+            },
+            "en-gb": {
+              "tts": "This version of %appName% is not supported by SYNC.",
+              "line1": "not supported"
+            },
+            "en-ie": {
+              "tts": "This version of %appName% is not supported by SYNC.",
+              "line1": "not supported"
+            },
+            "en-us": {
+              "tts": "This version of %appName% is not supported by SYNC.",
+              "line1": "Not Supported"
+            },
+            "es-en": {
+              "tts": "Esta versión de %appName% no es compatible con SYNC.",
+              "line1": "no compatible"
+            },
+            "es-es": {
+              "tts": "Esta versión de %appName% no es compatible con SYNC.",
+              "line1": "No compatible"
+            },
+            "es-mx": {
+              "tts": "Esta versión de %appName% no es compatible con SYNC.",
+              "line1": "no compatible"
+            },
+            "fr-ca": {
+              "tts": "Cette version de %appName% n’est pas prise en charge par SYNC.",
+              "line1": "incompatible"
+            },
+            "fr-fr": {
+              "tts": "Cette version de %appName% n’est pas prise en charge par SYNC.",
+              "line1": "incompatible"
+            },
+            "it-it": {
+              "tts": "Questa versione di %appName% non è supportata dal SYNC.",
+              "line1": "non supportata"
+            },
+            "nl-nl": {
+              "tts": "Deze versie van %appName% wordt niet ondersteund door SYNC.",
+              "line1": "niet ondersteund"
+            },
+            "pl-pl": {
+              "tts": "Niniejsza wersja %appName% nie jest obsługiwana przez system SYNC.",
+              "line1": "aplikacja nie obsług."
+            },
+            "pt-br": {
+              "tts": "Esta versão do %appName% não é suportada pelo SYNC.",
+              "line1": "não suportado"
+            },
+            "pt-pt": {
+              "tts": "Esta versão de %appName% não é suportado pelo SYNC.",
+              "line1": "não suportada"
+            },
+            "ru-ru": {
+              "tts": "Эта версия %appName% не поддерживается SYNC.",
+              "line1": "не поддерживается"
+            },
+            "sv-se": {
+              "tts": "SYNC har inte stöd för den här versionen av %appName%.",
+              "line1": "stöds ej"
+            },
+            "tr-tr": {
+              "tts": "Bu %appName% sürümü SYNC tarafından desteklenmiyor.",
+              "line1": "desteklenmiyor"
+            },
+            "zh-cn": {
+              "tts": "SYNC不支持此版本的%appName%。",
+              "line1": "不受支持"
+            },
+            "zh-tw": {
+              "tts": "SYNC 不支援此版本的%appName% 。",
+              "line1": "不支援"
+            }
+          }
+        },
+        "DataConsent": {
+          "languages": {
+            "en-us": {
+              "tts": "To use mobile apps with SYNC, SYNC will communicate with Ford at least once per month using your mobile device's data plan. Standard rates may apply. SYNC will send your VIN and SYNC module number to Ford U.S. Please press yes or no, or help for more information. ",
+              "line1": "Enable Mobile Apps",
+              "line2": "on SYNC? (Uses Data)"
+            }
+          }
+        },
+        "DataConsentHelp": {
+          "languages": {
+            "en-us": {
+              "tts": "Updates are about the size of an email, and the occurrence of updates depends on your vehicle usage and when a new app is found on your device. To turn on or off, visit the SYNC mobile apps settings menu. See your Owner Guide for more information. "
+            }
+          }
+        },
+        "DisableApps": {
+          "languages": {
+            "de-de": {
+              "tts": "Ausschalten der automatischen Updates führt zum Ausschalten von SYNC mobile Apps. Sie können Ihre mobilen Apps dann nicht mehr mit SYNC nutzen. Bitte drücken Sie Ja zur Bestätigung oder Nein, um abzubrechen.",
+              "line1": "Auto-Update",
+              "line2": "und Mobile Apps deaktivieren"
+            },
+            "en-au": {
+              "tts": "Disabling automatic updates will also disable SYNC mobile apps. You will not be able to use any mobile apps with SYNC. Please press Yes to confirm or No to cancel.",
+              "line1": "Disable auto-updates",
+              "line2": "and Mobile Apps?"
+            },
+            "en-gb": {
+              "tts": "Disabling automatic updates will also disable SYNC mobile apps. You will not be able to use any mobile apps with SYNC. Please press Yes to confirm or No to cancel.",
+              "line1": "Disable auto-updates",
+              "line2": "and Mobile Apps?"
+            },
+            "en-ie": {
+              "tts": "Disabling automatic updates will also disable SYNC mobile apps. You will not be able to use any mobile apps with SYNC. Please press Yes to confirm or No to cancel.",
+              "line1": "Disable auto-updates",
+              "line2": "and Mobile Apps?"
+            },
+            "en-us": {
+              "tts": "Disabling automatic updates will also disable sync mobile apps. You will not be able to use any mobile apps with SYNC. Please press yes to confirm or no to cancel.",
+              "line1": "Disable Auto-Updates",
+              "line2": "and Mobile Apps?"
+            },
+            "es-en": {
+              "tts": "Si se desactivan las actualizaciones automáticas, también se desactivarán las aplicaciones móviles de SYNC. No podrá usar ninguna aplicación móvil con SYNC. Presione Sí para confirmar o No para cancelar.",
+              "line1": "¿Deshab. actualiz.",
+              "line2": "autom. y aplic. móv.?"
+            },
+            "es-es": {
+              "tts": "Si desactiva las actualizaciones automáticas, también se desactivará la sincronización de las aplicaciones móviles. No podrá utilizar ninguna aplicación móvil con SYNC. Pulse sí para confirmar o no para cancelar.",
+              "line1": "¿Desact. actual. auto",
+              "line2": "y apl. móviles?"
+            },
+            "es-mx": {
+              "tts": "Si se desactivan las actualizaciones automáticas, también se desactivarán las aplicaciones móviles de SYNC. No podrá usar ninguna aplicación móvil con SYNC. Presione Sí para confirmar o No para cancelar.",
+              "line1": "¿Deshab. actualiz.",
+              "line2": "autom. y aplic. móv.?"
+            },
+            "fr-ca": {
+              "tts": "La désactivation des mises à jour automatiques désactivera aussi les applications mobiles SYNC. Vous ne pourrez pas utiliser d’application mobile avec SYNC. Veuillez appuyer sur Oui pour confirmer ou sur Non pour annuler.",
+              "line1": "Désactiver màj autom.",
+              "line2": "et app. mobiles?"
+            },
+            "fr-fr": {
+              "tts": "La désactivation des mises à jour automatiques désactivera aussi les applications mobiles SYNC. Vous ne pourrez pas utiliser d’application mobile avec SYNC. Veuillez appuyer sur Oui pour confirmer ou sur Non pour annuler.",
+              "line1": "Désactiver màj autom.",
+              "line2": "et app. mobiles?"
+            },
+            "it-it": {
+              "tts": "Disabilitando gli aggiornamenti automatici si disattiva anche la sincronizzazione delle app mobili. Non sarà possibile usare app mobili con il SYNC. Premere Sì per confermare e No per cancellare.",
+              "line1": "Disabilitare agg. aut.",
+              "line2": "e app mobili?"
+            },
+            "nl-nl": {
+              "tts": "Door automatische updates uit te schakelen, schakelt u ook SYNC-mobiele apps uit. U kunt dan geen mobiele apps meer gebruiken met SYNC. Druk op Ja om te bevestigen of op Nee om te annuleren.",
+              "line1": "Auto-updates en mob.",
+              "line2": "apps uitschakelen?"
+            },
+            "pl-pl": {
+              "tts": "Wyłączenie automatycznych aktualizacji spowoduje także wyłączenie aplikacji mobilnych SYNC. Korzystanie z mobilnych aplikacji za pomocą SYNC będzie niemożliwe. Naciśnij TAK, by potwierdzić lub NIE, by anulować.",
+              "line1": "Wył. automat. aktual.",
+              "line2": "i aplikacje mobilne?"
+            },
+            "pt-br": {
+              "tts": "Se as atualizações automáticas forem desativadas, os aplicativos também serão desativados. Você não poderá usar nenhum aplicativo com o SYNC. Pressione sim para confirmar ou não para cancelar.",
+              "line1": "Desativar atualizações",
+              "line2": "autom. e aplicativos?"
+            },
+            "pt-pt": {
+              "tts": "A desactivação das actualizações automáticas desactiva igualmente as aplicações móveis do SYNC. Não poderá utilizar quaisquer aplicações móveis com o SYNC. Prima \"\"Sim\"\" para confirmar ou \"\"Não\"\" para cancelar.",
+              "line1": "Desact. actual. autom.",
+              "line2": "e aplicações móveis?"
+            },
+            "ru-ru": {
+              "tts": "При отключении автоматических обновлений также будут отключены мобильные приложения sync. Вы не сможете использовать какие-либо мобильные приложения с SYNC. Нажмите \"\"Да\"\" для подтверждения или \"\"Нет\"\" для отмены.",
+              "line1": "Откл. автообновления",
+              "line2": "и мобил. прилож.?"
+            },
+            "sv-se": {
+              "tts": "Om du avaktiverar automatisk uppdatering avaktiverar du även synkning av mobilappar. Du kommer inte längre att kunna använda dina mobilappar med SYNC. Tryck Ja för att bekräfta eller Nej för att avbryta.",
+              "line1": "Avaktiverar autouppdat.",
+              "line2": "och mobilappar?"
+            },
+            "tr-tr": {
+              "tts": "Otomatik güncellemeleri devre dışı bırakırsanız sync mobil uygulamalar da devre dışı kalır. SYNC ile mobil uygulama kullanmanız mümkün olmaz. Lütfen onaylamak için Evet'e veya iptal etmek için Hayır'a basın.",
+              "line1": "Oto. güncelleme ve",
+              "line2": "mobil uygul. kapat?"
+            },
+            "zh-cn": {
+              "tts": "禁用自动更新同时也会禁用SYNC移动应用程序。您将无法在 SYNC 中使用任何移动应用程序。请按“是”确认或按“否”取消。",
+              "line1": "是否禁用自动更新和",
+              "line2": "移动应用程序?"
+            },
+            "zh-tw": {
+              "tts": "停用自動更新也將停用 sync 行動應用程式。您將無法透過 SYNC 使用任何行動應用程式。確認請按「是」,取消請按「否」。",
+              "line1": "停用自動更新",
+              "line2": "和行動應用程式?"
+            }
+          }
+        },
+        "DrivingCharacteristics": {
+          "languages": {
+            "de-de": {
+              "tts": "Eine App hat Zugriff auf die folgenden Fahreigenschaften: Kraftstoffverbrauch, MyKey, Sicherheitsgurtstatus.",
+              "label": "Fahreigenschaften"
+            },
+            "en-au": {
+              "tts": "An app can access the following driving characteristics: Fuel consumption, MyKey, Seat belt status.",
+              "label": "Driving characteristics"
+            },
+            "en-gb": {
+              "tts": "An app can access the following driving characteristics: Fuel consumption, MyKey, Seat belt status.",
+              "label": "Driving characteristics"
+            },
+            "en-ie": {
+              "tts": "An app can access the following driving characteristics: Fuel consumption, MyKey, Seat belt status.",
+              "label": "Driving characteristics"
+            },
+            "en-us": {
+              "tts": "An app can access the following driving characteristics: Fuel Consumption, MyKey, Seat Belt Status.",
+              "label": "Driving Characteristics"
+            },
+            "es-en": {
+              "tts": "Las aplicaciones pueden acceder a las siguientes características del manejo: Consumo de combustible, MyKey, Estado del cinturón de seguridad.",
+              "label": "Características del manejo"
+            },
+            "es-es": {
+              "tts": "Una aplicación puede acceder a las siguientes características de conducción: Consumo de combustible, MyKey, Estado cinturones de seguridad.",
+              "label": "Características de conducción"
+            },
+            "es-mx": {
+              "tts": "Las aplicaciones pueden acceder a las siguientes características del manejo: Consumo de combustible, MyKey, Estado del cinturón de seguridad.",
+              "label": "Características del manejo"
+            },
+            "fr-ca": {
+              "tts": "Une application peut accéder aux caractéristiques de conduite suivantes: Consommation de carburant, MyKey, État des ceintures de sécurité.",
+              "label": "Caractéristiques de conduite"
+            },
+            "fr-fr": {
+              "tts": "Une application peut accéder aux caractéristiques de conduite suivantes: Consommation de carburant, MyKey, État des ceintures de sécurité.",
+              "label": "Caractéristiques de conduite"
+            },
+            "it-it": {
+              "tts": "Un'app può avere accesso alle seguenti caratteristiche di guida: Consumo carburante, MyKey, Stato cinture di sicurezza.",
+              "label": "Caratteristiche di guida"
+            },
+            "nl-nl": {
+              "tts": "Een app heeft toegang tot de volgende rijkenmerken: Brandstofverbruik, MyKey, Veiligheidsgordelstatus.",
+              "label": "Rijkenmerken"
+            },
+            "pl-pl": {
+              "tts": "Aplikacja może uzyskać dostęp do następujących informacji dotyczących jazdy: Zużycie paliwa, MyKey, Stan pasów bezpieczeństwa.",
+              "label": "Informacje dotyczące stylu jazdy"
+            },
+            "pt-br": {
+              "tts": "Um aplicativo pode acessar as seguintes características de condução: Consumo de combustível, MyKey, Estado do cinto de segurança.",
+              "label": "Características de condução"
+            },
+            "pt-pt": {
+              "tts": "Uma aplicação consegue aceder às seguintes informações de condução: Consumo de combustível, MyKey, Estado dos cintos de segurança.",
+              "label": "Características de condução"
+            },
+            "ru-ru": {
+              "tts": "Приложение имеет доступ к следующим характеристикам движения: Расход топлива, MyKey, Состояние ремней безопасности.",
+              "label": "Характеристики движения"
+            },
+            "sv-se": {
+              "tts": "Appen kan komma åt följande köregenskaper: Bränsleförbrukning, MyKey, Bältesstatus.",
+              "label": "Köregenskaper"
+            },
+            "tr-tr": {
+              "tts": "Bir uygulama şu sürüş karakteristiklerine erişebilir: Yakıt tüketimi, MyKey, Emniyet kemeri durumu.",
+              "label": "Sürüş karakteristikleri"
+            },
+            "zh-cn": {
+              "tts": "移动应用程序可访问下列行驶特性: 油耗, MyKey, 安全带状态",
+              "label": "行驶特性"
+            },
+            "zh-tw": {
+              "tts": "應用程式可存取以下駕駛特性: 油耗, MyKey, 安全帶狀態",
+              "label": "駕駛特性"
+            }
+          }
+        },
+        "Location": {
+          "languages": {
+            "de-de": {
+              "tts": "Eine App hat Zugriff auf die GPS-Daten und die Geschwindigkeit des Fahrzeugs.",
+              "label": "GPS und Geschwindigkeit"
+            },
+            "en-au": {
+              "tts": "An app can access vehicle GPS and speed.",
+              "label": "GPS and speed"
+            },
+            "en-gb": {
+              "tts": "An app can access vehicle GPS and speed.",
+              "label": "GPS and speed"
+            },
+            "en-ie": {
+              "tts": "An app can access vehicle GPS and speed.",
+              "label": "GPS and speed"
+            },
+            "en-us": {
+              "tts": "An app can access vehicle GPS and speed.",
+              "label": "GPS and speed"
+            },
+            "es-en": {
+              "tts": "Las aplicaciones pueden acceder al GPS y a la velocidad del vehículo.",
+              "label": "GPS y velocidad"
+            },
+            "es-es": {
+              "tts": "Una aplicación puede acceder al GPS y la velocidad del vehículo.",
+              "label": "GPS y velocidad"
+            },
+            "es-mx": {
+              "tts": "Las aplicaciones pueden acceder al GPS y a la velocidad del vehículo.",
+              "label": "GPS y velocidad"
+            },
+            "fr-ca": {
+              "tts": "Une application peut accéder au GPS et à la vitesse du véhicule.",
+              "label": "GPS et vitesse"
+            },
+            "fr-fr": {
+              "tts": "Une application peut accéder au GPS et à la vitesse du véhicule.",
+              "label": "GPS et vitesse"
+            },
+            "it-it": {
+              "tts": "Un'app può avere accesso a GPS e velocità del veicolo.",
+              "label": "GPS e velocità"
+            },
+            "nl-nl": {
+              "tts": "Een app heeft toegang tot gps en de snelheid van het voertuig.",
+              "label": "Gps en snelheid"
+            },
+            "pl-pl": {
+              "tts": "Aplikacja może uzyskać dostęp do modułu GPS i prędkości pojazdu.",
+              "label": "GPS i prędkość"
+            },
+            "pt-br": {
+              "tts": "Um aplicativo pode acessar o GPS e a velocidade do veículo.",
+              "label": "GPS e velocidade"
+            },
+            "pt-pt": {
+              "tts": "Uma aplicação consegue aceder ao GPS e à velocidade do veículo.",
+              "label": "GPS e velocidade"
+            },
+            "ru-ru": {
+              "tts": "Приложение имеет доступ к GPS и скорости автомобиля.",
+              "label": "GPS и скорость"
+            },
+            "sv-se": {
+              "tts": "Appen kan komma åt fordonets GPS och hastighetsmätare.",
+              "label": "GPS och hastighet"
+            },
+            "tr-tr": {
+              "tts": "Bu uygulama aracın GPS ve hız bilgilerine erişebilir.",
+              "label": "GPS ve hız"
+            },
+            "zh-cn": {
+              "tts": "移动应用程序可以访问车辆 GPS 和车速信息。",
+              "label": "GPS 和车速"
+            },
+            "zh-tw": {
+              "tts": "應用程式可存取車輛的GPS和速度。",
+              "label": "GPS和車速"
+            }
+          }
+        },
+        "Notifications": {
+          "languages": {
+            "de-de": {
+              "tts": "Läuft die App im Hintergrund, kann Sie Benachrichtigungen senden.",
+              "label": "Push-Benachrichtigungen"
+            },
+            "en-au": {
+              "tts": "An app can send notifications when running in the background.",
+              "label": "Push notifications"
+            },
+            "en-gb": {
+              "tts": "An app can send notifications when running in the background.",
+              "label": "Push notifications"
+            },
+            "en-ie": {
+              "tts": "An app can send notifications when running in the background.",
+              "label": "Push notifications"
+            },
+            "en-us": {
+              "tts": "An app can send notifications when running in the background.",
+              "label": "Push notifications"
+            },
+            "es-en": {
+              "tts": "Las aplicaciones pueden enviar notificaciones cuando se ejecutan en segundo plano.",
+              "label": "Notificaciones tipo Push"
+            },
+            "es-es": {
+              "tts": "Una aplicación puede enviar notificaciones cuando se está ejecutando en segundo plano.",
+              "label": "Notificaciones push"
+            },
+            "es-mx": {
+              "tts": "Las aplicaciones pueden enviar notificaciones cuando se ejecutan en segundo plano.",
+              "label": "Notificaciones tipo Push"
+            },
+            "fr-ca": {
+              "tts": "Une application peut envoyer des avis lorsqu’elle fonctionne en arrière-plan.",
+              "label": "Notifications instantanées"
+            },
+            "fr-fr": {
+              "tts": "Une application peut envoyer des avis lorsqu’elle fonctionne en arrière-plan.",
+              "label": "Notifications push"
+            },
+            "it-it": {
+              "tts": "Un'app può inviare notifiche se eseguita in background.",
+              "label": "Notifiche push"
+            },
+            "nl-nl": {
+              "tts": "Een app kan meldingen versturen als deze op de achtergrond actief is.",
+              "label": "Push-meldingen"
+            },
+            "pl-pl": {
+              "tts": "Aplikacja może wysyłać powiadomienia, działając w tle.",
+              "label": "Powiadomienia Push"
+            },
+            "pt-br": {
+              "tts": "Um aplicativo pode enviar notificações quando estiver sendo executado em segundo plano.",
+              "label": "Notificações Push"
+            },
+            "pt-pt": {
+              "tts": "Uma aplicação consegue enviar notificações quando está activa em segundo plano.",
+              "label": "Notificações push"
+            },
+            "ru-ru": {
+              "tts": "Если приложение работает в фоновом режиме, оно может отправлять оповещения.",
+              "label": "Оповещения о пересылке"
+            },
+            "sv-se": {
+              "tts": "Appen kan skicka meddelanden när den körs i bakgrunden.",
+              "label": "Push-notiser"
+            },
+            "tr-tr": {
+              "tts": "Bir uygulama arka planda çalışırken bildirim gönderebilir.",
+              "label": "Anlık bildirimleri"
+            },
+            "zh-cn": {
+              "tts": "移动应用程序在后台运行时可推送通知。",
+              "label": "推送通知"
+            },
+            "zh-tw": {
+              "tts": "車輛行進時,應用程式可在背景中傳送通知。",
+              "label": "傳送通知"
+            }
+          }
+        },
+        "SettingDisableUpdates": {
+          "languages": {
+            "de-de": {
+              "line1": "Updates deakt."
+            },
+            "en-au": {
+              "line1": "Disable updates"
+            },
+            "en-gb": {
+              "line1": "Disable updates"
+            },
+            "en-ie": {
+              "line1": "Disable updates"
+            },
+            "en-us": {
+              "line1": "Disable Updates"
+            },
+            "es-en": {
+              "line1": "Deshab. actual."
+            },
+            "es-es": {
+              "line1": "Desact. actual."
+            },
+            "es-mx": {
+              "line1": "Deshab. actual."
+            },
+            "fr-ca": {
+              "line1": "Désactiver MAJ"
+            },
+            "fr-fr": {
+              "line1": "Désactiver màj"
+            },
+            "it-it": {
+              "line1": "Disabilita agg."
+            },
+            "nl-nl": {
+              "line1": "Upd. uitschak."
+            },
+            "pl-pl": {
+              "line1": "Wyłącz aktual."
+            },
+            "pt-br": {
+              "line1": "Desat. atualiz."
+            },
+            "pt-pt": {
+              "line1": "Desact. actualiz."
+            },
+            "ru-ru": {
+              "line1": "Откл. обновл."
+            },
+            "sv-se": {
+              "line1": "Inaktivera uppd."
+            },
+            "tr-tr": {
+              "line1": "Güncell. Kapat"
+            },
+            "zh-cn": {
+              "line1": "禁用更新"
+            },
+            "zh-tw": {
+              "line1": "停用更新"
+            }
+          }
+        },
+        "SettingEnableUpdates": {
+          "languages": {
+            "de-de": {
+              "line1": "Apps aktivieren"
+            },
+            "en-au": {
+              "line1": "Enable Apps"
+            },
+            "en-gb": {
+              "line1": "Enable Apps"
+            },
+            "en-ie": {
+              "line1": "Enable Apps"
+            },
+            "en-us": {
+              "line1": "Enable Apps"
+            },
+            "es-en": {
+              "line1": "Hab. aplic."
+            },
+            "es-es": {
+              "line1": "Activar apl."
+            },
+            "es-mx": {
+              "line1": "Hab. aplic."
+            },
+            "fr-ca": {
+              "line1": "Activer app."
+            },
+            "fr-fr": {
+              "line1": "Activer app."
+            },
+            "it-it": {
+              "line1": "Abilita app"
+            },
+            "nl-nl": {
+              "line1": "Apps inschak."
+            },
+            "pl-pl": {
+              "line1": "Włącz aplikacje"
+            },
+            "pt-br": {
+              "line1": "Ativar aplic."
+            },
+            "pt-pt": {
+              "line1": "Activar actualiz."
+            },
+            "ru-ru": {
+              "line1": "Вкл. прилож."
+            },
+            "sv-se": {
+              "line1": "Aktivera appar"
+            },
+            "tr-tr": {
+              "line1": "Uygulamaları aç"
+            },
+            "zh-cn": {
+              "line1": "启用应用程序"
+            },
+            "zh-tw": {
+              "line1": "啟用應用程式"
+            }
+          }
+        },
+        "SettingUpdateAuto": {
+          "languages": {
+            "de-de": {
+              "line1": "Update anford."
+            },
+            "en-au": {
+              "line1": "Request update"
+            },
+            "en-gb": {
+              "line1": "Request update"
+            },
+            "en-ie": {
+              "line1": "Request update"
+            },
+            "en-us": {
+              "line1": "Request Update"
+            },
+            "es-en": {
+              "line1": "Solicit. actualiz."
+            },
+            "es-es": {
+              "line1": "Solicitar actual."
+            },
+            "es-mx": {
+              "line1": "Solicit. actualiz."
+            },
+            "fr-ca": {
+              "line1": "Demander MAJ"
+            },
+            "fr-fr": {
+              "line1": "Demander màj"
+            },
+            "it-it": {
+              "line1": "Rich. aggiorn."
+            },
+            "nl-nl": {
+              "line1": "Upd. aanvragen"
+            },
+            "pl-pl": {
+              "line1": "Zażądaj aktual."
+            },
+            "pt-br": {
+              "line1": "Solicitar atualiz."
+            },
+            "pt-pt": {
+              "line1": "Solicit. actualiz."
+            },
+            "ru-ru": {
+              "line1": "Запрос на обн."
+            },
+            "sv-se": {
+              "line1": "Begär uppdat."
+            },
+            "tr-tr": {
+              "line1": "Güncelleme iste"
+            },
+            "zh-cn": {
+              "line1": "请求更新"
+            },
+            "zh-tw": {
+              "line1": "請求更新"
+            }
+          }
+        },
+        "StatusNeeded": {
+          "languages": {
+            "de-de": {
+              "line1": "Update benötigt"
+            },
+            "en-au": {
+              "line1": "Update needed"
+            },
+            "en-gb": {
+              "line1": "Update needed"
+            },
+            "en-ie": {
+              "line1": "Update needed"
+            },
+            "en-us": {
+              "line1": "Update Needed"
+            },
+            "es-en": {
+              "line1": "Actualiz. neces."
+            },
+            "es-es": {
+              "line1": "Actu. necesaria"
+            },
+            "es-mx": {
+              "line1": "Actualiz. neces."
+            },
+            "fr-ca": {
+              "line1": "Màj requise"
+            },
+            "fr-fr": {
+              "line1": "Mise à jour requise"
+            },
+            "it-it": {
+              "line1": "Necess. aggiorn."
+            },
+            "nl-nl": {
+              "line1": "Update nodig"
+            },
+            "pl-pl": {
+              "line1": "Potrzeba aktual."
+            },
+            "pt-br": {
+              "line1": "Atualiz. necess."
+            },
+            "pt-pt": {
+              "line1": "Actual. necess."
+            },
+            "ru-ru": {
+              "line1": "Необх. обновл."
+            },
+            "sv-se": {
+              "line1": "Uppdat. krävs"
+            },
+            "tr-tr": {
+              "line1": "Güncellenmeli"
+            },
+            "zh-cn": {
+              "line1": "需要进行更新"
+            },
+            "zh-tw": {
+              "line1": "需更新"
+            }
+          }
+        },
+        "StatusPending": {
+          "languages": {
+            "de-de": {
+              "line1": "Aktualisieren..."
+            },
+            "en-au": {
+              "line1": "Updating..."
+            },
+            "en-gb": {
+              "line1": "Updating..."
+            },
+            "en-ie": {
+              "line1": "Updating..."
+            },
+            "en-us": {
+              "line1": "Updating..."
+            },
+            "es-en": {
+              "line1": "Actualizando..."
+            },
+            "es-es": {
+              "line1": "Actualizando..."
+            },
+            "es-mx": {
+              "line1": "Actualizando..."
+            },
+            "fr-ca": {
+              "line1": "MAJ en cours..."
+            },
+            "fr-fr": {
+              "line1": "Màj en cours..."
+            },
+            "it-it": {
+              "line1": "Aggiornamento"
+            },
+            "nl-nl": {
+              "line1": "Updaten..."
+            },
+            "pl-pl": {
+              "line1": "Aktualizowanie"
+            },
+            "pt-br": {
+              "line1": "Atualizando..."
+            },
+            "pt-pt": {
+              "line1": "A actualizar..."
+            },
+            "ru-ru": {
+              "line1": "Обновление..."
+            },
+            "sv-se": {
+              "line1": "Uppdaterar..."
+            },
+            "tr-tr": {
+              "line1": "Güncelleniyor..."
+            },
+            "zh-cn": {
+              "line1": "正在更新......"
+            },
+            "zh-tw": {
+              "line1": "更新中..."
+            }
+          }
+        },
+        "StatusUpToDate": {
+          "languages": {
+            "de-de": {
+              "line1": "Aktuelle Version"
+            },
+            "en-au": {
+              "line1": "Up-to-date"
+            },
+            "en-gb": {
+              "line1": "Up-to-date"
+            },
+            "en-ie": {
+              "line1": "Up-to-date"
+            },
+            "en-us": {
+              "line1": "Up-To-Date"
+            },
+            "es-en": {
+              "line1": "Actualizado"
+            },
+            "es-es": {
+              "line1": "Actualizada"
+            },
+            "es-mx": {
+              "line1": "Actualizado"
+            },
+            "fr-ca": {
+              "line1": "Déjà à jour"
+            },
+            "fr-fr": {
+              "line1": "Déjà à jour"
+            },
+            "it-it": {
+              "line1": "più recente"
+            },
+            "nl-nl": {
+              "line1": "Up-to-date"
+            },
+            "pl-pl": {
+              "line1": "Aktualne"
+            },
+            "pt-br": {
+              "line1": "Atualizado"
+            },
+            "pt-pt": {
+              "line1": "Actualizado"
+            },
+            "ru-ru": {
+              "line1": "Обновлено"
+            },
+            "sv-se": {
+              "line1": "Uppdat. krävs ej"
+            },
+            "tr-tr": {
+              "line1": "Güncel"
+            },
+            "zh-cn": {
+              "line1": "最新更新"
+            },
+            "zh-tw": {
+              "line1": "更新最新"
+            }
+          }
+        },
+        "VehicleInfo": {
+          "languages": {
+            "de-de": {
+              "tts": "Eine App hat Zugriff auf die folgenden Fahrzeuginformationen: Kraftstoff-Füllstand, Kraftstoffverbrauch, Motordrehzahl, Kilometerzähler, FIN, Außentemperatur, Gangstellung, Reifenluftdruck.",
+              "label": "Fahrzeuginformationen"
+            },
+            "en-au": {
+              "tts": "An app can access the following vehicle information: Fuel level, Fuel economy, Engine RPMs, Odometer, VIN, Outside air temperature, Gear position, Tyre pressure.",
+              "label": "Vehicle information"
+            },
+            "en-gb": {
+              "tts": "An app can access the following vehicle information: Fuel level, Fuel economy, Engine RPMs, Odometer, VIN, Outside air temperature, Gear position, Tyre pressure.",
+              "label": "Vehicle information"
+            },
+            "en-ie": {
+              "tts": "An app can access the following vehicle information: Fuel level, Fuel economy, Engine RPMs, Odometer, VIN, Outside air temperature, Gear position, Tyre pressure.",
+              "label": "Vehicle information"
+            },
+            "en-us": {
+              "tts": "An app can access the following vehicle information: Fuel Level, Fuel Economy, Engine RPMs, Odometer, VIN, External Temperature, Gear Position, Tire Pressure.",
+              "label": "Vehicle information"
+            },
+            "es-en": {
+              "tts": "Las aplicaciones pueden acceder a la siguiente información del vehículo: Nivel de combustible, Economía de combustible, RPM del motor, Cuentakilómetros, Número de identificación del vehículo, Temperatura externa, Posición del cambio, Presión de los neumáticos.",
+              "label": "Información del vehículo"
+            },
+            "es-es": {
+              "tts": "Una aplicación puede acceder a la siguiente información del vehículo: Nivel de combustible, Ahorro de combustible, RPM del motor, Cuentakilómetros, VIN, Temperatura aire exterior, Marcha engranada, Presión de neumáticos.",
+              "label": "Información del vehículo"
+            },
+            "es-mx": {
+              "tts": "Las aplicaciones pueden acceder a la siguiente información del vehículo: Nivel de combustible, Economía de combustible, RPM del motor, Cuentakilómetros, Número de identificación del vehículo, Temperatura externa, Posición del cambio, Presión de los neumáticos.",
+              "label": "Información del vehículo"
+            },
+            "fr-ca": {
+              "tts": "Une application peut accéder aux informations suivantes du véhicule: Niveau de carburant, Économie de carburant, Au régime du moteur, Odomètre, NIV, Température extérieure, Position d’embrayage, Pression des pneus.",
+              "label": "Renseignements du véhicule"
+            },
+            "fr-fr": {
+              "tts": "Une application peut accéder aux informations suivantes du véhicule: Niveau de carburant, Économie de carburant, Vitesse de moteur, Compteur kilométrique, NIV, Température extérieure, Position de vitesse, Pression des pneus.",
+              "label": "Renseignements du véhicule"
+            },
+            "it-it": {
+              "tts": "Un'app può avere accesso alle seguenti informazioni del veicolo: Livello carburante, Consumi carburante, Numero giri motore, Contachilometri, VIN, Temperatura esterna, Posizione marcia, Pressione pneumatici.",
+              "label": "Informazioni sul veicolo"
+            },
+            "nl-nl": {
+              "tts": "Een app heeft toegang tot de volgende voertuiginformatie: Brandstofpeil, Brandstofverbruik, Motortoerental, Kilometerteller, VIN, Buitentemperatuur, Versnellingsstand, Bandenspanning.",
+              "label": "Voertuiginformatie"
+            },
+            "pl-pl": {
+              "tts": "Aplikacja może uzyskać dostęp do następujących informacji o pojeździe: Poziom paliwa, Zużycie paliwa, Obroty silnika, Licznik przebiegu, Numer VIN, Temperatura zewnętrzna, Aktualny bieg, Ciśnienie opon.",
+              "label": "Informacje o pojeździe"
+            },
+            "pt-br": {
+              "tts": "Um aplicativo pode acessar as seguintes informações sobre o veículo: Nível de combustível, Economia de combustível, RPM do motor, Hodômetro, VIN, Temperatura externa, Posição das marchas, Pressão dos pneus.",
+              "label": "Informações sobre o veículo"
+            },
+            "pt-pt": {
+              "tts": "Uma aplicação consegue aceder às seguintes informações do veículo: Nível de combustível, Poupança de combustível, RPM do motor, Conta-quilómetros, VIN, Temperatura exterior, Posição da mudança de velocidade, Pressão dos pneus.",
+              "label": "Informações do veículo"
+            },
+            "ru-ru": {
+              "tts": "Приложение имеет доступ к следующим данным автомобиля: Уровень топлива, Економия топлива, Число оборотов двигателя, Одометр, Номер VIN, Температура за бортом, Положение передачи, Давление шин.",
+              "label": "Информация об автомобиле"
+            },
+            "sv-se": {
+              "tts": "Appen kan komma åt följande fordonsinformation: Bränslenivå, Bränsleekonomi, Motorns varvtal, Vägmätare, VIN, Utetemperatur, Växelläge, Däcktryck.",
+              "label": "Fordonsinformation"
+            },
+            "tr-tr": {
+              "tts": "Bir uygulama şu araç bilgilerine erişebilir: Yakıt seviyesi, Yakıt ekonomisi, Motor devirleri, Kilometre sayacı, VIN, Dış sıcaklık, Vites konumu, Lastik basıncı.",
+              "label": "Araç bilgisi"
+            },
+            "zh-cn": {
+              "tts": "移动应用程序可访问下列车辆信息 : 燃油量, 燃油经济性, 发动机转速(RPM), 里程表, VIN, 车外温度, 档位, 胎压.",
+              "label": "车辆信息"
+            },
+            "zh-tw": {
+              "tts": "一個應用程式可存取以下車輛資訊 : 燃油存量, 燃油經濟性, 引擎轉速, 里程表, 車輛識別號碼, 車外溫度, 檔位, 胎壓.",
+              "label": "車輛資訊"
+            }
+          }
+        }
+      }
+    },
+    "app_policies": {
+      "default": {
+        "keep_context": false,
+        "steal_focus": false,
+        "priority": "NONE",
+        "default_hmi": "NONE",
+        "memory_kb": 300,
+        "watchdog_timer_ms": 1000,
+        "groups": [
+          "Base-4",
+          "VehicleInfo-3",
+          "PropriataryData-1"
+        ]
+      },
+      "device": {
+        "keep_context": false,
+        "steal_focus": false,
+        "priority": "NONE",
+        "default_hmi": "NONE",
+        "memory_kb": 300,
+        "watchdog_timer_ms": 1000,
+        "groups": [
+          "DataConsent-2"
+        ]
+      },
+      "pre_DataConsent": {
+        "keep_context": false,
+        "steal_focus": false,
+        "priority": "NONE",
+        "default_hmi": "NONE",
+        "memory_kb": 300,
+        "watchdog_timer_ms": 1000,
+        "groups": [
+          "pre_Base-1"
+        ]
+      }
+    }
+  }
+}
index f3393a1..379e893 100644 (file)
@@ -21,11 +21,17 @@ VideoStreamingPort = 5050
 AudioStreamingPort = 5080
 
 [MAIN]
-; Stanrart min stack size
+; Contains .json/.ini files
+AppConfigFolder =
+; Contains output files, e.g. .wav
+AppStorageFolder =
+; Contains resourses, e.g. audio8bit.wav
+AppResourceFolder =
+; Standart min stack size
 ;     in Ubuntu : PTHREAD_STACK_MIN = 16384
 ;     in QNX : PTHREAD_STACK_MIN = 256
 ;The value of a variable ThreadStackSize used only if its realy needed, other way stack size will be PTHREAD_STACK_MIN
-; 
+;
 AppConfigFolder =
 AppStorageFolder =
 ThreadStackSize = 16384
@@ -43,7 +49,7 @@ HeartBeatTimeout = 7
 SupportedDiagModes = 0x01, 0x02, 0x03, 0x05, 0x06, 0x07, 0x09, 0x0A, 0x18, 0x19, 0x22, 0x3E
 SystemFilesPath = /tmp/fs/mp/images/ivsu_cache
 UseLastState = true
-
+TimeTestingPort = 8090
 
 [MEDIA MANAGER]
 EnableRedecoding = false
@@ -58,12 +64,18 @@ NamedVideoPipePath = /tmp/video_stream_pipe
 NamedAudioPipePath = /tmp/audio_stream_pipe
 VideoStreamFile = video_stream_file
 AudioStreamFile = audio_stream_file
+RecordingFile = audio.8bit.wav
 
 
 ; HelpPromt and TimeOutPrompt is a vector of strings separated by comma
 [GLOBAL PROPERTIES]
-HelpPromt = Please speak one of the following commands, Please say a command
-TimeOutPromt = Please speak one of the following commands, Please say a command
+
+; Delimiter, which will be appended to each TTS chunck, e.g. helpPrompt/timeoutPrompt
+TTSDelimiter = ,
+; Default prompt items, separated by comma
+HelpPromt = Please speak one of the following commands,Please say a command
+; Default prompt items, separated by comma
+TimeOutPromt = Please speak one of the following commands,Please say a command
 HelpTitle = Available Vr Commands List
 
 [FILESYSTEM RESTRICTIONS]
@@ -83,6 +95,9 @@ HelpCommand = Help
 AppInfoStorage = app_info.dat
 
 [Policy]
-PoliciesTable = policy_table.json
+PolicySwitchOff = false
 PreloadedPT = sdl_preloaded_pt.json
 PathToSnapshot = sdl_snapshot.json
+
+[TransportManager]
+TCPAdapterPort = 12345